常用Linux系统诊断工具
2014-09-16 15:40:23 阿炯

Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片。其博客里关于分析和调优的干货琳琅满目,一篇名为 Linux Performance 文章全面而详细的整理了常用工具,覆盖了硬件、存储、网络及应用。下面的图片分别总结了 Linux 各个子系统以及监控、测试、优化这些子系统所用到的工具。


作为运维员,和 Linux 打交道是必然的,在服务器上分析系统性能情况是每一个后端工程师都无法避开的事情。无论是开发还是运维,可能都经历过这样的场景:
流量高峰期,服务器 CPU 使用率过高报警,登录 Linux 上去 top 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写得有问题?
一大早就收到监控告警,发现某台存放监控数据的数据库主机 CPU 的 I/O Wait 较高,该怎么办?  

说说经验吧,有三点觉得比较重要:
先掌握性能优化的思路和方法,尝试大量 Linux 性能工具;
把性能问题跟系统原理关联起来,特别是把应用程序、库函数、系统调用、内核和硬件等不同的层级贯穿起来;
最终从学习到输出,从实践中总结经验。

这其中有 Linux 性能工具的使用,它除了要考虑性能指标的目的外,还要结合待分析的环境来综合选取。

 
监控






测试


优化


sar


BPF



虽说咱有布伦丹·格雷格(Brendan Gregg)大师整理的性能工具图谱,相信你也多少参考过,但其实它还不够具体,使用时还要去查找每个工具的手册,对比分析做出选择。   

所以每次用的时候就在想,有没有更好的方法来理解这些工具呢?刚刚开始研究的时候,可没少在网上找资料,最终解决我问题的,是倪朋飞《Linux 性能优化实战》中总结的几个性能工具图。




他根据「性能指标」的不同,将工具划分为 CPU、内存、磁盘 I / O及网络,4 大类型,总算是一次性让我把性能工具搞明白了。看这些图,就很清晰了,比如,当遇到 I/O 性能问题时,可以根据不同的性能指标,使用 iostat、iotop、blktrace 等工具分析磁盘 I/O 的瓶颈。

性能监控三工具:
mpstat,主要用来查看CPU报告,包括user/system、iowait和中断等。
vmstat,这里是虚拟内存的m,也包括物理内存(包括cache和buffer等)了。
iostat,除了生成磁盘使用信息的报告,还包括CPU的使用情况。


该文章最后由 阿炯 于 2023-12-30 12:01:00 更新,目前是第 2 版。