web-dev-qa-db-ja.com

より大きなフォルダ用の高速imapサーバー

より大きなフォルダで高速なimapサーバーを探しています。フォルダごとに20'000-100'000のメールを言います。

現在、私はdovecotを使用していますが、フォルダーを開くのに10秒かかることがあり、imapサーバーのHDライトが狂ったように点滅しています。

私はクライアントとしてAlpineを使用していますが、デフォルトでは最新のメールのみが一覧表示されるため、クライアントがメールボックスを開いたときにすべてを転送しようとしているわけではありません。これは、スクロールするときに次のページの件名をロードする必要があることからわかります(最初にスクロールするとき)。

XFSでmaildirを使用しています。

編集:データが少ないので、壮大な計画でお願いします。これがSQLデータベースにある場合、最新の40個のメッセージの件名を取得するのにnot、40,000通の電子メールのフォルダーに対して10秒かかります。必要なデータは次のとおりです。

SELECT date, from, subject FROM emails ORDER BY date DESC LIMIT 40;

何か案は?

6
Thomas

Dovecotは、実際にはパフォーマンスの面でかなり優れています。 Dovecotの パフォーマンスチューニングwikiページ には、パフォーマンスをさらに向上させるためのヒントとコツがいくつかあります。インデックスとmaildirを別々のディスクに保持することは、可能であれば、最初に行うことをお勧めします。 Dovecotの dboxストレージ形式 への切り替えを評価することもできます。

4
earl

Maildir/Maildir ++メールボックスを使用する代わりに、メッセージストレージにデータベースエンジンを使用してみることができます。これは dbmail で実行できます。

実稼働環境でのdbmailの信頼性はわかりませんが、すでに仮想化が機能しているため、テスト目的で別のVMに設定して、環境でのパフォーマンスを確認できます。 。

Dbmailのアーキテクチャの概要は次のとおりです。

alt text
(ソース: dbmail.org

3
mfriedman

サーバーの仕様については言及していません...使用しているメモリの量、プロセッサ、ネットワークカード/スイッチはギガビットですか?そして、サーバーを見ると、何が限界に達しているのかわかりますか?ドライブのスループットであれば、サーバーソフトウェアをそれほど変更することはありません。

私はネットワークを介してシステムのクローンを作成してきましたが、システムが50 MB/sの範囲でバーストできることを知ったとき、ギガビットスイッチ上に2つのシステムが約15 MB/secしかプルしないことに戸惑いました。エンドシステムでのディスクのボトルネックであることが判明しました(ドライブを2番目のIDEチャネルに配置し、直接DDを実行し、同じ転送速度を取得しました)。

プロセッサ/ディスク/ネットワークの使用状況とスイッチをチェックして、それらのいずれかが問題を引き起こしていないかどうかを確認することをお勧めします。そうでない場合は、別々のディスクを使用してスループットを向上させる方法を探し、メールボックスを異なるスピンドルに分離し、ハードウェアRAIDミラーリングを使用してスループットを向上させることができるかどうかを確認してください(読み取り時間の向上の程度はわかりません)取得できるディスクから)、または場合によっては、待ち時間が短く、キャッシュが大きい、パフォーマンスの高いハードディスクに移動します。

2

Dovecotを使用しているので、すでに使用していると思います インデックス機能 ?私は何も(少なくとも、無料ではない)気づいていません。それはdovecotよりも速いです。

1
theotherreceive