我们遇到了一个非常奇怪的异常,我们的 UW-IMAP 服务器的某位特定用户出现了此问题。我们大约有 75 位用户使用该服务器,而就使用存储而言处于中等水平的某位特定用户一直遇到速度缓慢的问题。
我们的大多数用户都使用 Thunderbird 2 或 Thunderbird 3。大多数是 2,因为我们在使用 3 时遇到了性能问题。这个用户原来使用的是 3,我将他降级到了 2。性能已经变好了,但是根据服务器上的 imapd 进程,他的用户名占用了最多的 CPU % 和 CPU 时间。
我已经完成了所有常规的 T/S 操作:从头开始创建配置文件、压缩文件夹、重新索引、使用更新更快的计算机等。但是,此用户的 imapd 进程始终占用服务器上最多的 CPU。为了进行故障排除,我们设置了另一个用户,该用户比他拥有更多的使用量、文件夹等,但我们没有看到用户进程与 imapd 进程一起占用了大部分 CPU。
因此,这听起来好像某个特定的电子邮件可能是罪魁祸首,但如果这是问题所在,我们如何找到它呢?
这种情况已经持续了一段时间,而且他是一名管理人员,所以他的耐心即将耗尽。有人有什么想法吗?
答案1
转换为 MIX 格式可以轻松将负载降低 10 倍或更多。一开始可能会有点不安,因为该格式将邮件存储在看似空的文件夹中(使用以点开头的文件名)。有一些文件包含元数据和索引信息。这些文件非常小,访问量很大。其余的是实际的邮件,它们被分成小块,只有在阅读内容时才访问。出于索引目的,系统只查看非常小的文件,检索任何特定的电子邮件所需的 RAM 和磁盘访问时间都大大减少。
10 GB 的电子邮件存储开始与 10MB 的传统电子邮件存储一样快,并且邮件大小限制很大。
UW-IMAP 可以同时使用 MIX、MBX 和传统格式(我会跳过 MBX,因为它有 2GB 的限制,而且速度不如 MIX),因此您不需要一次性转换所有内容,而且如果您愿意,可以保留主邮件池的传统格式,在 ~/INBOX 中使用 MIX,仍然可以获得 99% 的好处。mailutil 工具可以随意转换邮箱格式。
最好的部分之一是,转换任何一个用户都会大大加快他们的速度,而其他人的速度会稍微加快一点,直到最后每个人都快了很多。当邮件客户端停止添加越来越多的连接来尝试加速时,这种情况会突然发生。一个或两个连接就足够了,负载会急剧下降。
对于使用 imap 或 pop 进行访问的任何客户端来说,使用情况都是透明的(加速除外)。
真正只能直接访问电子邮件的旧邮件程序无法使用它,但 pine 用户(例如)可以使用 imap 或切换到 alpine,它是 pine 的直接后代。
据我了解,至少有一个其他 IMAP/POP 守护程序具有类似功能,但我是 UW-IMAP 人员。
由于这种转变,我在硬件上的花费减少了许多。
答案2
过去,我发现如果单个邮件文件夹中有大量电子邮件,uw-imap 会对系统性能造成严重影响。用户的邮件数量是多少?邮箱大小如何?您是否尝试过移动一些邮件?您是否尝试过使用另一个 imap 客户端来消除该问题?用户是否有权登录邮件服务器?即,他们是否可以使用 ftp 或 ssh 更改 $hOME 中的内容?我发现的另一个问题(至少很久以前)是 uw-imap 会扫描 $HOME 中的所有文件以查找邮件文件夹。
答案3
如果您使用不同的客户端(如“mutt”)进行测试,问题可能更容易发现;至少在协议的哪个阶段出现问题(但我认为 Thunderbird 也有一个调试开关)。我试图找到如何在 wu-imap 中打开调试输出,但一时找不到。
答案4
因此,我们最终将其降级为 Thunderbird 2。性能好得多,而且运行非常流畅。我们注意到一件事,我现在必须研究这个问题,那就是 Thunderbird 有时在运行一段时间后不会下载最新消息。您必须关闭它,然后重新启动它。现在已经有几位用户证实了这一点,所以我还没有将其缩小到服务器问题或 Thunderbird 问题。
另外,这里有一篇关于 Thunderbird 2 与 Thunderbird 3 性能的非常好的文章的链接。总之,Thunderbird 3 太差劲了:
http://perfprotector.blogspot.com/2010/08/thunderbird-3-is-it-really-all-yours.html