如何让 postfix 不那么频繁地访问磁盘?

如何让 postfix 不那么频繁地访问磁盘?

我有一台小型服务器,主要用于备份。系统是 Ubuntu 9.10。因为备份是每天一次,所以服务器大部分时间都处于空闲状态。所以我想让磁盘停止旋转,但它一直在运行。我可以通过以下方式将其停止旋转

hdpparm -y /dev/sda

但几秒钟后它又开始旋转。

我通过 inotify 跟踪到它通常被var/spool/postfix/<something>访问。看起来 Postfix 每隔几秒钟就会读取一次。我可以强制 Postfix 不那么频繁地访问磁盘吗?

答案1

我敢打赌,您遇到的问题是,每次 Postfix 读取假脱机目录以查找新邮件时,目录的 atime 都会更新。尝试运行mount -o remount,noatime,nodiratime /whatever/partition/postfix/is/on并查看写入是否中断。如果中断,请将这些 atime 选项保留在 中fstab;如果没有中断,请提供您看到的 inotify 数据的转储,也许会出现一些更相关的事实。

答案2

简单的回答是,可能不会。

您知道具体哪个进程在进行写入吗?Postfix 可能不会很好地参与节能,因为它实际上是为邮件服务器设计的,而服务器现在才开始变得节能。

也就是说,如果邮件不是很重要,您可以将 /var/spool/postfix 变成 ram 磁盘吗?这样它就不需要接触物理硬件来执行其工作。如果在断电/重启时未送达的邮件在队列中,您将丢失它,但您真的认为这会成为一个问题吗?

答案3

Postfix 可能正在检查其假脱机中是否有新邮件,以便可以发送它们。如果您不想将假脱机保留在磁盘上,您可以做的是将其放在内存中的 tmpfs 中。只需将内容移动/var/spool/postfix/到临时位置,然后mount -t tmpfs tmpfs /var/spool/postfix/将其移回即可。

这样做的一个缺点是,当系统关闭时,您将丢失那里的所有内容。最好将原始副本保存在另一个位置,并通过关机脚本与其同步。当然,这里的缺点是,如果您的系统崩溃或断电,您将丢失任何未同步的更改。

答案4

您是否需要在该系统上拥有功能齐全的 MTA?

如果没有,ssmtp 之类的东西仍然可以发送出站电子邮件,而无需检查任何假脱机。缺点是,如果投递失败,ssmtp 不会将它们假脱机以重新尝试投递,而是将它们放在 ~/dead.letter 中

相关内容