服务器负载一目了然
服务器变慢了?不知道哪个进程在吃 CPU?内存还够不够?这些问题,top 和 htop 一秒就能回答。
今天讲 10 个命令,帮你快速定位服务器性能问题。
1. top:实时监控面板
top
执行后你会看到一个实时刷新的面板:
top - 21:54:40 up 13:56, 3 users Tasks: 338 total, 3 running %Cpu(s): 57.1 us, 28.6 sy, 14.3 id MiB Mem : 3803.6 total, 372.6 free MiB Swap: 4096.0 total, 1950.3 free PID USER %CPU %MEM COMMAND 185706 liyang 88.2 0.6 python3 166959 liyang 82.4 18.6 node 161402 liyang 41.2 11.1 opencode
top 里面按 P 按 CPU 排序,M 按内存排序,q 退出。
2. htop:更好用的 top
htop
htop 比 top 好用太多:
建议:能装 htop 就不用 top。大部分发行版 apt install htop 或 yum install htop 就行。
3. free:内存够不够
free -h
total used free shared buff/cache available Mem: 3.7Gi 2.5Gi 368Mi 16Mi 1.1Gi 1.2Gi Swap: 4.0Gi 2.1Gi 1.9Gi
看 available 列,不是 free 列。available = free + 可回收的 buff/cache。available 低于 10% 就该加内存了。
4. df:磁盘满了没
df -h
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p2 63G 38G 22G 64% /
-h 人类可读格式。Use% 超过 90% 赶紧清理,不然服务可能挂掉。
5. uptime:系统负载
uptime
21:54:40 up 13:56, 3 users, load average: 1.01, 1.05, 1.19
三个数字:1 分钟、5 分钟、15 分钟的平均负载。负载超过 CPU 核心数就说明过载了。比如 4 核 CPU,负载超过 4 就要注意。
6. ps:查看进程
# 按 CPU 使用率排序 ps aux --sort=-%cpu | head -10 # 按内存使用率排序 ps aux --sort=-%mem | head -10 # 查看指定进程 ps aux | grep nginx # 查看进程树 ps -ejH
aux 显示所有进程,--sort 排序。找"吃资源大户"就靠这两个。
7. kill:杀进程
# 温柔地终止(推荐) kill PID # 强制杀死(最后手段) kill -9 PID # 按名字杀 killall nginx # 按模式杀 pkill -f "python.*app.py"
kill 先试,kill -9 后用。永远先 kill,杀不掉再 kill -9。-9 是强制杀死,可能导致数据丢失。
8. lscpu:CPU 信息
lscpu | grep -E "^CPU|^Thread|^Core|^Model name"
CPU(s): 4 Thread(s) per core: 2 Core(s) per socket: 2 Model name: Intel Core i3-7100U @ 2.40GHz
快速确认:几核几线程?什么型号?负载平均值 ÷ CPU 核心数 > 1 就是过载。
9. iostat:磁盘 IO
# 查看磁盘 IO(每秒刷新) iostat -x 1
Device r/s w/s rkB/s wkB/s await svctm %util nvme0n1 73.88 0.00 1129.4 697.5 2.1 0.8 5.9
%util 接近 100% 说明磁盘 IO 瓶颈。await 超过 10ms 就该优化了。
10. 万能排查四步法
# 第一步:看负载 uptime # 第二步:看内存 free -h # 第三步:看磁盘 df -h # 第四步:谁在吃资源 ps aux --sort=-%cpu | head -5
服务器出问题,按这四步走,90% 的情况能定位到原因。
速查表
| |
|---|
| htop |
| free -h |
| df -h |
| uptime |
| ps aux --sort=-%cpu | head |
| ps aux --sort=-%mem | head |
| kill PID |
| iostat -x 1 |
一句话总结
uptime 看负载,free 看内存,df 看磁盘,ps 找元凶。四步走,性能问题跑不了。
关注我,每周分享 Linux 运维实战技巧
—— 三页札记 ——
下期预告:df/du — 磁盘空间排查
👆 觉得有用?长按识别二维码关注,每周分享 Linux 运维实战技巧回复「工具」获取运维人必备工具清单