milter-performance-check

milter-performance-check — MTAのパフォーマンスを計るプログラム

名前

milter-performance-check - MTAのパフォーマンスを計るプログラム

書式

milter-performance-check [ オプション ... ]

説明

milter-performance-checkはMTAの性能を計測するSMTPクライアントです。milter-test-serverでmilterのみの性能を計測し、milter-performance-checkでMTAとmilterを合わせた性能を計測するという住み分けです。

同様のツールにはPostfix付属のsmtp-sourceがあります。どちらも、同時に複数のSMTPセッションを張って一斉にメールを送信することができます。機能的にはsmtp-sourceの方が高機能です。

milter-performance-checkが便利なのはSMTPセッションの時間のみを計測してくれることです。smtp-sourceではtimeコマンドと組み合わせるなどして、smtp-source全体の実行時間を計測します。

実際は、SMTPセッションの時間のみでも、ツール全体の実行時間でもそれほど違いはでないと思います。また、テスト用のメール総数を多くすればするほど、SMTPセッションにかかる時間が大きくなり、ツール自体の実行時間による影響は小さくなります。

milter-performance-checkが提供している機能で十分な時は、milter-performance-checkを利用し、それでは不十分な時はsmtp-sourceを利用するとよいでしょう。

オプション

--help

利用できるオプションを表示して終了します。

--smtp-server=SERVER

接続先のSMTPサーバを指定します。

既定値はlocalhostです。

--smtp-port=PORT

接続先のSMTPサーバのポート番号指定します。

既定値は25です。

--connect-host=HOST

接続元のホスト名を指定します。

PostfixのXCLIENT SMTP拡張 のNAMEを利用するので smtpd_authorized_xclient_hosts を適切に設定する必要があります。

--connect-address=ADDRESS

接続元のアドレスを指定します。

PostfixのXCLIENT SMTP拡張 のADDRを利用するので smtpd_authorized_xclient_hosts を適切に設定する必要があります。

--helo-fqdn=FQDN

HELOコマンドでFQDNを使います。

既定値はlocalhost.localdomainです。

--from=FROM

MAILコマンドのアドレスにFROMを使います。

既定値はfrom@example.comです。

--force-from=FROM

送信するメールファイルを指定した場合でも、ファイル中にあるFrom:の値ではなく、FROMをMAILコマンドのアドレスに使います。

既定値はありません。

--recipient=RECIPIENT

RCPTコマンドのアドレスにRECIPIENTを使います。複数の宛先を指定する場合は複数回このオプションを指定してください。

既定値は[to@example.com]です。

--force-recipient=RECIPIENT

送信するメールファイルを指定した場合でも、ファイル中にあるTo:の値ではなく、RECIPIENTをRCPTコマンドのアドレスに使います。複数の宛先を指定する場合は複数回このオプションを指定してください。

既定値はありません。

--n-mails=N

合計でN個のメールを送信します。複数のメールが同時に送信されます。同時に最大で何通送るかは --n-concurrent-connections で指定します。

既定値は100です。

--n-concurrent-connections=N

同時に最大N接続でメールを送信します。

既定値は10です。

--period=PERIOD

PERIOD(単位は秒、分、時間のどれか)の間に指定されたメールを送信します。各メールは間隔内で平均的に送信します。単位を省略した場合は秒として扱われます

例(送信メール数を100とする):

  • --period=5 # 0.05秒間隔で送信(5 / 100)

  • --period=50s # 0.5秒間隔で送信(50 / 100)

  • --period=10m # 6秒間隔で送信(60 * 10 / 100)

  • --period=0.5h # 18秒間隔で送信(60 * 60 * 0.5 / 100)

既定値はありません。

--interval=INTERVAL

INTERVAL(単位は秒、分、時間のどれか)間隔で指定されたメールを送信します。単位を省略した場合は秒として扱われます。

例:

  • --interval=5 # 5秒間隔で送信

  • --interval=0.5s # 0.5秒間隔で送信

  • --interval=10m # 10分間隔で送信

  • --interval=0.5h # 30分間隔で送信

既定値はありません。

--shuffle, --no-shuffle

送信予定のメールを無作為に並び替えてから送信します。

既定値はfalseです。(並び替えません。)

--reading-timeout=SECONDS

SMTPサーバからのレスポンスを待つ時間を指定します。 SECONDS 秒経ってもレスポンスが返ってこない場合はエラーになります。

既定値は60秒です。

終了ステータス

常に0。

以下の例では、milter-performance-checkはlocalhostの25番ポートで動いているSMTPサーバに接続し、100通のメールを送ります。それぞれのメールの差出人はfrom@example.comで、宛先はwebmaster@localhostとinfo@localhostです。

% milter-performance-check --recipient=webmaster@localhost --recipient=info@localhost

以下の例では、milter-performance-checkは192.168.1.29の25番ポートで動いているSMTPサーバに接続し、/tmp/test-mails/以下にあるファイルをメールとして送信します。ファイルはRFC 2822のメールフォーマットでなければいけません。各メールは3秒毎(60 * 10 / 100)にuser@localhost宛に送られます。--n-mails=1オプションが指定されているので、それぞれのメールは1通のみ送られます。

% milter-performance-check --n-mails=1 --smtp-server=192.168.1.102 --force-recipient=user@localhost --period=5m /tmp/test-mails/

関連項目

milter-test-client (1), milter-test-server (1)