Linux 查看内存使用情况的几种方法

上周,一位客户问我如何查看Linux系统的内存使用情况,我向他详细解释了这一点。
首先,如果你使用的是带有GUI的Linux系统,方法就简单得多。

例如,您可以打开系统监视器,它是显示CPU、内存、磁盘等系统资源使用情况的工具。
在Ubuntu中,您可以在搜索栏中输入“系统监视器”并打开它。
寻找“资源”选项卡,其中包含实时图表和历史内存使用数据,一目了然。

如果您更喜欢命令行,有多种方法。
例如,可以直接查看虚拟文件/proc/meminfo,其中包含系统内存的详细信息。
只需在终端中输入 cat /proc/meminfo 即可查看总内存、已用内存、可用内存等数据。

还有一个比较常用的命令叫free,它也可以显示内存使用情况。
输入free或free -m(以MB为单位显示),可以看到这样的信息:总内存、已用内存、可用内存、共享内存、缓冲区、缓存等。

如果需要更详细的统计信息,可以尝试vmstat命令。
该命令将报告虚拟内存统计信息,包括进程、内存、分页、IO块等信息。

还有两个命令,top和htop,都是实时显示系统任务管理器的。
top命令比较基础,而htop提供了更友好的界面和更多的功能,比如颜色高亮、滚动等。
总之,Linux系统中查看内存使用情况的方法有很多种,大家可以根据自己的喜好和需求来选择。
我还认为 GUI 对于初学者来说可能更直观。

Linux如何查看内存使用情况

说白了,Linux内存监控有三种方法:top、free、cat/proc/meminfo。
这三个技巧各有侧重,但是在正确的场景中使用它们可以为您省去很多麻烦。

top最神奇的地方就是它可以实时监控进程。
去年我们做3 000级别的项目时,我们注意到一个老进程的VIRT增加到了2 G。
经过检查,这些都是缓存日志,不应该放慢。
用Top直接杀掉就可以了。
另一点是,您可以通过按顶部的 Shift+S 按 %MEM 排序。
很多人不重视它。
当系统在 PPT 中挂起时,通常是由于少数大内存用户造成的。
还有另一个关键细节。
上述内存显示单位默认为K。
不要与 MB/G 混淆。

Free是一个系统概述神器,但请注意used包含buff/cached。
这部分内存是随时可以回收的,不能随便当真。
例如,我们上次的系统警报显示Free使用率超过8 0%,但Buff/Cache占了1 .5 G。
重启服务并释放后一切就OK了。
还有另一种危险。
Free的“共享”是指进程之间共享内存,而不是系统磁盘共享。
别混淆了。

我一开始以为/proc/meminfo是Free的更新版本,后来发现这是错误的。
它列出了所有内存片段和配置详细信息,例如:可恢复内存、大页面等。
读取太多此文件很容易让人头疼,但它对于调试内核问题至关重要。

建议使用几种组合:“Top”寻找罪魁祸首,“Free”看整体趋势,“Meminfo”调查根本问题。
老实说,这很令人困惑。
当你单独看一个命令时,很容易误判它。
例如,如果你只看上面的RES,认为物理内存不够,结果发现有一个进程打开了大量的共享内存。