我运行watch free
后观察到内存使用量持续增加,大约每 2 秒增加 100。我如何知道哪个进程导致了内存使用量的增加?
top 和 pmap 没有帮助。
顺便说一句,我运行后echo 1 > /proc/sys/VM/drop_caches
,使用的内存急剧减少。但它仍然以相同的速度不断增加。
答案1
我会用顶部并击中Shift-m按内存排序。如果某个应用泄漏内存,则%内存应该增加,并且可再生能源列应该上升。
在流程列表上方,如果您的自由的正在下降,但是緩衝器和缓存正在增加,而列表中的应用程序数量大致相同,那么你应该没问题。这只是意味着 Linux 正在使用你的空闲 RAM 来避免占用硬盘等,以便能够运行得更快。如果你仍然担心这个问题,打开一堆应用程序,Linux 应该会降低它占用的空间缓存和緩衝器当自由度接近于 0 时。
当你告诉它drop_caches,Linux 可能必须重新读取它刚刚取消缓存的硬盘的同一区域,然后重新缓存它。如果您真的想要,我们也许能够找出如何限制缓存大小的方法,但 Linux 正在使用您未使用的 RAM 来加快速度。除非这是一台笔记本电脑并且您想节省电量,否则您希望它使用您的 RAM 以便运行得更快。