我有一个长时间运行的进程,我怀疑存在内存泄漏。我使用 top
来监控每个进程的内存级别,没有任何进程使用超过总 RAM 的 15%。该机器有 4GB RAM,进程启动时有超过 3GB 的可用空间。该过程本身对几 MB 的数据进行非常繁重的自定义计算。它需要 100% 的单核。
随着时间的推移,内存会消失,但 top
不会责怪我长时间运行的进程。相反,“缓存”和“缓冲”内存会增加,“可用”内存会减少至 2MB。该进程最终完成其工作并顺利退出,但内存永远不会恢复。我应该担心还是这是“正常”?除了top
之外还有其他工具可以提供更深入的理解吗?
谢谢。
最佳答案
这很正常。您的进程正在对缓存在内存中的文件进行操作。如果存在“内存压力”(来自其他程序的需求),那么该缓存内存将被放弃。我第一次编写一个 X 小部件来显示有多少内存是“空闲”的,我花了一段时间才习惯了空闲内存对您没有好处的想法:最好将其全部用于执行 some 一种缓存,直到其他地方需要它为止!
关于linux - Linux 下如何知道内存去了哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4084158/