查找进程的总 RAM 消耗,包括交换

问题描述 投票:0回答:1

使用

/usr/bin/time -v <program name>
我可以通过读取
Maximum resident set size
数字来找到进程使用的最大物理内存量。

但是我当前正在运行一个需要使用交换的程序。如何获取进程使用的内存总量(包括换出的页面)?

linux memory-management command-line system-calls
1个回答
0
投票

进程

/proc/<pid>/status
<pid>
文件包含进程使用的不同类型内存的多个计数器。
VmSize
是使用的总虚拟地址空间。
VmRSS
是当前的驻留大小(
VmHWM
是“高水位线”RSS,我认为这是您当前从
time
获得的值)。
VmSwap
行应包含进程当前使用的交换空间量。

请注意,许多计数器可以包含共享页面(例如,如果您运行同一 C 程序的多个副本,它们将共享文本页面和 C 库文本页面,但

VmRSS
将在每个副本中考虑它们)过程。)有关这些限制的更多讨论,请参阅 https://ewx.livejournal.com/579283.html

请参阅 https://www.kernel.org/doc/Documentation/filesystems/proc.txt(具体来说,表 1-2)了解此处所有字段的文档。

哦,您只能在进程

/proc/<pid>/
运行时访问
<pid>
目录。

© www.soinside.com 2019 - 2024. All rights reserved.