介绍一些常用的Linux性能工具,这些工具可以帮助系统管理员和开发人员监控、分析和优化系统性能。
文中梳理常见的性能工具,从 CPU、内存、文件系统和磁盘 I/O、网络以及基准测试等不同的角度,汇总了各类性能指标所对应的性能工具速查表

Brendan Gregg 整理的性能工具谱图
CPU 性能工具
CPU性能指标
-
CPU使用率:
-
用户空间 (user space) 的CPU使用率
-
系统空间 (system space) 的CPU使用率
-
空闲时间 (idle time)
-
等待I/O的时间 (iowait)
-
中断处理时间 (irq 和 softirq)
-
-
上下文切换:
- 每秒上下文切换次数 (voluntary 和 involuntary)
-
负载平均值:
-
1分钟、5分钟和15分钟的系统负载平均值
-
-
CPU性能指标监控工具
-
top: 实时显示CPU使用率、内存使用情况和进程信息。
-
htop: 类似于top,但提供更交互性和用户友好的界面。
-
mpstat: 显示每个CPU的使用情况;使用
mpstat -P ALL显示所有CPU的使用情况。 -
vmstat: 显示系统的整体性能,包括CPU、内存、I/O等;使用
vmstat 1每秒刷新一次。


内存性能工具
内存性能指标
-
总内存和可用内存:
-
物理内存总量
-
可用内存量
-
-
缓存和缓冲区:
-
缓存的内存量
-
缓冲区的内存量
-
-
交换使用情况:
-
已使用的交换空间
-
可用的交换空间
-
交换进/出次数
-
-
页面故障:
- 每秒页面故障数 (major 和 minor)
内存性能指标监控工具
-
free: 使用
free -h显示内存的总量、已用、可用、缓存和交换空间。 -
vmstat: 同样适用于内存监控;使用
vmstat 1每秒刷新一次。 -
/proc/meminfo: 使用
cat /proc/meminfo显示详细的内存使用信息。


磁盘 I/O 性能工具
文件系统和磁盘I/O性能指标
-
磁盘使用率:
- 每个文件系统的已用空间和可用空间
-
I/O操作:
-
每秒读/写操作次数 (IOPS)
-
每秒读/写的字节数 (吞吐量)
-
-
I/O等待时间:
-
请求服务时间
-
队列等待时间
-
-
平均队列长度:
- 设备的请求队列长度
文件系统和磁盘I/O性能指标监控工具
-
df: 使用
df -h显示文件系统的磁盘使用情况。 -
du: 使用
du -sh /path/to/directory显示指定目录的磁盘使用情况。 -
iostat: 显示CPU和I/O设备的使用情况;使用
iostat -d 1每秒显示一次磁盘I/O情况。 -
iotop: 交互式显示实时的磁盘I/O。
-
dstat: 综合显示CPU、内存、磁盘、网络等多个指标。


网络性能工具
网络性能指标
-
带宽使用率:
-
每秒发送和接收的字节数
-
每秒发送和接收的数据包数
-
-
网络延迟:
- 请求到响应的时间
-
错误和丢包率:
-
接收和发送的错误数
-
丢包率
-
-
连接数:
-
活动连接数
-
新建连接数
-
网络性能指标监控工具
-
ifconfig 或 ip:
ifconfig显示网络接口的配置和状态;ip a显示所有网络接口的详细信息。 -
netstat: 使用
netstat -i显示网络接口的统计信息;使用netstat -s显示详细的网络统计信息。 -
ss: 使用
ss -tuln显示监听的TCP和UDP端口;使用ss -s显示网络连接的总结信息。 -
ping: 使用
ping <host>测试到目标主机的网络延迟。 -
traceroute: 使用
traceroute <host>显示到目标主机的路由路径。 -
iftop: 实时显示网络带宽的使用情况。


监控和分析这些性能指标,可以全面了解系统的运行状况,识别潜在的瓶颈和问题。它们在日常运维、性能调优、容量规划和故障排查中发挥着至关重要的作用。
通过合理设置监控工具和报警策略(如Nagios、Zabbix、Prometheus等),确保系统以高效、稳定的状态运行。
基准测试工具
