His*_*His 9 linux memory vmstat
我需要从 vmstat 中获取内存使用率,但我不太明白 vmstat 中显示的一些与内存相关的数字。
特别是,给定这样的输出
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 139728 45396 199128 1236360 1 2 4 622 3 1 51 4 43 2 0
Run Code Online (Sandbox Code Playgroud)
系统的总内存量是多少?是'swpd' + 'free' + 'buff' + 'cache',总共是1620612吗?
系统的可用内存量是多少?是否为 45396,如“免费”列中所示?
问题是它们不加起来,甚至看起来与“顶级”报告的内容不符。我与上面的 'vmstat's 几乎同时使用的 'top' 的输出是:
[...]
Mem: 4059616k total, 3965504k used, 94112k free, 200020k buffers
[...]
Run Code Online (Sandbox Code Playgroud)
所以......我假设'vmstat'中一定有我不知道的隐藏数字/选项?
为此,我需要使用 'vmstat' 而不是其他命令,因为这是要求的内容。
所以理想情况下,我想从 'vmstat' 实现的是内存使用百分比,如下所示:
<used_memory>/<total_memory> * 100%.
Run Code Online (Sandbox Code Playgroud)
谢谢!
Eva*_*son 20
您正在寻找的是“免费”的输出:
$ free
total used free shared buffers cached
Mem: 775556 759456 16100 0 22132 592484
-/+ buffers/cache: 144840 630716
Swap: 500344 21972 478372
Run Code Online (Sandbox Code Playgroud)
这是一个游览:
这是一个带有 768MB 物理 RAM 和 500344KB 交换分区的盒子。
759456KB 已“使用”(第二列,顶行)。在这个“已用”内存中,23132KB 是缓冲区(第 5 列,顶行),592484KB(第 6 列,顶行)是缓存,剩下 144840KB(第 2 列,第 2 行)的物理内存正被活动进程使用。
当您考虑到缓冲区和缓存使用的内存可用于进程时,剩下 630716KB(第 3 列,第 2 行)的物理内存可用。
正如我所说,交换分区是 500344KB(第一列,底行)。交换文件的 21972KB(第 2 列,底行)正在使用中,剩下 478372KB(第 3 列,底行)空闲。
因此,您对空闲内存百分比的定义取决于您是否计算缓冲区和缓存,以及是否计算交换。
这应该足以让您继续计算您认为合适的百分比。
这是 top 和 free 的输出:
$ top -n1 | grep "used," ; free
Mem: 775556k total, 751472k used, 24084k free, 20776k buffers
Swap: 500344k total, 21972k used, 478372k free, 586648k cached
total used free shared buffers cached
Mem: 775556 751344 24212 0 20776 586648
-/+ buffers/cache: 143920 631636
Swap: 500344 21972 478372
Run Code Online (Sandbox Code Playgroud)
您可以看到 top 和 free 是如何一致的(尽管有一点不同——这是一台多用户机器,top 和 free 程序的内存使用情况反映在那里)。
在调用 vmstate 时添加“-s”,您将看到几乎相同的输出,只是形式不同:
$ vmstat -s ; free
775556 total memory
759920 used memory
674680 active memory
18440 inactive memory
15636 free memory
21892 buffer memory
594372 swap cache
500344 total swap
21972 used swap
478372 free swap
... output truncated ...
total used free shared buffers cached
Mem: 775556 759920 15636 0 21892 594372
-/+ buffers/cache: 143656 631900
Swap: 500344 21972 478372
Run Code Online (Sandbox Code Playgroud)
您可以看到 vmstat 显示的所有数字都与 free 相同。
| 归档时间: |
|
| 查看次数: |
50057 次 |
| 最近记录: |