qmailの性能について

広告メイルを多数送りたい spam 業者のために書いているわけではありません。

メイルサーバの設計をしっかり行うためには 定量的な予測と評価が必要です。

メイル配送の仕組みを理解していないと、 測定しても結果を解釈することができないでしょう。 (OS の知識、性能測定の知識が要求されることは言うまでもありません。)
qmailの内部構造を理解して、 付属文書 にあることを確かめるのはいい勉強になります。

qmailの配送性能に関心があって、勉強する気のある人むけの メイリングリストを用意しました。
f1 メイリングリスト: Bersteinソフトウェアの性能測定と改善について議論しています。 f1-help (ドメインは qmail.jp) 宛に空のメイルを送れば、 登録案内が返ってきます (メンバ登録には審査があります)。

qmail 性能改善のためのいくつかのアイデアは THOUGHTSに書かれています。

基本線:

qmailでメイリングリストへの配送が速いケースというのは 場合です。これらの条件が満たされない場合には 配送は遅くなることがあります。 状況に応じた対応が必要となるでしょう。 [例えば、 DoCoMo上の多数のアドレスに向けて送るような場合]

qmail では安全確実にメイルを受信するために、 ディスクへの書きこみをたびたび確認(fsync)しています。 このため、受信は他の MTA に比べると遅いようです。

宛先ごとに異なる内容のメイルを qmail を使った中継サーバに中継させて 配送させると、中継サーバの queue があるディスク入出力が 隘路になってしまいます。 こういう使い方は qmail を使う側のシステム設計の誤りです。

1)性能測定例 (測定環境; FreeBSD)

mbox/maildirなどへの配送例   ローカルnobodyへの配送例

2)外部送信性能

多数のメイルを一台のホストへ送信すると、 受信ホストでのキューへの書きこみなどがボトルネックになってしまいます。 そこで、受信専用の「ダミーサーバ」をもうけて、送信能力を計ることにします。
いわゆる同報通知メイルの場合、 Pentium III 800MHz, FreeBSD 4.3では 毎秒 190通 程度が発信可能でした。

3)受信処理性能

手元のPCだと、smtpdが受けとってキューに登録するのは 毎秒 7.4通(440通/分)でした。
ローカル配送(ゴミ箱)まで含めると毎秒 3通程度になります。

ディスク入出力がボトルネックになっています。 ディスクのwrite cacheなどを生かすと速くなりますが、UPSなどを装備していないと、 停電時にメイルを失なう危険が大きいのです。 Linux ext2 ファイルシステムも 同様の事情のようです。速いと喜んではいけません。

FreeBSD 4.6 を Pentium 4 2.2GHz と ATA 100 ディスク で動かした場合、 Softupdates なしでも 120 通/秒 となりました。(HDD Write cache ON のようです。)

4)ローカル処理性能

5)考察/課題

qmail作者による将来計画のうち、 DNS検索の高速化 はすでに実現されています。

The Qmail and ReiserFS Integration HOWTO

Benchmarking qmail on Linux Filesystems


ディスク書き出し性能 と信頼性について;
2001-12-01 (2003-05-14 改訂)