我正在研究用于科学数据分析的服务器。它运行 RHEL 6.4 它有将近 200GB 的 RAM。对于通过 SSH 的用户来说,它的运行速度非常慢,经过一番摸索后,我很快注意到 RAM 的使用率非常高。奇怪的是,即使处于空闲状态,它仍在使用大量 RAM:
我还查看了通过htop
,我看不到任何正在运行的进程正在使用超过 0.1% 的 RAM。所以我想知道发生了什么事?现在唯一运行的用户启动进程是两个 NFS 挂载共享之间的 rsync。
我尝试重新启动服务器,几分钟后它的响应速度更快,但随后内存使用量再次飙升。
有什么办法可以查明为什么内存使用率如此之高?
它很高,因为这样可以节省精力。释放内存需要付出努力。如果你这样做,只需努力让它再次使用。因此,为了省力,现代操作系统只有在别无选择的情况下才会释放内存。
如果您在想“我现在想要释放内存,以便以后可以使用它”,请从您的脑海中消除这种想法。内存不必现在是空闲的,以后可以使用它。它可以现在使用,也可以以后使用。所以这里没有痛苦的权衡。使用内存是一个纯粹的胜利。
无论您的问题是什么,都不是高内存使用率。这是系统正常运行的标志。
文件系统缓存正在使用大约 190G 的内存,这通常不是问题。
查看
cached
顶部的字段。你也可以运行
如果你感到坐立不安;)