关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

“服务器又卡了?”—— 快速排查性能瓶颈的N个命令

发布时间:2025-10-16 15:39:18

“服务器又卡了?”—— 快速排查性能瓶颈的N个命令

Linux的排查命令丰富而强大,是运维必须掌握的技能。请按照以下顺序,像侦探一样层层深入。

第1步:整体状态速览 - top / htop

命令: top

作用: 系统状态的“仪表盘”,一眼看清负载、CPU、内存、进程情况。

关键看什么:load average(系统平均负载):3个值分别代表1、5、15分钟的平均负载。理想情况是小于CPU核心数。如果持续高于核心数的70%,说明系统过载。

%Cpu(s):重点关注 us(用户态CPU) 和 sy(系统态CPU)。如果us过高,通常是应用代码问题;sy过高,可能是系统调用频繁或内核瓶颈。

RES 内存:查看哪个进程占用物理内存最多。

进阶版: htop(需要安装),界面更友好,支持鼠标操作和颜色高亮。

第2步:内存瓶颈排查 - free / vmstat

命令: free -h

作用: 快速查看内存和Swap使用情况。

关键看什么:如果 available 内存很少,同时 swap 的 used 值在不断增加,说明物理内存不足,系统正在频繁使用交换分区,这会极大拖慢性能。

第3步:I/O 瓶颈排查 - iostat / iotop

命令: iostat -dx 1

作用: 查看磁盘的读写速度和利用率。

关键看什么:

%util:设备的利用率。如果持续接近100%, 说明磁盘I/O已经成为瓶颈。

await:I/O请求的平均等待时间。这个值越大,说明磁盘越忙。

抓元凶: iotop(需要安装)可以像top一样,实时看到是哪个进程在进行大量I/O操作。

第4步:网络瓶颈排查 - sar / nethogs

命令: sar -n DEV 1

作用: 查看网络接口的吞吐量。

关键看什么:rxkB/s 和 txkB/s:查看各网卡的入站和出站流量,判断是否达到带宽上限。

抓元凶: nethogs(需要安装)可以查看每个进程的网络占用情况。

Linux 排查心法:top看全局 -> free看内存 -> iostat看磁盘 -> sar看网络,再用 htop/iotop/nethogs 定位具体进程。


Windows 

对于Windows服务器,我们既可以利用强大的任务管理器,也可以使用命令行的PowerShell。

第1步:图形化利器 - 任务管理器 & 资源管理器

打开方式:Ctrl + Shift + Esc

作用: Windows版的“仪表盘”,非常直观。

关键看什么:“性能”标签页

CPU:查看使用率是否持续过高。

内存:查看“已提交”的内存是否接近“提交上限”。

磁盘:查看“活动时间”百分比,如果持续100%,说明磁盘I/O是瓶颈。

以太网:查看网络吞吐量。

“进程”标签页:排序找出消耗CPU、内存、磁盘最高的进程。

第2步:命令行神器 - PowerShell

命令1:Get-Counter

Get-Counter "\Processor(_Total)\% Processor Time" - 获取CPU总使用率。

Get-Counter "\Memory\Available MBytes" - 获取可用内存。

Get-Counter "\LogicalDisk(C:)\% Disk Time" - 获取C盘磁盘活动时间。

命令2:Resource Monitor (资源监视器)

在“运行”中输入 resmon,这是一个比任务管理器更强大的图形化工具,可以查看每个进程的磁盘、网络、句柄等详细活动。

Windows 排查心法:任务管理器快速定位 -> 资源监视器深入分析 -> PowerShell用于脚本化监控。

通用排查思路总结

无论什么系统,性能瓶颈无非来自四大金刚:CPU、内存、磁盘I/O、网络。

定位:使用全局监控工具(top/任务管理器/活动监视器)快速定位是哪个资源先达到瓶颈。

深挖:使用专项工具(iostat/资源监视器/osxtop)深入分析该资源的具体情况。

擒凶:使用进程级工具(iotop/nethogs/进程列表)找到导致问题的具体进程。

复盘:解决问题后,思考如何优化代码、调整配置、扩容硬件,避免问题重现。


/template/Home/ZdsjuX4/PC/Static