性能分析常用工具

153 阅读2分钟

一、系统级监控工具

1. top/htop

  • 功能:实时显示系统进程和资源占用情况
  • 关键指标:CPU使用率、内存占用、进程列表
  • htop优势:彩色显示、鼠标支持、更好的用户界面

2. vmstat

  • 功能:报告虚拟内存统计信息
  • 常用命令vmstat 1(每秒刷新一次)
  • 关键指标
    • r:运行队列中的进程数
    • b:阻塞的进程数
    • swpd:虚拟内存使用量
    • si/so:内存交换入/出量

3. iostat

  • 功能:监控系统输入/输出设备负载
  • 常用命令iostat -x 1
  • 关键指标
    • %util:设备利用率
    • await:平均I/O等待时间
    • svctm:平均服务时间

4. dstat

  • 功能:全能系统资源统计工具
  • 优势:结合了vmstat、iostat、netstat等功能
  • 常用命令dstat -cdngy

dstat.png

二、网络性能工具

1. netstat/ss

  • 功能:显示网络连接、路由表、接口统计等
  • ss优势:比netstat更快,显示更多信息
  • 常用命令
    • netstat -tulnp
    • ss -tulnp

2. iftop

  • 功能:实时显示网络带宽使用情况
  • 类似工具:nload, bmon

3. tcpdump

  • 功能:网络数据包捕获分析
  • 常用命令tcpdump -i eth0 -nn -vv port 80

4. Wireshark

  • 功能:图形化网络协议分析工具
  • 优势:强大的过滤和解析能力

三、内存分析工具

1. free

  • 功能:显示内存使用情况
  • 常用命令free -h(人类可读格式)

2. pmap

  • 功能:报告进程的内存映射
  • 常用命令pmap -x <PID>

3. valgrind

  • 功能:内存调试、内存泄漏检测
  • 常用命令valgrind --leak-check=yes myprogram
  • valgrind --tool=memcheck --leak-check=full ./bin/TestASWC_CSCBCACore
  • valgrind --tool=helgrind ./bin/TestASWC_CSCBCACore
  • valgrind --tool=cachegrind ./bin/TestASWC_CSCBCACore
  • valgrind --tool=massif ./bin/TestASWC_CSCBCACore
  • valgrind --tool=callgrind ./bin/TestASWC_CSCBCACore

四、磁盘I/O分析工具

1. iotop

  • 功能:监控磁盘I/O使用情况(类似top)
  • 常用命令iotop -o(只显示有I/O活动的进程)

2. lsof

  • 功能:列出打开的文件
  • 常用命令lsof -i :80(查看80端口使用情况)

五、高级性能分析工具

1. perf (Linux)

  • 功能:Linux性能计数器分析工具
  • 常用命令
    • perf stat:执行命令并收集性能计数器统计
    • perf top:实时显示热点函数
    • perf record/report:记录并分析性能数据

2. strace

  • 功能:跟踪系统调用和信号
  • 常用命令strace -p <PID>

六、可视化工具

1. Grafana

  • 功能:指标可视化与警报
  • 常用搭配:Prometheus, InfluxDB

2. Kibana

  • 功能:日志数据可视化
  • 常用搭配:Elasticsearch