鸽子高盘io

我们的邮件服务器出现了一些重大问题,通常在重启后(但并非总是)磁盘io将从平均50-100mbps增加到200-300 mbps。

我已经缩小到鸽舍了,杀死鸽子会立即使磁盘使用正常。 我想说,也许这只是鸽舍处理积压后的积压,因为昨天我们确实有几个小时的中断,但是昨天晚上又定下来了,然后今天又恢复了。

使用atop我find了导致问题的具体imap帐户。 我已经联系了客户,发现所有最高的io客户端都从他们的收件箱中删除了大量的电子邮件。

显然不能阻止他们这样做,但增加的磁盘io导致很多io等待和服务停止响应,所以我们需要一种方法来减lessdovecot的io足迹。 我知道你可以很好的东西来减less它的CPU优先级,有什么类似的磁盘优先?

我们的服务器pipe理团队表示,它的效果还不错,而且我们需要分配更多的资源给dovecot,但是我们宁愿在抛出另一个服务器之前排除错误configuration的可能性,只是为了解决问题跟着我们。 从几个人删除他们的电子邮件300mbps听起来有点过分恕我直言。

以下是dovecot -n鸽舍configuration输出。 任何人可以提供援助将不胜感激。

你会看到我已经尝试禁用fsync按照这篇文章: http : //wiki.dovecot.org/PerformanceTuning 。 没有注意到任何可观的改善。 任何人可以提供的build议将不胜感激。

编辑:我们有一个文件每个用户,存储在/ var / spool / mail,所以我猜这是mbox格式。

 # 1.0.7: /etc/dovecot.conf log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap imaps pop3 login_dir: /var/run/dovecot/login login_executable(default): /usr/libexec/dovecot/imap-login login_executable(imap): /usr/libexec/dovecot/imap-login login_executable(pop3): /usr/libexec/dovecot/pop3-login verbose_proctitle: yes mail_privileged_group: mail fsync_disable: yes mail_executable(default): /usr/libexec/dovecot/imap mail_executable(imap): /usr/libexec/dovecot/imap mail_executable(pop3): /usr/libexec/dovecot/pop3 mail_plugin_dir(default): /usr/lib64/dovecot/imap mail_plugin_dir(imap): /usr/lib64/dovecot/imap mail_plugin_dir(pop3): /usr/lib64/dovecot/pop3 auth default: mechanisms: plain login passdb: driver: pam userdb: driver: passwd socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 384 user: root 

你不会说你使用的邮箱格式。

Dovecot很好,因为它支持标准的mbox格式。 这样设置很简单。

问题是,标准的mbox格式只是一个大文件, 对文件中间消息的操作可能导致整个下半部分的重写。

Dovecot也支持Maildir格式。 这将每个文件存储一个消息。 这也可能有问题 – 但是当你拥有大量邮件配额的用户时,这可能是一个较小的问题。

可能有其他格式的dovecot插件,但从我可以告诉没有任何其他直接支持的邮箱格式。