linux如何计算内存使用率

说实话,这些年我一直在鼓捣Linux系统。
计算内存使用情况,我真的必须告诉你一些我最喜欢的。

第一个是 free -h。
这个顺序对每个人来说都是一样的。
我经常在虚拟机中进行测试。
例如,在 CentOS 7 系统上,如果您输入 free -h,屏幕会立即为您列出:总内存、已使用多少、剩余多少。
例如,我上次查看系统时,直接显示“总计8 GiB,已用3 .2 GiB,免费4 .8 GiB”。
我立刻意识到一半以上已经被使用了。
公式完全相同:将分母与分子相加,再除以分子,最后乘以 1 00%。
简单来说,就是占总用量的百分比。
这个东西非常适合无需动脑子就能快速概览。

但是如果你想更详细,你需要提到 sar -r 1 1 0这个命令的有趣之处在于它会不断采样,每秒查看内存状态,然后给你一个平均值。
我以前在对服务器进行故障排除时使用过此方法。
例如,如果某个生产环境总是出现内存报警,我会运行 sar -r 1 1 0 1 1 0这会显示十次内存数据,最后给你平均空闲内存 kbmemfree、已用内存 kbmemused 和 %memused 直接内存使用情况。
我记得看过一次数据,%memused 稳定在 6 5 % 左右,所以我知道我必须添加更多内存。
当然,如果你想自己弄清楚,公式是已用除以(已用加空闲),然后乘以 1 00%,这与免费的公式相同。

关于TOP和HTOP就不用我多说了。
使用过这两个命令的人都知道这一点。
我通常在虚拟机中调试,比如在 Ubuntu 上。
htop界面一打开,内存栏就立即跳转到,其中包括总内存、已用内存以及不同类别的内存(如缓存、交换空间等)。
我只要看一下就能知道系统是否在晃动。
计算公式还是一样的。
查看顶部输出中的 mem 行,除以使用的总量,然后乘以 1 00%。

如果直接看文件的话,/proc/meminfo是个好东西。
我有一个习惯,就是在调试内核参数之前总是 cat /proc/meminfo 查看原始数据。
例如,在某个Debian系统上,该文件直接包含memtotal: 1 6 3 8 4 KB和memfree: 8 1 9 2 KB。
我可以计算出总内存是1 6 GB,8 GB是空闲的,还有一半被使用了。
公式为已用内存等于总内存减去可用内存,然后除以总内存,然后乘以 1 00%。
该文件特别适合在脚本中使用,因为它直接驻留在内存中并且读取速度很快。

最后我们来谈谈vmstat -s。
这个命令比较老式,但我在排查极端问题时偶尔还是会用到它。
例如,如果某个 RHEL 6 系统卡住了,我会使用 vmstat -s,它会显示各种内存统计信息。
会列出诸如可用内存8 1 9 2 KB。
上次查看旧服务器的数据,总内存为1 6 3 8 4 KB,已用内存为1 2 2 8 8 KB。
直接应用该配方时,利用率为7 5 %。
该命令的输出非常复杂,因此您必须自己找到必要的行。

说实话,这些命令都有自己的用途。
free -h适合快速概览,SAR适合查看历史趋势,TOP适合动态监控,/proc/meminfo适合脚本,vmstat适合排查极端情况。
到时候根据自己的需求来选择就可以了。
有时我什至合并多个订单。
例如,我首先使用 free -h 来获取概述。
如果发现任何异常,我会运行 SAR 进行更长时间的调查。
数据有时需要多次查看才能可靠。

干货分享|Linux下查看内存使用情况方法总结

简单来说,检查Linux内存有以下几种方法:
1 . /proc/meminfo:直接查看; RAM使用情况一目了然。
2 . 顶部:在终端中查看资源,并提供方便的高负载颜色注释。
3 .免费:快速;概述/过程信息。
4 . GNOME System Monitor:图形化工具; CPU内存交换网络。
5 . htop:进程内存实时显示,可滚动。
6 . KDE System Monitor:与GNOME类似,功能相同。
7 . memstat:查找特定进程的虚拟内存并设置PID。
8 . nmon:交互模式; CPU 监控内存和 I/O。
9 . ps:实时进程内存;按类别浏览。
1 0. smem:统计内存;图表分析。
1 1 . 上:实时节目源按内存排序。
1 2 . vmstat:实时平均统计;显示CPU内存I/O。

由您决定什么最适合您。