free -h
**:直观显示内存总量、已用、空闲及缓存情况(-h
自动转换GB/MB单位)。 ,2. **top
** 或 **htop
**:实时动态查看内存占用(按 q
退出)。 ,3. **cat /proc/meminfo
**:获取详细内存统计信息。🔍 一、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
按内存排序进程:
top
输出关键行:
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
核心参数解析:
MemTotal: 7854864 kB # 总内存 MemFree: 123456 kB # 空闲内存 Buffers: 23456 kB # 缓冲区用量 Cached: 3456789 kB # 页面缓存 SwapCached: 0 kB # 交换缓存 Shmem: 123456 kB # 共享内存 ...
⚠️ 注意:此文件数据单位为 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。
通过以上工具组合,您可精准掌握服务器内存健康状态,及时防范性能风险!💪
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/15512.html