古い以前のサーバでは1万通のメールを5分程で送り終えていましたが、サーバを変えてから同じリストに配信しても、26分程かかる様になってしまいました。
処理能力的にはまだまだ余裕があると思うのですが、どの設定項目を変更すれば早く処理出来る様になりますでしょうか?
ちなみに、メールの送信はPerlプログラムから行っています。
テストとしてforでループしながら千通のメールを送信するだけのプログラムを実行してみても、処理が終了するまで2分程かかってしまいます。
(テストは独自ドメインのサブアドレス宛に送っている為全件再送なくスムーズに全件送られます)
Perl
1for (my $i = 1 ; $i <= 1000 ; $i++) { 2 open(MAIL, "| /usr/sbin/sendmail destination+".$i."@example.com"); 3 print MAIL "From: sender@example.com\n"; 4 ~この後ヘッダやら本文やらを指定~ 5 close(MAIL); 6}
■旧サーバ
CPU Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz
RAM 1036MB
上記スペック筐体内で5つのサーバに仮想化
Debian 5.0.10
qmail 1.03
■新サーバ
CPU Intel Xeon E3-1260L
RAM 16GB
CentOS 7
Postfix 2.10.1
●main.cf
default_process_limit = 5000 smtpd_client_connection_count_limit = 200 default_destination_recipient_limit = 100 default_destination_concurrency_limit = 60 smtp_connect_timeout = 10s smtpd_error_sleep_time = 0 in_flow_delay = 0
●/var/log/maillog
Oct 5 16:00:02 s1example postfix/cleanup[9830]: 240E740525BF9: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/qmgr[10529]: 240E740525BF9: from=<return@example.com>, size=529, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: 37FC840525BFA: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: 37FC840525BFA: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/qmgr[10529]: 37FC840525BFA: from=<return@example.com>, size=533, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: 5012040525BFC: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: 5012040525BFC: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/qmgr[10529]: 5012040525BFC: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: 6AD0440525BFD: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: 6AD0440525BFD: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/qmgr[10529]: 6AD0440525BFD: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: 8336A40525BFE: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: 8336A40525BFE: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/qmgr[10529]: 8336A40525BFE: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: 9C96D40525BFF: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: 9C96D40525BFF: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/smtp[9843]: 5012040525BFC: to=<destination+3@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, delay=0.42, delays=0.16/0.01/0.05/0.2, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: A909F41004F5)) Oct 5 16:00:02 s1example postfix/qmgr[10529]: 5012040525BFC: removed Oct 5 16:00:02 s1example postfix/qmgr[10529]: 9C96D40525BFF: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: B5F0940525BFC: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: B5F0940525BFC: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/smtp[9846]: 6AD0440525BFD: to=<destination+4@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, delay=0.41, delays=0.17/0.02/0.05/0.18, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: BD4541C80568)) Oct 5 16:00:02 s1example postfix/qmgr[10529]: 6AD0440525BFD: removed Oct 5 16:00:02 s1example postfix/smtp[9849]: 8336A40525BFE: to=<destination+5@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, delay=0.37, delays=0.16/0.01/0.03/0.15, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: CD6BD41004F5)) Oct 5 16:00:02 s1example postfix/qmgr[10529]: 8336A40525BFE: removed Oct 5 16:00:02 s1example postfix/qmgr[10529]: B5F0940525BFC: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:02 s1example postfix/pickup[5790]: D06BA40525BFD: uid=1001 from=<return@example.com> Oct 5 16:00:02 s1example postfix/cleanup[9830]: D06BA40525BFD: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:02 s1example postfix/smtp[9843]: 9C96D40525BFF: to=<destination+6@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, delay=0.39, delays=0.17/0/0.04/0.18, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: EC3311A40478)) Oct 5 16:00:02 s1example postfix/qmgr[10529]: 9C96D40525BFF: removed Oct 5 16:00:03 s1example postfix/qmgr[10529]: D06BA40525BFD: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/pickup[5790]: 00F0E40525BFE: uid=1001 from=<return@example.com> Oct 5 16:00:03 s1example postfix/cleanup[9830]: 00F0E40525BFE: message-id=<JD20201005160002.9778.sender@example.com> Oct 5 16:00:03 s1example postfix/smtp[9846]: B5F0940525BFC: to=<destination+7@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, delay=0.35, delays=0.17/0/0.05/0.13, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: 0843E41004F6)) Oct 5 16:00:03 s1example postfix/qmgr[10529]: B5F0940525BFC: removed Oct 5 16:00:03 s1example postfix/qmgr[10529]: 00F0E40525BFE: from=<return@example.com>, size=534, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/pickup[5790]: 178EE40525BFC: uid=1001 from=<return@example.com> Oct 5 16:00:03 s1example postfix/cleanup[9830]: 178EE40525BFC: message-id=<JD20201005160003.9778.sender@example.com> Oct 5 16:00:03 s1example postfix/smtp[9849]: D06BA40525BFD: to=<destination+8@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, conn_use=2, delay=0.38, delays=0.21/0/0.01/0.15, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: 2751D1A40569)) Oct 5 16:00:03 s1example postfix/smtp[9837]: 240E740525BF9: to=<test@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, delay=1.1, delays=0.17/0.02/0.77/0.15, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: 275391A405C0)) Oct 5 16:00:03 s1example postfix/qmgr[10529]: 240E740525BF9: removed Oct 5 16:00:03 s1example postfix/qmgr[10529]: D06BA40525BFD: removed Oct 5 16:00:03 s1example postfix/cleanup[9864]: 2E2AD40525BF9: message-id=<20201005070003.2E2AD40525BF9@s1.example.com> Oct 5 16:00:03 s1example postfix/qmgr[10529]: 178EE40525BFC: from=<return@example.com>, size=535, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/pickup[5790]: 3E15440525BFD: uid=1001 from=<return@example.com> Oct 5 16:00:03 s1example postfix/cleanup[9830]: 3E15440525BFD: message-id=<JD20201005160003.9778.sender@example.com> Oct 5 16:00:03 s1example postfix/smtp[9843]: 00F0E40525BFE: to=<destination+9@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, conn_use=2, delay=0.34, delays=0.16/0/0.01/0.17, dsn=2.0.0, status=sent (250 Queued! <JD20201005160002.9778.sender@example.com> (Queue-Id: 4193F4100543)) Oct 5 16:00:03 s1example postfix/qmgr[10529]: 2E2AD40525BF9: from=<>, size=2547, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/bounce[9861]: 37FC840525BFA: sender non-delivery notification: 2E2AD40525BF9 Oct 5 16:00:03 s1example postfix/trivial-rewrite[9557]: warning: do not list domain example.com in BOTH virtual_mailbox_domains and relay_domains Oct 5 16:00:03 s1example postfix/qmgr[10529]: 00F0E40525BFE: removed Oct 5 16:00:03 s1example postfix/qmgr[10529]: 37FC840525BFA: removed Oct 5 16:00:03 s1example postfix/qmgr[10529]: 3E15440525BFD: from=<return@example.com>, size=535, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/smtp[9846]: 178EE40525BFC: to=<destination+10@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, conn_use=3, delay=0.39, delays=0.22/0.04/0.01/0.13, dsn=2.0.0, status=sent (250 Queued! <JD20201005160003.9778.sender@example.com> (Queue-Id: 671CC1A40569)) Oct 5 16:00:03 s1example postfix/qmgr[10529]: 178EE40525BFC: removed Oct 5 16:00:03 s1example postfix/pickup[5790]: 66AD340525BFA: uid=1001 from=<return@example.com> Oct 5 16:00:03 s1example postfix/virtual[9868]: 2E2AD40525BF9: to=<return@example.com>, relay=virtual, delay=0.26, delays=0.11/0.01/0/0.14, dsn=2.0.0, status=sent (delivered to maildir) Oct 5 16:00:03 s1example postfix/qmgr[10529]: 2E2AD40525BF9: removed Oct 5 16:00:03 s1example postfix/cleanup[9864]: 66AD340525BFA: message-id=<JD20201005160003.9778.sender@example.com> Oct 5 16:00:03 s1example postfix/smtp[9837]: 3E15440525BFD: to=<destination+11@example.com>, relay=mx01.muumuu-mail.com[123.4.567.8]:25, conn_use=3, delay=0.29, delays=0.12/0/0.01/0.17, dsn=2.0.0, status=sent (250 Queued! <JD20201005160003.9778.sender@example.com> (Queue-Id: 71DC341004F6)) Oct 5 16:00:03 s1example postfix/qmgr[10529]: 3E15440525BFD: removed Oct 5 16:00:03 s1example postfix/qmgr[10529]: 66AD340525BFA: from=<return@example.com>, size=535, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/pickup[5790]: 7F0B040525BF9: uid=1001 from=<return@example.com> Oct 5 16:00:03 s1example postfix/cleanup[9830]: 7F0B040525BF9: message-id=<JD20201005160003.9778.sender@example.com> Oct 5 16:00:03 s1example postfix/qmgr[10529]: 7F0B040525BF9: from=<return@example.com>, size=535, nrcpt=1 (queue active) Oct 5 16:00:03 s1example postfix/pickup[5790]: 997BF40525BFC: uid=1001 from=<return@example.com> Oct 5 16:00:03 s1example postfix/cleanup[9864]: 997BF40525BFC: message-id=<JD20201005160003.9778.sender@example.com>
基本的にボトルネックになっている部分を見つけて、その部分のパラメータを調整することになります。
まず、処理に時間がかかっているのは、どの部分でしょうか?
ご回答ありがとうございます。
処理毎の時間はどうすれば確認出来ますでしょうか?
まずは、送信を実行している際に [ Postfix ボトルネック分析 ]( http://www.postfix-jp.info/trans-2.3/jhtml/QSHAPE_README.html ) を試してみるとどうなりますか?
maillogにもどの処理で何秒かかったか出力されてますね。
ご回答ありがとうございます。
maillogを追加しました。(文字数制限の関係上一部だけとなります)
こちらで何かわかりますでしょうか?
下記を見ると 0.29 秒で1通送信できてますが、これが遅いのですか?早いのですか?期待する速度は1通どの程度なのでしょう?
delay=0.29, delays=0.12/0/0.01/0.17
25port へ接続するのに 0.77 秒かかってるパターンもありますね。
delay=1.1, delays=0.17/0.02/0.77/0.15
っていうのがログからわかります。
> 処理能力的にはまだまだ余裕があると思うのですが、どの設定項目を変更すれば早く処理出来る様になりますでしょうか?
↑は何を確認してそういう判断に至ったのでしょうか?
一万通五分がとりあえずの目標ですので、0.03秒でコマンドの実行結果を得て次のコマンド処理に移っていないと間に合わない計算になります。
コマンド実行がqmailよりもpostfixの方が遅いと言う事でしょうか。
処理能力は旧サーバとの比較になります。
旧サーバは何をするにもかなりモッサリしていたのですが、それが新サーバでは爆速になっている事から、旧サーバ以上のポテンシャルは持っていると思っています。
通信相手があることなので、おそらくqmail でも1通 0.03 秒で送信は難しいと思います。
並列数を増やすことで対処しているのだと思います。
qmail は、相手に関係なく複数並列でひたすら送信する仕様だったと思いますので、Postfix は、MXホスト別にコネクションを張っていたと思うので送信方法の設計が違うのだと思います。
ひたすら送信する必要があるのであれば、従来と同じように qmail の利用を検討するのはいいのではないでしょうか。
ご回答ありがとうございます。
MTAの設計違いの結果なのですね。
qmail恐るべし。。。
回答2件
あなたの回答
tips
プレビュー