/ proc / [pid] / status是否始终使用kB?


10

特别是,是否proc始终在中列出VmRSS值kB?尽管看起来像是一个单元,但我在文档中找不到可靠的答案。

Answers:


10

是的,它始终以kB为单位。准确的是KiB(1024字节,而不是1000)。

至少在Linux 4.0中(至少从2005年4月开始,此代码在很大程度上未发生变化;那是Linus切换到的时间git,我不在乎进一步检查),输出来自task_meminfs/proc/task_mmu.c。摘录几行:

seq_printf(m,
    "VmPeak:\t%8lu kB\n"
    "VmSize:\t%8lu kB\n"
    "VmLck:\t%8lu kB\n"
    "VmPin:\t%8lu kB\n"
    "VmHWM:\t%8lu kB\n"
    "VmRSS:\t%8lu kB\n"
    "VmData:\t%8lu kB\n"
    "VmStk:\t%8lu kB\n"
    "VmExe:\t%8lu kB\n"
    "VmLib:\t%8lu kB\n"
    "VmPTE:\t%8lu kB\n"
    "VmPMD:\t%8lu kB\n"
    "VmSwap:\t%8lu kB\n",
    hiwater_vm << (PAGE_SHIFT-10),
    
);

不知道您是否可以阅读C,但是在那里“ kB”被硬编码。没有逻辑可以输出任何其他单元。


同样适用/proc/meminfo吗?man 5 proc这里还不清楚。
olejorgenb

1
@olejorgenb是的,也被硬编码为kB。看看fs/proc/meminfo.c。(并请发送补丁至手册页进行澄清。)
derobert
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.