// PC530 技术论坛 v1.0
● online 登录 / 注册
返回列表
运维与云原生 #运维

【运维】Linux 服务器实战(6):进程与 CPU/内存/IO 监控


Linux 服务器实战 · 第 6 篇
CPU 飙高、内存没了、磁盘 wait 100%——用 ps + vmstat + iotop 快速定位。


1. 进程 TOP 榜

# CPU 占用前 10
ps aux --sort=-%cpu | head -11

# 内存占用前 10
ps aux --sort=-%mem | head -11

# 按名查找
pgrep -a nginx
pgrep -a python
ps -ef | grep gunicorn | grep -v grep

交互式:

htop    # 无则 apt install htop
top -c

2. vmstat:系统级快照

vmstat 1 5
vmstat 1 3 -S M -w
含义 告警直觉
r 运行队列 长期 > CPU 核数 → CPU 瓶颈
b 不可中断睡眠 高 → 可能 IO 等
swpd / si / so swap 使用与换入换出 si/so 持续 >0 → 内存不够
bi / bo 块 IO 持续高 → 磁盘忙
us / sy / id / wa 用户/内核/空闲/等 IO wa 高 → IO 瓶颈
cs 上下文切换 过高 → 线程过多或 syscall 频繁

3. 磁盘 IO

sudo apt install -y sysstat iotop
iostat -xz 1 3
sudo iotop -oPa

记录超 1MB/s 的进程(cron 示例):

sudo iotop -bo -n 2 | grep 'M/s' >> /var/log/disk-io.log

4. 内存详解

free -h

Linux available 含可回收 cache,不要只看 free 列


5. 按场景排查

CPU 高

ps aux --sort=-%cpu | head
sudo perf top    # 可选,需 linux-tools
sudo journalctl -u SUSPECT -n 50 --no-pager

内存 / OOM

free -h
dmesg -T | grep -i 'out of memory'
sudo journalctl -k | grep -i oom

负载高但 CPU 不高

→ 看 iostatiotop(IO wait)或 dmesg(磁盘错误)。


6. 按端口杀进程(再次提醒)

sudo lsof -t -i:8000 -sTCP:LISTEN | xargs -r sudo kill
# 强制:kill -9(最后手段)

本篇速查

ps aux --sort=-%mem | head
vmstat 1 5
sudo iotop -oPa
dmesg -T | grep -i oom

系列导航

主题
1–5 见前篇
6 性能监控(本文)
7 故障诊断
8 部署与 Cron