上一篇
场景引入:
凌晨3点,服务器突然告警——内存飙到95%!💥 你揉着惺忪睡眼打开终端,却记不清该用free -h
还是top
?别慌!这篇指南就是你的「深夜救急手册」,从基础查询到进阶分析,连隔壁运维老王看了都直呼内行!
free
命令:内存使用概览free -h # 人类友好格式显示(自动换算GB/MB)
输出示例:
total used free shared buff/cache available
Mem: 16G 5.2G 800M 300M 10G 9G
Swap: 2G 0B 2G
关键指标:
available
:真正可用的内存(含缓存可回收部分)📌 buff/cache
:内核缓存占用的内存(必要时会自动释放) 小技巧:
watch -n 2 free -h # 每2秒刷新一次(Ctrl+C退出)
top
/htop
:动态监控进程内存top # 经典工具(按`M`按内存排序) htop # 彩色增强版(需安装,支持鼠标操作)
重点关注列:
RES
:进程实际占用物理内存 %MEM
:内存占用百分比 举个栗子🌰:
发现某个Python进程占用了20%内存?可能是内存泄漏!
/proc/meminfo
:原始数据宝库cat /proc/meminfo | grep -E 'MemTotal|MemFree|Buffers|Cached'
专业术语解析:
Slab
:内核数据结构占用内存 SwapCached
:曾被换出但又被换入的内存 vmstat
:内存趋势分析vmstat -s # 统计模式(显示开机至今内存变化) vmstat 2 5 # 每2秒采样1次,共5次
输出关键项:
si
(swap in)/so
(swap out):交换分区活动频率(频繁交换说明物理内存不足⚠️) awk '/MemAvailable/{print $2}' /proc/meminfo # 最精确的可用内存值
dmidecode -t memory | grep -i size # 需root权限(显示物理插槽信息)
或通过内核日志:
dmesg | grep -i memory
sync && echo 3 > /proc/sys/vm/drop_caches # 释放pagecache/slab等(不影响进程)
物理内存不足:
free -h
的available
值 ps aux --sort=-%mem | head
找出内存大户 内存泄漏嫌疑:
free -h
观察used
是否持续增长 valgrind
检测应用程序(开发环境) Swap被频繁使用:
vmstat 1
观察si/so
列 场景 | 推荐命令 |
---|---|
快速看剩余内存 | free -h |
找内存占用Top进程 | htop (按F6 选%MEM排序) |
检查内存硬件信息 | dmidecode -t memory |
长期监控内存波动 | vmstat 60 (每小时采样) |
最后的小幽默:
当你的服务器内存总是不够用时,—不是内存太小,而是老板的梦想太大!😉 (加内存条可能更实际...)
本文参考2025年7月最新Linux内核文档及主流发行版实践验证,适用于CentOS/RHEL/Ubuntu等主流系统。
本文由 汉鸿才 于2025-07-30发表在【云服务器提供商】,文中图片由(汉鸿才)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/489430.html
发表评论