以下是我发现的一些常见属性:
top(VIRT)、smem(VSS)、/proc/pid/statm(页面中的第一个条目)、/proc/pid/status (VmSize)、ps(VSZ)
top(RES)、smem(RSS)、/proc/pid/statm(页面中的第二个条目)、/proc/pid/status (VmRSS),添加所有 Rss:/proc/pid/smaps 进程映射中的值,添加所有/proc/pid/smaps 进程映射中的 Private_.* + Shared_.* 值,ps(RSS)
顶部(数据),smem未报告, /proc/pid/statm (页中的第 6 个条目), /proc/pid/status (VmData),ps没有报道过
顶部(代码),smem未报告, /proc/pid/statm (页中的第四个条目),/proc/pid/status 未报告,ps没有报道过
顶部(SHR),smem未报告, /proc/pid/statm (页面中的第三个条目),/proc/pid/status 未报告,ps没有报道过
smem(USS),添加 /proc/pid/smaps 进程映射中的所有 Private_.* 值
smem(PSS),添加 /proc/pid/smaps 进程映射中的所有 Pss: 值
smem(Swap),添加 /proc/pid/smaps 进程映射中的所有 Swap: 值
顶部(SWAP) = 顶部(VIRT) - 顶部(RES)
问题: 是否还有其他我在上面遗漏的关系(如上所述)?你能分享一下吗?
答案1
ps、top 和 smem 程序都从 /proc 获取数据。也许您喜欢查看源代码以获取确切的详细信息。这些细节多年来已经发生了变化,并且可能会继续变化。
smem 程序是一个 Python 脚本。以下是 smem 中的字段列表:http://selenic.com/repo/smem/file/43b299004079/smem#l271
Linux 从 procps 包中获取 top 和 ps。这是顶部的字段列表:http://procps.cvs.sourceforge.net/viewvc/procps/procps/top.c?revision=1.134&view=markup#l1223
这是 ps 中的字段列表:http://procps.cvs.sourceforge.net/viewvc/procps/procps/ps/output.c?revision=1.65&view=markup#l1286