Linux如何查看服务器内存命令?
- Linux
- 2025-06-08
- 15
一、free 命令:基础内存状态速查
命令示例:
free -h
输出示例:
total used free shared buff/cache available Mem: 7.6G 2.1G 1.2G 123M 4.3G 5.0G Swap: 2.0G 0B 2.0G
关键参数解析:
- total:物理内存总量
- used:已使用内存(含系统缓存)
- free:完全未使用的内存
- buff/cache:缓存/缓冲区占用量(可回收利用)
- available:核心指标!表示应用实际可用内存(含可回收缓存)
建议始终使用 -h(人性化显示单位)或 -m(以MB显示)。available 值低于总内存10%时需警惕内存不足。
二、top / htop 命令:动态内存监控
top 命令(系统自带)
执行后按 M 按内存排序进程:

输出关键行:
MiB Mem : 7854.8 total, 1234.2 free, ... 4567.3 buff/cache MiB Swap: 2048.0 total, 2048.0 free, ...
htop 命令(需安装,更直观)
htop
优势:实时可视化内存占用、进程排序、树状结构展示。
三、/proc/meminfo 文件:底层详细数据
cat /proc/meminfo
核心参数解析:

️ 注意:此文件数据单位为 kB,需自行换算为GB(值/1048576)。
四、vmstat:内存趋势与性能分析
vmstat -s -S M # 以MB为单位显示统计摘要
输出示例:
7854 M total memory 1234 M free memory 2345 M buffer memory 3456 M swap cache 0 M swapped out
高级用法:vmstat 2 5(每2秒采样1次,共5次)监控内存变化趋势。
️ 五、专业工具扩展
| 工具 | 安装命令 | 特点 |
|---|---|---|
| smem | sudo apt install smem | 按PSS/USS统计实际物理内存占用 |
| glances | pip install glances | 全资源监控仪表盘 |
| nmon | sudo apt install nmon | IBM性能分析神器,支持导出报表 |
六、场景化诊断技巧
-
内存泄漏检测
top 中持续增长的进程 RES 值 → 结合 pidstat -r 60 跟踪

-
缓存利用率优化
free 中高 buff/cache + 低 free → 正常现象(Linux主动利用缓存加速IO)
-
交换空间告警
vmstat 中 si(换入)/so(换出)>0 → 物理内存不足导致性能下降
常见疑问解答
Q:free 显示内存几乎用光,但 available 充足,是否正常?
正常! Linux会最大限度利用内存作缓存(buff/cache),当应用需要时自动释放。
Q:如何计算应用程序真实内存占用?
推荐公式:
实际物理内存 = RSS - Shared
工具:smem -p -P nginx (统计nginx进程组的私有内存)
引用说明:
- 参考 Linux man 手册(man free/man top/man proc)
- 数据指标定义依据 内核文档
- 运维方法论参考《Linux性能优化大师》& Google SRE实践指南
原创声明基于多年Linux系统管理经验整理,验证环境为CentOS 7+/Ubuntu 20.04 LTS。
通过以上工具组合,您可精准掌握服务器内存健康状态,及时防范性能风险!