/proc/[pid]/status 总是使用 kB 吗?

/proc/[pid]/status 总是使用 kB 吗?

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

答案1

是的,它总是以 kB 为单位。确切地说,KiB(1024 字节,而不是 1000)。

至少在 Linux 4.0 中(并且至少自 2005 年 4 月以来,这段代码基本上没有变化——那时 Linus 切换到了git,我不想进一步检查)输出来自task_memfs/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”是硬编码在那里的。没有逻辑输出任何其他单位。

相关内容