新手必看:如何生成并看懂Linux服务器系统性能报告(命令实
新手必看:如何生成并看懂Linux服务器系统性能报告(命令实操)
刚接手Linux服务器或发现业务变慢时,第一件事就是检查系统性能报告。
很多新手对着满屏数字发懵,今天我从零开始,教你用几条命令生成一份完整的Linux服务器系统性能报告,并手把手解读每个关键指标。
动手前需要准备什么
你只需要一台Linux服务器(任意发行版),能通过SSH登录,且有sudo权限。
系统自带top、free、vmstat等工具;
如果缺少sysstat包(提供iostat、sar等),可用包管理器安装:
# CentOS / RHEL
sudo yum install sysstat -y
# Ubuntu / Debian
sudo apt install sysstat -y
核心命令:三步摸清系统状态
我将常用命令整理为三步,每步输出一个维度的性能数据。
第一步:看CPU和进程——top、vmstat
输入top会动态刷新CPU和进程信息。
重点关注:
- load average:1/5/15分钟的平均负载。值超过CPU核心数(
nproc查看)时,说明系统超负荷。 - %us(用户态)、%sy(系统态)、%id(空闲)。若%id长期低于10%,需排查进程。
更稳定的是vmstat 1 5,每秒输出一次,共5次。查看r(运行队列)与b(阻塞进程)列:r持续大于CPU核心数,CPU就不够了。
vmstat 1 5
第二步:内存和交换分区——free -h
free -h以人类易读格式显示内存。关键列是available(真正可用内存),不是used。
- total:总内存
- used:已用(包含buff/cache)
- available:可被新程序使用的内存
- swap:交换分区使用量。swap持续增长说明内存吃紧。
避坑:used列高不代表内存不足,Linux会用空闲内存做缓存,available才是有效剩余。
第三步:磁盘空间和I/O——df -h、iostat
df -h查看磁盘空间使用率。iostat -x 1 3查看I/O详情。关注%util(磁盘忙碌百分比),接近100%说明磁盘是瓶颈;await(平均每次I/O等待时间,毫秒),SSD应低于10ms,机械盘低于50ms。
iostat -x 1 3
解读示例:一张简化的报告表
假设运行top看到load average为2.5,1.8,1.0,CPU核心数4,那2.5<4,负载正常。
但%us达到80%、%id只有15%,说明CPU使用率很高,需查看哪个进程占用最多。
free -h显示total 8G,
available仅500M,
swap用了2G——内存不足。iostat输出%util 90%、
await 200ms——磁盘慢,
可能影响数据库或日志写入。
高频问题与避坑指南
问题1:free -h显示used很高,但应用不卡? 答:available才是真正剩余,used高可能因为缓存,不用担心。
问题2:top里load average高,但CPU使用率不高? 答:负载可能来自等待磁盘I/O或锁,可以结合%iowait和iostat查看。
避坑:不要只看第一屏数据。 性能报告需要连续观察几分钟,单次截图可能只是瞬时峰值。
建议用sar查看历史趋势。
生成完整报告的小技巧:可写脚本将命令输出重定向到文件:
echo "=== CPU ===" > report.txt
top -b -n1 | head -20 >> report.txt
echo "=== MEMORY ===" >> report.txt
free -h >> report.txt
echo "=== DISK ===" >> report.txt
df -h >> report.txt
iostat -x 1 1 >> report.txt
验证你的解读能力
在测试机上装stress工具做压力实验:
sudo stress --cpu 4 --io 2 --vm 1 --vm-bytes 512M --timeout 60
同时运行top和vmstat,观察负载和CPU飙升,对照本文指标解读。实践是检验理解的唯一标准。
如果你正在处理Linux服务器系统性能报告,建议先按本文步骤完整执行,再根据自己环境做微调;
遇到异常时优先回看避坑和高频问题部分。