我使用pidstat -r -p <pid> <interval> >> log_Path/MemStat.CSV &
命令来收集内存统计信息。运行此命令后,我发现 RSS VSZ %MEM 值连续增加,这是意料之中的,因为 pidstat 提供了考虑间隔的值。
在网上搜索后,我发现pidstat中存在错误,我需要更新syssat软件包。(请参阅PIDSTAT作者在此链接上的最后几句声明:http://sebastien.godard.pagesperso-orange.fr/tutorial.html)
现在,我的问题是,由于我们无法再次运行测试,如何从当前输出中计算出正确的%MEM利用率。样本输出:
Time PID minflt/s majflt/s VSZ RSS %MEM
9:55:22 AM 18236 1280 0 26071488 119136 0.36
9:55:23 AM 18236 4273 0 27402768 126276 0.38
9:55:24 AM 18236 9831 0 27402800 162468 0.49
9:55:25 AM 18236 161 0 27402800 169092 0.51
9:55:26 AM 18236 51 0 27402800 175416 0.53
9:55:27 AM 18236 6859 0 27402800 198340 0.6
9:55:28 AM 18236 1440 0 27402800 203608 0.62
在你引用的 Sysstat 教程页面上说:
我注意到pidstat有一个内存占用(VSZ和RSS字段) 随着时间的流逝,这种情况不断增加。我很快找到了 我忘记在我的函数中关闭文件描述符 代码,这是导致内存泄漏的原因...!
所以,pidstat
的输出从来都不是无效的;相反,作者写道
pidstat帮助我在 pidstat 命令中检测内存泄漏 本身。