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

时间:2015-06-10 12:42:25

标签: linux memory process

Process Working Set Info in LINUX

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

2 个答案:

答案 0 :(得分:3)

我不相信/ proc / [pid] / statm会为此提供WSS或/ proc / [pid] / status。

WSS是一个进程在内存中需要保持"工作的页数。#/ p>

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

所以RSS> = WSS。这意味着RSS可能包含一些过程目前并不真正需要的页面。也许它过去曾使用那些过时的页面。

根据我对linux内部的理解,内核并没有真正跟踪每个进程的WSS。 WSS太过牵扯,不能连续跟踪,也没有精确的公式。 RSS更容易计算,因此内核只会报告。

请注意,如果所有进程的WSS总和大于或等于主内存大小(即系统正在颠簸或接近颠簸),则RSS等于WSS,因为只有进程绝对需要的页面保留在主要记忆。知道了吗?

答案 1 :(得分:2)

RSS(驻留虚拟大小)是此进程当前在主内存(RAM)中的内存量。 VSZ(虚拟大小)是进程总共有多少虚拟内存。

根据您的问题,我相信您是在虚拟大小之后,即总内存使用量。

关于DetailViewController - 来自Linux联机帮助页:

statm

所以你需要第一个整数,它将返回使用的总页数。但是,如果您需要更易读的输出,proc/[pid]/statm Provides information about memory usage, measured in pages. The columns are: size (1) total program size (same as VmSize in /proc/[pid]/status) resident (2) resident set size (same as VmRSS in /proc/[pid]/status) share (3) shared pages (i.e., backed by a file) text (4) text (code) lib (5) library (unused in Linux 2.6) data (6) data + stack dt (7) dirty pages (unused in Linux 2.6) 将提供以千字节为单位的信息。例如:

status

这意味着进程29262使用5980 kB,其中1736个驻留在RAM中。

相关问题