补充说明
Linux 没有名为 ram 的通用可执行命令。若系统中确实存在 ram,通常是管理员自定义的别名或封装脚本,也可能来自某个嵌入式/救援镜像,其参数和行为取决于具体实现,不能当作可移植命令使用。
要查看内存使用情况,标准做法是 free、读取 /proc/meminfo、或用 vmstat 观察换页与回收。free 输出中的 available 才是应用可用的估计值,buff/cache 大部分可回收,不要只看 free 列就判断内存不足。
需要定位“谁占用了内存”时,用 ps 按 RSS 排序、smem 看 PSS,或 slabtop 查看内核缓存。清理页缓存(echo 3 > /proc/sys/vm/drop_caches)只适合测试,会带来性能损失,生产环境不要例行执行。
语法
ram [选项] # 若存在,参数取决于本地实现
free [选项] # 实际查看内存的常用命令
选项
free 的常用选项:
-h:人类可读单位-m/-g:以 MiB / GiB 显示-s <秒>:周期性刷新-t:增加总计行-w:分开显示 buff 与 cache
实例
# 以人类可读单位查看内存与交换空间
free -h
# 每 2 秒刷新一次
free -h -s 2
# 查看内核报告的详细内存字段
grep -E 'MemTotal|MemAvailable|SwapTotal' /proc/meminfo
# 观察换页、回收与 CPU 等待
vmstat 2
# 按常驻内存排序找出占用最高的进程
ps -eo pid,comm,rss --sort=-rss | head -n 10
# 查看内核 slab 缓存占用
sudo slabtop -o