Linux怎么查看内存占用情况? free命令实时监控内存使用状态

说白了,Linux系统中查看内存占用情况其实很简单。
直接输入free命令,默认会以KB为单位显示内存信息,但数值较大时不太易读。
添加-h参数(如free-h),它会自动适配单位(MB/GB),输出更直观。
比如,一次输出可能是这样的:Mem: 7 .7 G 2 .3 G 1 .2 G 4 00M 4 .2 G 4 .9 G,其中total是物理内存总量,used是已用内存(不含缓存),free是完全未使用的内存,buff/cache是系统缓存和缓冲区占用的内存,available是实际可用内存。

我一开始以为buff/cache占用高是问题,后来发现不对,这是Linux利用空闲内存加速磁盘访问的正常优化。
处理上,无需干预,系统会在需要时自动释放缓存。
如果available充足,说明内存压力小。

还有个细节挺关键的,就是实时监控。
你可以用watch命令配合free-h,比如watch -n2 'free-h',这样每2 秒就会刷新一次内存状态,观察波动趋势。
调整-n参数可以修改刷新频率。

如果你需要更详细的监控,可以考虑使用top或htop。
top命令可以实时显示系统整体内存及进程级占用,按M键可以按内存排序进程。
htop是一个更友好的界面工具,需要安装(比如在Ubuntu上用sudo apt install htop),它运行后会显示内存条形图、Swap使用情况及各进程内存消耗。

最后,我的建议是:快速检查就用free-h,动态监控结合watch -n2 'free-h',进程分析用top或htop,缓存理解上,buff/cache高是正常现象,关注available字段即可。
这些方法可以满足从基础到进阶的内存监控需求。

linux查看内存使用情况的命令有哪些

说白了,Linux看内存就这几招:free最顺手,/proc/meminfo最详尽,htop最爽。

先说最重要的free,去年我们跑那个项目,半夜CPU爆表追查半天,最后发现是free-h把GB单位给搞混了——3 000量级的机器,直接用-m会吓死人。
另外一点,top和htop的区别在于,top是走马观花式实时监控,htop能点进程直接杀,尤其当缓存把free数值给虚胖的时候,htop的%MEM能帮你快速定位。
还有个细节挺关键的,比如vmstat-s,去年运维用这个查到swap雪崩效应,用行话说叫雪崩效应,其实就是前面一个小延迟把后面全拖垮了,输出里swap总量突然蹦到9 0%就暴露了。

说实话挺坑的,我一开始也以为swap用多了就加大就行,后来发现不对,系统会疯狂翻页,导致所有进程都卡。
等等,还有个事,smem的PSS和USS是看程序真实占用的,比free的used靠谱多了,但这个点很多人没注意。

建议先拿free摸个大概,再上htop或者smem深挖,别光盯着总量。