![适用于较大文件夹的快速 imap 服务器](https://linux22.com/image/491976/%E9%80%82%E7%94%A8%E4%BA%8E%E8%BE%83%E5%A4%A7%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E5%BF%AB%E9%80%9F%20imap%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在寻找一个可以处理较大文件夹的快速 imap 服务器。比如说每个文件夹可以处理 20,000-100,000 封电子邮件。
目前我正在使用 dovecot,打开一个文件夹需要 10 秒,并且 imap 服务器上的 HD 灯疯狂闪烁。
我使用 alpine 作为客户端,默认情况下它只列出最新的邮件,因此我的客户端在打开邮箱时不会尝试传输所有内容。这可以从我滚动时它必须加载下一页的主题行(我第一次滚动到那里)中看出。
我在 XFS 上使用 maildir。
编辑:我之所以问这个问题,是因为从总体上看,数据并不多。如果这是在 SQL 数据库中,那么获取最新 40 条消息的主题行将不是处理一个包含 40,000 封电子邮件的文件夹需要 10 秒钟。唯一需要的数据是:
SELECT date, from, subject FROM emails ORDER BY date DESC LIMIT 40;
有任何想法吗?
答案1
从性能上看,Dovecot 实际上相当不错。Dovecot 的性能调优 wiki 页面有一些技巧和窍门可以进一步提高性能。如果可能的话,将索引和邮件目录放在不同的磁盘上是一个不错的开始。您还可以考虑切换到 Dovecot 的dbox 存储格式。
答案2
答案3
你没有提到服务器规格……你使用了多少内存、处理器、网卡/交换机是千兆的?如果你看看服务器,你能知道什么被最大化了吗?如果是驱动器吞吐量,你改变服务器软件不会有太大效果
我一直在通过网络克隆系统,当我知道我的系统能够达到 50 MB/s 的突发速度时,千兆交换机上的两个系统仅能以大约 15 MB/s 的速度传输数据,这让我感到很困惑。结果发现是磁盘在终端系统上造成了瓶颈(我将驱动器放入第二个 IDE 通道并执行直接 DD,获得了相同的传输速度)。
您可能需要检查处理器/磁盘/网络使用情况以及交换机,看看其中是否有任何问题。如果不是这些问题,您可以寻找使用单独磁盘、将邮箱分离到不同主轴来提高吞吐量的方法,检查是否可以使用硬件 RAID 镜像获得更好的吞吐量(我不确定您可以从磁盘获得多少读取时间的提升),或者可能转移到具有较低延迟和更大缓存的更高性能硬盘。
答案4
因为你正在使用 dovecot,所以我假设你已经在使用它了索引功能? 我不知道有什么东西 (至少是免费的东西) 比 dovecot 更快。