我有一个带有Dovecot1 2.2.10的IMAP/POP3 3/Webmail服务器,它的后端位于另一台服务器上。服务器以默认配置运行。
...
driver = mysql
default_pass_scheme = plain
...我的问题是,有时当它超载时,它就开始拒绝客户端的身份验证(也就是错误的密码)。它用于所有不同类型的客户端(pop3、imap、webmail),因此这必须是与身份验证后端相关的问题。
我的第一个想法是,没有足够的dovecot身份验证进程运行。
我可以对什么进行调优,这个系统按照什么顺序能够处理更多的客户端身份验证请求?
我的MySQL服务器没有超载,它是一台四核计算机,白天平均使用25%的CPU。
在此期间,邮件服务器本身的CPU使用量急剧上升。内存使用保持正常。
http://i58.tinypic.com/2q9gfpf.jpg
这是一个生产系统,所以我所能做的就是调整一些变量,这肯定不会破坏它。
谢谢!
发布于 2014-07-04 10:08:23
我不知道赛勒斯IMAPd和德维科是否会发生同样的情况。让我们试一试。
Linux内核从多个来源和事件收集真实的随机性、熵。任何程序都可以从/dev/random读取这些数据。嗯,有时候如果没有足够的“真正的”随机性生成(例如,服务器不包含硬件加速随机数生成器),这个熵池可以是空的。当它是空的时候,任何等待/dev/随机数据的进程都会在熵池饥饿的时候停止。
无论何时在Dovecot服务器上发生这种情况,您都可以检查watch -n1 'cat /proc/sys/kernel/random/entropy_avail'并查看值是否保持在零或接近于零。如果是这样,您的Dovecot需要更快地生成随机性。
一种解决方案是安装rngd (例如,在Ubuntu/Debian中,它在rng-tools包中)并将其配置为使用/dev/urandom。rngd从配置它使用的源中向/dev/random显示随机数据。是的,在/dev/urandom的情况下使用半随机性,但至少它有效。
在Cyrus IMAPd中,它是带有随机生成的字符串的POP3问候行,它消耗/dev/随机的速度非常快,并且有大量的连接,导致长达几分钟的完全失速。
完全另一种选择是,您的webmail应用程序不能很好地处理MySQL连接,因此MySQL中的max_connect_errors被超越,MySQL开始拒绝您的Dovecot服务器。在这种情况下,FLUSH HOSTS; at MySQL server MySQL命令行应该会有所帮助。
如果这是Dovecot问题的根本原因,那么您应该提高MySQL max_connect_errors限制。
我知道我的回答很牵强,在黑暗中是一个完整的镜头,但你永远不会知道!
https://serverfault.com/questions/610139
复制相似问题