在 Linux 下跟踪巨大的缓冲区使用情况

在 Linux 下跟踪巨大的缓冲区使用情况

我有一台运行 Debian Lenny 的 Linux 服务器,内存为 4G。它不运行大量的东西:

Postfix/spamassassin(守护进程模式)Bind9 KVM(一个客户机 - 1G RAM)每天 UTC 时间 3:05 分,服务器几乎将所有内存都降到最低。此后,缓冲区占用了超过 2 G 的空间,但从未清理过(除非我手动告诉内核删除缓存)。

我在网上搜索了很多,一开始,我认为这是由于 NFS 缓冲区使用造成的。我使用 gzip/tar 通过 NFS 共享驱动器进行备份,备份发生在 3:05。

但是,我现在处于一个非常奇怪的情况,因为我将备份任务移到了 1:40(它在 2 分钟内完成),并且我仍然在 3:05 丢失了所有的 RAM。

在我的日志中,没有什么特别的,除了在 03:05:01,cron 以 root 身份打开一个会话,并在 03:05:02 立即关闭它而不执行任何操作。当然,cron 已重新启动,我检查了任务的时间安排 - 同样,没有什么特别的。

知道为什么会发生这种情况吗?或者,知道如何跟踪使用所有这些缓冲区的内容吗?

感谢您的帮助,

相关内容