![/proc/[pid]/status 总是使用 kB 吗?](https://linux22.com/image/64120/%2Fproc%2F%5Bpid%5D%2Fstatus%20%E6%80%BB%E6%98%AF%E4%BD%BF%E7%94%A8%20kB%20%E5%90%97%EF%BC%9F.png)
特别是,是否proc
始终在 中列出 VmRSS 值kB
?我找不到可靠的答案文档,尽管看起来它粘在一个单位上。
答案1
是的,它总是以 kB 为单位。确切地说,KiB(1024 字节,而不是 1000)。
至少在 Linux 4.0 中(并且至少自 2005 年 4 月以来,这段代码基本上没有变化——那时 Linus 切换到了git
,我不想进一步检查)输出来自task_mem
在fs/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”是硬编码在那里的。没有逻辑输出任何其他单位。