我使用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命令中检测到内存泄漏
本身。