部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

SSL/TLSを使ったSMTP/POP負荷試験について その3(perditionとpostalの設定)

その1
その2
の続きです。

perditionがインストールできたので、早速起動してみます。やりたいことは

  • STLSによるPOP負荷をPOPサーバに加える。ただしPOPクライアントはSSLに未対応

なのです。perditionを以下のように起動すると実現できました。

perdition --outgoing_server 192.168.0.1 --ssl_mode tls_outgoing --ssl_ca_file /usr/share/ssl/cert.pem --ssl_no_cn_verify
  • --outgoing_serverは、perditionが接続するPOPサーバの指定となります。本来はアカウント毎に登録するようですが今回は負荷試験なのでアカウントが大量に有り登録が面倒なので一括で指定しました。
  • --ssl_mode tls_outgoingは、今回の肝であるTLSの使用についての設定です。

クライアントとperditionの間の通信をlistenと呼びます。
また、perditonとPOPサーバの間の通信をoutgoingと呼びます。
この設定は、perditionとPOPサーバの間のみTLSにて暗号化する形となります。クライアント側の設定は、POPサーバをperditionのIPアドレスを指定するだけで、他には一切必要ありません。

  • --ssl_ca_fileは、証明書の検証時に使用する証明書のディレクトリパスです。用意していなかったのでopensslのデフォルトっぽいやつを見つけたので使用しました。
  • --ssl_no_cn_verifyは、「サーバーへの接続に使用する名前でリアルサーバーの共通名を検証しない」というオプションです。上記の証明書を使用したところエラーが出たのですが、このオプションをつけたら解消しました。

SSL通信としては問題ありですが、今回の目的は負荷試験なので、とりあえず通信できたので良しとしました。ちゃんとする際には正しいSSL証明書が必要でしょう。

さて、パフォーマンスについてですが、軽くPOP負荷を流しましたが、BladeCenter HS20にて200 con/secでCPU_idleが0になりましたのでこれぐらいが限界みたいです。CPUがよければもっと出るでしょう。あとOSチューニングとかperditonのチューニングとかしたら改善されるかもですが、やろうとしている試験の要件は満たすのでこのままとします。

詳細は本家のマニュアルページを参照してください。

次にSMTP負荷ツールであるpostalについてです。Solaris用パッケージをいただいたのでpkgaddしてそのまま使います。使い方は

/usr/local/sbin/postal -s 100 -c 20 -r 12000 -t 200 -m 25 -M 25 [SMTPサーバ] [rcpt toリストのパス]

です。

  • -sはSTARTTLSで通信するコネクションの割合を指定します。100としているので100%、すべてTSLとなります。
  • -cは1コネクションあたりに送信するメールの数です。とりあえず20としました。
  • -rは一分間に送るコネクションの数です。12000とすると200 con/secの負荷となります。
  • -tはスレッドの数です。大きくすると-rで指定した数が送る事が可能になったので、とりあえず200としました。
  • -m,-Mはメッセージサイズの指定です。単位はKBです。-m以上-M以下のメッセージがミックスされて送信されます。25KBで固定しにしたかったのでこのような指定としました。
  • rcpt toリストは、メールアドレスを改行区切りで記述したテキストファイルです。

これでとりあえず、
SMTP 100con/sec
POP 100con/sec
を処理できるか確認してみます。いけそうだったらもう少し増やしてみよう。
この項これで終わりです。

ではー。