linux – 如何使用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

系统的总内存量是多少?这是’swpd”免费”buff”缓存’,总计到1620612?

系统的可用内存量是多少?它是45396,显示在“免费”栏中吗?

问题是他们没有加起来甚至看起来接近报道的“顶级”.我在上面与’vmstat’同时进行的’top’输出是:

[...]
Mem:   4059616k total,3965504k used,94112k free,200020k buffers
[...]

所以…我假设’vmstat’中必须有隐藏的数字/选项,我不知道?

我需要为此目的使用’vmstat’,而不是其他命令,因为这是要求所述.

理想情况下,我想从’vmstat’实现的是%内存使用率,如:

<used_memory>/<total_memory> * 100%.

谢谢!

解决方法

您正在寻找的是“免费”的输出:
$free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

这是一个旅游:

这是一个带有768MB物理RAM和500344KB交换分区的盒子.

759456KB是“使用”(第二列,顶行).在这个“二手”存储器中,23132KB是缓冲区(第5列,顶行),592484KB(第六列,顶行)是缓存,剩下144840KB(第2列,第2行)的活动进程正在使用的物理内存.

当您考虑缓冲区和缓存使用的内存可用于进程时,可以释放630716KB(第3列,第2行)物理内存.

正如我所说,交换分区是500344KB(第1列,底行).交换文件的21972KB(第2列,底行)正在使用中,留下478372KB(第3列,底行)空闲.

因此,你对%free memory的定义取决于你是否计算缓冲区和缓存,以及你是否计算交换.

这应该足以让你继续计算你认为合适的百分比.

这是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

你可以看到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

你可以看到vmstat显示的所有数字都是免费的.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...