• Oracle甲骨文
    OAEP中心

    Microsoft Azure微软云
    合作伙伴

    Unity公司
    战略合作伙伴

    百度营销大学
    河南授权中心

    普华基础软件
    战略合作伙伴

    新开普投资
    (股票代码:300248)

    锐旗资本投资
    中国互联网百强企业

云和教育 > Java培训 > 【技术】Linux 系统性能分析工具图解读(二)
分享: 1

【技术】Linux 系统性能分析工具图解读(二)

发布时间: 2014-12-17 10:55      版权所有: 云和教育

 

  第一篇讲了一些最基础的命令了,接下来在研究研究高级的命令:

  sar

  netstat

  pidstat

  strace

  tcpdump

  blktrace

  iotop

  slabtop

  sysctl

  /proc

  
       sar

  sar 是 System Activity Reporter 的意思,这是一个强大到发指的工具,在第一篇中提到的那些工具的功能(cpu、 mem、 disk、 net),基本上 sar 都可以覆盖到,不信的话可以试一下 sar -A 1 1 看一下它都统计了哪些东西。此外 sar 可以周期性的执行统计,很多系统级别的监控都是通过 sar 来做的。淘宝还专门自己开发了一个tsar在原有的系统级别的监控上增加了对应用的监控。

  netstat

  这个命令也是和网络相关的,可以查看 socket 的连接信息,比如建立了哪些 TCP 连接,他们的状态是怎样的,一个进程有多少链接。通常这个命令后面都会跟着 grep 或者 awk 的命令进行进一步处理。以至于有的 awk 的教程都会以 netstat 的输出处理作为样例,比如耗子叔叔的awk 简明教程。此外这个命令还有一个 -s 的参数可以统计不同的协议的数据包信息。

  pidstat

  其实要不是看到大神说有这个命令,我还以为这个命令是 ps 的全称。其实展示的东西也和 ps 类似,主要的区别在于 ps 只是一次提供系统进程状态的一个快照,pidstat# 可以指定进程提供定时多次的统计信息,相当于你可以更细粒度的 ps 了。这也是做监控的一个很好的工具,可以针对特殊进程特殊关照。

  strace

  其实感觉 strace 是一个更偏针对应用的性能工具,他可以统计出进程进行了哪些系统调用,处理了哪些信号。也因此 strace 是一个分析程序实现的一个很好的工具,比如说你想知道 pidstat 中的信息都是从哪里获得的就 strace pidstat |& grep open 就可以知道它是打开了哪些文件获取到信息的。由于 strace 会将输出打到标准错误中所以管道处理要记得加上 & 。这个命令是很强大,但问题是也及其消耗性能,一般情况下慢一个数量级还是会有的,所以只是分析的时候用一下,正常执行就不要了。

  tcpdump

  大名鼎鼎的 tcpdump 可以将经过网卡的数据包保存下来一份以供 wireshark 这类软件进一步进行分析。如果愿意的话开启网卡混杂模式也可以捕获同一网络上其他机器的数据包,也是黑客很喜欢的工具。和 strace 类似, tcpdump 的功能很强大,即使开了 filter 功能也很消耗性能,一般的生产机如果流量大的话开启 tcpdump还是吃不消的。当然有一些神秘的组织是需要获取网络包的完整备份的,他们大概是用专门的硬件完成的吧。

  blktrace

  其实这个命令用 btrace 展示会更好一些,看名字就知道是 strace 的 io 版,可以实时的展示每次磁盘 IO 请求的内容,耗时,发生位置等等很多东西,不过带 trace 的命令一般都比较耗性能。

  iotop

  和上个命令类似,一看就是 top 的 io 版,简洁明了,包括展示都和 top 很类似,试一下就知道是怎么回事了。

  slabtop

  其实只要知道 slab 是个什么东西,这个命令就很好理解了。slab 是对象缓冲池,将一些常用的小的对象结构再释放后缓存起来,而不是直接交给系统回收,这样可以避免频繁的小对象找系统申请内存造成性能下降,知道这个再看 这条命令就很轻松了。

  sysctl

  这里面是一些很有讲究的系统参数的设置,很多参数的设置都会对服务器的性能产生很大的影响。这也是个水很深的配置文件,比如 tcpreuse、tcprecycle 这些服务器的重要配置都在这里面。这里面的配置估计也能讲上个几天几夜。还是先 sysctl -a 看一下感受感受吧。

  /proc

  其实上述诸多的工具都是从这个文件加下面读取文件做展示的,不过真要自己解析这里面的文件还是蛮耗功夫的,所以还是好好用一下上面的那些命令吧。不过如果你对那些命令是如何实现的可以配合着 strace 来探索这里面的奥秘。

课程咨询

手机 13007510486(24h)
0371-8652-7892(工作时间)

云和IT培训课程: UI设计培训平面设计培训java培训php培训html5培训VR/AR/Unity培训

关键词: 郑州UI培训郑州JAVA培训郑州PHP培训郑州HTML5培训郑州Unity3D培训郑州VR/AR/虚拟现实培训web前端开发培训
网页设计培训郑州电脑培训编程培训ps培训郑州程序员培训软件开发培训网站开发培训郑州IT培训更多云和信息

公司地址:郑州市高新区冬青街26号河南省电子商务产业园3号楼一层
乘车路线:地铁1号线郑州大学站A出口,向南200米路东
联系方式:电话/微信  13007510486
豫ICP备14003305号-2


如果您想获取课程详情报价,请登陆云和教育课程查询系统!

点击登陆