Linux常用的性能分析工具
在Linux系统中,除了perf
,还有许多常用的性能分析工具,涵盖了CPU、内存、磁盘、网络等多个方面。以下是常见的工具及其主要用途:
1. CPU 性能分析工具
top
/htop
实时监控系统进程的CPU、内存使用情况,htop
是增强版,支持颜色和交互操作。mpstat
报告CPU使用情况(多核统计),适用于分析CPU负载均衡问题。pidstat
监控进程及线程的CPU、内存、I/O等资源使用情况。gprof
GNU的性能分析工具,用于统计函数调用耗时,需编译时加-pg
选项。
2. 内存分析工具
vmstat
查看虚拟内存、进程、CPU等整体状态,适合分析内存瓶颈。free
快速查看系统内存和Swap使用情况。valgrind
主要用于内存泄漏检测(Memcheck),也支持性能分析(Callgrind)。memleak
(BCC工具)
动态检测内存泄漏,适用于运行中的程序。
3. 磁盘 I/O 分析工具
iostat
监控磁盘I/O和CPU使用率,适用于存储性能分析。iotop
类似top
,但针对磁盘I/O,显示进程级读写情况。dstat
综合监控CPU、磁盘、网络等,输出彩色可读性较强。
4. 网络性能分析工具
netstat
/ss
查看网络连接、端口状态、路由表等。tcpdump
抓包分析网络流量,适用于排查协议问题。iperf
测试TCP/UDP网络带宽和吞吐量。
5. 综合与高级工具
strace
跟踪进程的系统调用和信号,用于调试程序行为。SystemTap
动态内核和用户空间探测,支持自定义脚本。FlameGraph
可视化性能数据(如perf
输出),生成火焰图分析热点。BCC/BPF
工具集
如cachestat
(缓存命中率)、filetop
(文件读写监控)等,基于eBPF实现低开销分析。
总结
- 最常用工具:
top
、vmstat
、iostat
、strace
、valgrind
。 - 高级分析:
perf
(CPU热点)、BCC
(动态追踪)、FlameGraph
(可视化)。 - 开发调试:
gprof
(代码级分析)、valgrind
(内存问题)。
如果需要更详细的工具使用示例或组合分析场景,可以参考具体工具的文档或案例。