当前位置:首页>Linux>Linux 实战:top/htop — 系统监控入门

Linux 实战:top/htop — 系统监控入门

  • 2026-10-11 07:14:48
Linux 实战:top/htop — 系统监控入门

服务器负载一目了然

服务器变慢了?不知道哪个进程在吃 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 好用太多:

功能
top
htop
界面
纯文本
彩色 + 图形化
鼠标支持
❌
✅
搜索进程
按 1 看各核
F3 搜索
杀进程
输入 PID
选中按 F9
树形视图
❌
F5 切换

建议:能装 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
 或 top
内存使用
free -h
磁盘空间
df -h
系统负载
uptime
CPU 排序
ps aux --sort=-%cpu | head
内存排序
ps aux --sort=-%mem | head
杀进程
kill PID
(先试)→ kill -9 PID(后用)
磁盘 IO
iostat -x 1

一句话总结

uptime 看负载,free 看内存,df 看磁盘,ps 找元凶。四步走,性能问题跑不了。

关注我,每周分享 Linux 运维实战技巧

—— 三页札记 ——

下期预告:df/du — 磁盘空间排查

👆 觉得有用?长按识别二维码关注,每周分享 Linux 运维实战技巧回复「工具」获取运维人必备工具清单

最新文章

随机文章