linux内存紧张的真正指标是available接近0且swap used持续上升,而非used高;available反映可立即分配给应用的内存,buff/cache属可回收缓存,系统会自动释放。

直接用 top 就能看清实时 CPU 和内存占用,但别只盯着 used 和 %CPU 看——这两个值最容易误导人。
为什么 free 里 used 高不等于内存快爆了
Linux 会主动把空闲内存拿来当 buff/cache 加速磁盘读写,这部分内存随时可被回收。真正该盯的是 available 字段:
-
available接近 0,且swap的used开始上涨,才说明内存真紧张 -
used高但available充足(比如total16Gi,available还剩 10Gi),完全不用慌 -
free命令加-h最直观:free -h;想每 2 秒刷新一次:free -h -s 2
top 中 CPU 行的 us/sy/wa/id 各代表什么
第三行类似 %Cpu(s): 12.3 us, 2.1 sy, 0.0 ni, 84.5 id, 1.1 wa,每个字段含义和排查方向不同:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
us高:用户态程序(如 Nginx、Java 进程)在密集计算,查%CPU列排序找具体进程 -
sy高:内核调用频繁,可能是大量小文件 IO、频繁 fork、或驱动问题 -
wa持续 >10%:CPU 在等磁盘或网络响应,不是 CPU 不够,而是存储/网卡拖慢了整体节奏 -
id低 ≠ CPU 忙满——得结合负载(load average)看:4 核机器load average: 5.2才算真正过载
想快速定位“吃资源大户”,别只按默认排序
top 默认按 %CPU 排,但内存压力大时更需关注 %MEM 或实际物理占用 RES:
- 按内存使用率降序:运行中按
M(大写 M) - 只看某个用户(比如只关心
www-data):按u→ 输入用户名 - 关注
RES(单位 KiB/MiB)比%MEM更准,尤其当进程多、内存分配不均时 - 启动时加
-c可显示完整命令路径,避免同名进程混淆(如多个python进程)
vmstat 和 mpstat 是 top 的补位工具
它们不提供进程级细节,但能暴露 top 看不见的底层信号:
-
vmstat 1:重点看r(运行队列长度)和si/so(swap 进出)。r > CPU 核数表示有进程在排队等 CPU;si或so持续非 0,说明内存已严重不足 -
mpstat -P ALL 1:查是否单核被打满而其他核空闲(常见于未优化的单线程应用) - 这些命令输出稳定、适合脚本解析,
top的交互式界面反而难自动化
复杂点在于:CPU 高可能源于内存不足触发 swap,内存告急又常由磁盘慢导致 wa 升高——三者是连锁反应。盯住 available、wa、si/so 这三个数字,比死磕单一指标更有效。










