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

07-28 13:37