我试图确认在处于空闲状态时,我的Linux设备上存在内存泄漏(不应该有连续的内存消耗)。我对识别导致泄漏的进程不感兴趣,但只是想得出内存泄漏的结论。
我正在使用top作为诊断工具。来自顶部的内存字段示例:
Mem: 118616k total, 83980k used, 34636k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 24140k cached我可以看到free的值不断下降,然而,cached的值却在不断增加。
为了确认存在内存泄漏,free+cached的和应该不断下降,而不是只减少free (在这种情况下,内核可能只是使用空闲内存进行缓存)?
发布于 2015-04-07 16:06:42
用户空间进程的内存泄漏将导致该进程使用的内存数量不断增加。
您可以使用批处理模式使用top监视进程(但是,top似乎不支持在批处理模式( https://bugzilla.redhat.com/show_bug.cgi?id=547749)中按内存进行排序)。
作为顶部的替代,您还可以每分钟执行以下命令:
ps aux --sort -rss | head -n 10若要查看使用RAM的十大进程,请执行以下操作。
例如。
while [ true ]; do ps aux --sort -rss | head -n 10 >> memory_usage_log.txt; echo "#########" >> memory_usage_log.txt; sleep 60; done;如果某些进程随着时间而使用越来越多的RAM,而没有活动或输入数据,那么它可能是内存泄漏(例如,如果您启动web浏览器并保持它运行而不使用它,那么web浏览器的内存使用显然不应该随着时间的增长而增长)。
https://serverfault.com/questions/680956
复制相似问题