Use*_*er1 2 linux memory-management
我有一个长期运行的进程,我怀疑有内存泄漏.我top用来监视每个进程的内存级别,没有任何东西使用超过总RAM的15%.该机器具有4GB的RAM,并且该过程从3GB以上免费开始.该过程本身对几MB数据进行了非常繁重的自定义计算.它需要一个100%的核心.
随着时间的推移,记忆消失但top不会归咎于我长时间运行的过程.相反,"缓存"和"缓冲"内存增加,"自由"内存减少到2MB.这个过程最终完成了它的工作并且没有问题地退出但是记忆永远不会回来.我应该担心还是"正常"?是否还有其他工具top可以提供更深入的理解?
谢谢.
这很正常.您的进程正在对内存中缓存的文件进行操作.如果存在"内存压力"(来自其他程序的需求),那么该缓存将被放弃.我第一次写一个X小部件来显示有多少内存是"免费的",我花了一段时间才习惯了免费内存对你没有好处的想法:最好让它全部用于做某种缓存,直到别的地方需要它!