Linux 服务器性能排查的 10 个必备命令
在管理Linux服务器时,性能问题排查是每个系统管理员必备的技能。当服务器响应变慢或出现异常时,快速定位问题根源至关重要。以下是10个最实用的Linux性能排查命令,帮助您高效诊断服务器性能问题。
1. top - 实时进程监控
top命令是Linux系统中最基础也是最强大的性能监控工具之一。它提供了一个动态实时视图,显示系统整体性能和各个进程的资源占用情况。
top -c
常用参数:
-c:显示完整命令路径-d:设置刷新间隔(秒)-n:设置刷新次数后退出
输出关键信息解读:
load average:1/5/15分钟的系统平均负载(建议不超过CPU核心数)%Cpu(s):重点关注us(用户空间)和sy(内核空间)占比RES:进程实际使用的物理内存大小S:进程状态(R=运行,S=睡眠,Z=僵尸)
交互命令:
l:切换显示平均负载t:切换显示CPU状态m:切换显示内存信息k:终止指定PID的进程f:自定义显示字段
2. htop - 增强型进程查看器
htop是top的增强版,提供了更友好的界面和更多功能:
htop --sort-key=PERCENT_CPU
高级功能:
F2:进入设置界面自定义显示F3:进程搜索功能F4:按名称过滤进程F5:树状显示进程层级F9:发送信号给进程(支持15种信号)
优势:
- 直观显示CPU核心使用情况
- 显示磁盘I/O和网络带宽使用率
- 支持批量操作进程
3. vmstat - 虚拟内存统计
vmstat报告虚拟内存统计信息,帮助了解系统整体性能:
vmstat -wt 1 5
新增参数解释:
-w:宽输出模式-t:显示时间戳
深入解读:
procs.r:若长期大于CPU核心数,说明CPU资源不足memory.swpd:交换内存使用量,超过0需警惕system.in/cs:每秒中断/上下文切换次数,过高可能有性能问题cpu.id:空闲CPU百分比,长期低于20%需关注
4. iostat - I/O统计信息
iostat用于监控系统输入/输出设备负载:
iostat -dxctm 1
新增参数:
-d:显示设备利用率报告-c:显示CPU利用率报告-t:显示时间戳-m:以MB/s显示吞吐量
关键指标分析:
%util:>60%表示设备繁忙,>80%表示严重I/O瓶颈avgqu-sz:平均I/O队列长度,大于1可能存在拥堵rkB/s/wkB/s:读写速率,结合%util判断瓶颈
5. free - 内存使用情况
free命令显示系统内存使用情况:
free -h --si
新增参数:
--si:使用1000进制而非1024进制-t:显示总计行-s:持续监控模式(秒间隔)
内存分析要点:
buff/cache:Linux会利用空闲内存做缓存,这部分内存可快速释放- 当
available接近free时,说明系统内存压力大 - Swap使用率突然增长可能是内存泄漏的征兆
6. df - 磁盘空间检查
df检查文件系统磁盘空间使用情况:
df -hT --total
新增参数:
-T:显示文件系统类型--total:显示总计信息-i:显示inode使用情况
关键点:
- 关注
Use%超过80%的分区 - ext4文件系统建议保留至少5%空间
-i选项可排查"磁盘未满但无法写入"的问题
7. du - 目录空间分析
du分析目录和文件的磁盘使用情况:
du -h --max-depth=1 / | sort -h
高级用法:
--time:显示修改时间--exclude:排除特定模式--threshold:只显示大于指定大小的文件
实用技巧:
# 找出大于100MB的文件
find / -type f -size +100M -exec du -h {} + | sort -h
8. ss - 网络连接统计
现代ss命令替代netstat,显示网络连接信息:
ss -s # 显示汇总统计
ss -tlpn # 监听端口
ss -o state established '( dport = :http or sport = :http )' # HTTP连接
高级过滤:
- 按状态:
state established - 按端口:
dport = :22 - 按IP:
dst 192.168.1.1
9. sar - 系统活动报告
sar是sysstat工具包的一部分:
sar -A # 显示所有统计
sar -q # 查看负载队列
sar -w # 进程创建/上下文切换
历史数据查看:
sar -f /var/log/sa/sa$(date +%d -d yesterday) # 查看昨天数据
10. dmesg - 内核日志
dmesg显示内核环形缓冲区中的消息:
dmesg --level=err,warn
dmesg -T # 人类可读时间戳
dmesg --follow # 实时监控
常见错误排查:
OOM-killer:内存不足segfault:段错误I/O error:磁盘故障thermal throttle:CPU过热降频
总结
这些命令组合使用可构建完整的性能分析工作流:
- 先用
top/htop快速定位资源占用高的进程 vmstat/iostat分析系统整体I/O和CPU状况free/df/du检查内存和磁盘空间ss/sar分析网络和长期趋势dmesg排查底层系统错误
建议将关键命令的输出保存到日志文件,方便后续分析:
top -b -n 1 > top_$(date +%F).log
掌握这些命令的进阶用法,您将能快速诊断90%以上的Linux服务器性能问题。
329




被折叠的 条评论
为什么被折叠?



