如何知道linux /proc中的进程工作集大小

jij*_*iji 0 linux memory process

处理 LINUX 中的工作集信息

我在 proc 文件夹中找到进程的工作集大小此链接说我可以在 /proc 中找到工作集大小,但我不知道如何知道。我知道 RSS 是工作集大小,但 RSS 与工作集大小不同,我可以知道使用 RSS 的工作集大小 /proc/[pid]/statm吗?

小智 5

我不相信 /proc/[pid]/statm 会给出 WSS 或 /proc/[pid]/status 。

WSS 是进程在内存中保持“工作”所需的页数。

RSS 是进程实际驻留在主内存中的页数。

所以 RSS >= WSS。这意味着 RSS 可能包含一些流程现在并不真正需要的页面。也许它过去使用过那些陈旧的页面。

根据我对 linux 内部的理解,内核并没有真正在每个进程的基础上跟踪 WSS。WSS 涉及太多,无法连续跟踪,并且没有确切的公式。RSS 计算起来更简单,因此内核只报告这一点。

请注意,如果所有进程的 WSS 总和大于或等于主存大小(即系统正在抖动或接近抖动),则 RSS 等于 WSS,因为只有进程绝对需要的页面才会保留在主存中. 知道了?