服务器变慢的核心是资源供需失衡,需按cpu、内存、磁盘i/o、网络顺序排查:用htop看load average和%cpu(s)定位cpu瓶颈;用free -h关注available内存及swap使用;用iostat和iotop诊断磁盘i/o;用netstat、ss、iftop分析网络连接与流量异常。

服务器变慢,核心是资源供需失衡。CPU、内存、磁盘I/O、网络这四项里,只要有一项被压满或响应迟缓,就会拖垮整体表现。排查不是靠猜,而是按顺序快速过一遍关键指标,定位瓶颈在哪,再聚焦到具体进程。
CPU和负载先看一眼
执行 top 或更推荐的 htop(没装就 apt install htop 或 yum install htop):
- 关注 load average:三个数字分别代表1/5/15分钟平均负载。单核机器超过1、4核机器超过4,说明任务排队了;更稳妥的判断是 load / CPU核数 > 0.7 就该警惕
- 看 %Cpu(s) 行:us 高说明业务代码吃CPU,sy 高可能是系统调用频繁(如大量小文件读写),wa 高(比如 >20%)意味着CPU在等磁盘,问题大概率不在CPU本身
- 按 P 键确保进程按CPU排序,一眼找出“吃CPU大户”
内存是否快撑爆了
top 里直接能看到 KiB Mem 和 KiB Swap:
- 如果 free 很低、used 接近 total,但 buff/cache 占比高,别慌——Linux会主动用空闲内存做缓存,这是正常行为
- 真正危险的是 Swap 被大量使用:swap used 不为0,且 si/so(swap in/out)在 vmstat 1 5 输出中持续非零,说明物理内存不够,系统在疯狂换页,响应必然卡顿
- 用 free -h 看更清爽,重点关注 available 列——这才是当前真正可用的内存量
磁盘是不是拖后腿
CPU和内存都正常,但 wa 高、服务响应慢,大概率是磁盘I/O卡住了:
- 运行 iostat -x 1 3(需安装 sysstat),重点看 %util(设备忙时百分比)和 await(I/O平均等待毫秒数)。%util 接近100% 或 await 显著升高(比如 >50ms),说明磁盘已饱和
- 用 iotop(apt install iotop)直接看到哪个进程在猛刷磁盘
- 检查磁盘空间:df -h 看根分区或日志目录是否 100% 满——满盘会导致几乎所有写操作阻塞
网络连接有没有异常
网站打不开、SSH卡顿、API超时,可能不是服务器慢,而是网络被堵死:
- netstat -an | awk '$6 ~ /ESTABLISHED/ {print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10:查哪些IP建了最多连接,防暴力扫描或CC攻击
- ss -s 快速汇总连接状态,看 SYN-RECV 是否异常堆积(疑似SYN Flood)
- iftop -P 80,443(需安装 iftop)实时看HTTP/HTTPS流量,确认是否被某个请求或IP占满带宽











