我在 Debian 7 上使用 courier-imap 为大约 200 个用户运行邮件服务器。该服务器在具有 2 个 CPU 核心和 2 GB RAM 的 Xen 客户机内运行 Linux 内核 2.6.38。该服务器通过 postfix 接受传入邮件,但资源密集型检查(amavis、spamassassin)委托给另一台服务器。
最近我遇到了 IMAP 性能问题,客户端连接会随机断开。服务器负载不低,但也不高,即使在发生连接断开时也是如此。在高峰时段,我同时有大约 120 个 imap 客户端,5 分钟负载小于 1。
我注意到连接断开与我的服务器上的以下日志行同时出现:
imapd: FAMPending: timeout
我猜测当 FAM 超时时,imap 服务器会返回某种错误,并且根据客户端的不同,错误是否会被妥善处理(有些 Webmail 客户端不喜欢这样)。
常规 Debiancourier-imap
软件包需要 fam 实现,我可以选择使用famd
或gamin
。我尝试过这两种方法,但都遇到了超时问题。在我看来,gamin 产生的服务器负载较低,但仍然会出现超时问题。
我想知道是否可以调整某些内容来提高 fam/gamin 的性能并避免出现超时消息。守护进程中没有太多需要配置的内容。但是,可能是我的文件描述符或 inotify 资源用完了?我该如何检查?
或者您认为更好的选择是升级我的 Xen 客户机或放弃 courier-imap?