首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vmstat从哪里获得它的“使用内存”统计信息?

vmstat从哪里获得它的“使用内存”统计信息?
EN

Unix & Linux用户
提问于 2016-11-30 15:26:19
回答 1查看 1.2K关注 0票数 1

如果运行vmstat -s,它将显示有关系统的统计信息。我想知道它如何计算used memory统计数据(下面突出显示)。这不是我在/proc/meminfo中可以找到的统计数据。

代码语言:javascript
复制
user@machine:# vmstat -s
      7483816 K total memory
      **4740624 K used memory**
      3619096 K active memory
       800388 K inactive memory
      2743192 K free memory
       220624 K buffer memory
      1989008 K swap cache
       901116 K total swap
            0 K used swap
       901116 K free swap *snip*

vmstat是如何获得这些数据的?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2016-11-30 15:29:20

vmstat/proc/meminfo/proc/vmstat获取虚拟内存统计数据,从/proc/stat获取与处理器相关的信息:

代码语言:javascript
复制
% strace -fe open vmstat -s
...
open("/proc/meminfo", O_RDONLY)         = 3
open("/proc/stat", O_RDONLY)            = 4
open("/proc/vmstat", O_RDONLY)          = 5
...

对于已使用的内存,来自https://gitlab.com/procps-ng/procps/blob/master/proc/sysinfo.c#L772

代码语言:javascript
复制
if (mem_used < 0)     
  mem_used = kb_main_total - kb_main_free;   
kb_main_used = (unsigned long)mem_used;
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/327105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档