我只是想知道我是否已经有时间-v给出的最大RSS值,有没有办法从这个命令行中获取正确的RSS值,或者它是错误的,没有办法找到正确的值以KB或其他单位?任何其他unix命令可以确定从进程开始到结束的进程(程序)的内存使用情况为平均值还是最大值?
期待您的回复,
卡罗尔
答案 0 :(得分:0)
在Linux上,您可以考虑使用proc(5)。因此,对于pid 1234的process,请在终端中尝试cat /proc/1234/maps
(对于当前shell,请尝试cat /proc/$$/maps
等等)。它显示address space中的当前virtual memory。
从流程内部依次读取/proc/self/maps
伪文件。
另请参阅/proc/self/stat
,/proc/self/statm
,/proc/self/status
(您可以解析并获取VmRSS:
行。)
你也可以使用time(1)& top(1):可以使用/配置这两个命令来显示RSS。还有watch(1) ps(1)(例如watch ps -l 1234
)
另请阅读流程会计,例如acct(5)等......
您可以使用time -v yourprogram its arguments
....
另见getrusage(2)& wait4(2)
另请阅读linuxatemyram