JavaMailは遅くなかった
http://d.hatena.ne.jp/n314/20101118/1290101208
Postfixが遅かった。
原因は不明。 下に追記
開発マシン
time /usr/sbin/sendmail -t < /tmp/body.txt real 0m0.032s user 0m0.004s sys 0m0.008s
サーバー
time /usr/sbin/sendmail -t < /tmp/body.txt real 0m0.082s user 0m0.004s sys 0m0.004s
同じHWのサーバー
time /usr/sbin/sendmail -t < /tmp/body.txt real 0m0.008s user 0m0.004s sys 0m0.004s
この違いは…。
user + sys と real の差は一体何だろう。
straceやtcpdumpなどを眺めているが未だに原因が分からず。
vmstatの結果は少し違う。
開発マシン
vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 705312 184984 278020 348600 1 1 0 1 1 1 3 2 95 0 0 0 705312 184976 278020 348600 0 0 0 8 73 1190 4 1 94 0 0 0 705312 184976 278020 348600 0 0 0 0 88 1269 4 1 95 0 0 0 705312 184976 278020 348600 0 0 0 0 65 1298 5 2 93 0 0 0 705312 184952 278024 348604 0 0 0 456 202 2501 14 2 84 0 0 0 705312 184944 278024 348604 0 0 0 0 183 5961 16 5 79 0 0 0 705312 184864 278024 348604 0 0 0 0 161 7605 33 9 58 0 0 0 705312 184520 278024 348604 0 0 0 0 124 4470 24 8 68 0 5 0 705312 183164 278024 348604 0 0 0 0 124 4635 23 7 70 0
サーバー
vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 2741248 154124 2390480 0 0 0 4 2 2 0 0 100 0 0 0 0 2740248 154124 2390480 0 0 0 0 1978 1278 0 1 99 0 0 0 0 2740336 154124 2390480 0 0 0 0 1989 866 0 0 100 0 0 0 0 2740496 154124 2390480 0 0 0 0 1809 674 0 0 100 0 0 0 0 2740496 154124 2390480 0 0 0 0 1807 686 0 0 100 0 0 0 0 2741612 154124 2390484 0 0 0 0 1852 696 0 0 100 0 0 0 0 2740868 154124 2390488 0 0 0 0 1450 541 0 0 100 0 0 0 0 2740212 154124 2390488 0 0 0 0 1937 862 0 0 100 0 0 0 0 2740248 154124 2390488 0 0 0 0 1831 680 0 0 100 0 0 0 0 2740248 154124 2390488 0 0 0 0 1810 669 0 0 100 0 0 0 0 2737628 154124 2390492 0 0 0 0 1975 834 0 0 100 0
同じHWのサーバー
vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 914648 268996 4328256 0 0 0 8 1 1 0 0 100 0 0 0 0 914640 268996 4328256 0 0 0 0 407 109 0 0 100 0 0 0 0 914648 268996 4328256 0 0 0 0 174 102 0 0 100 0 0 0 0 914656 268996 4328256 0 0 0 132 150 114 0 0 100 0 0 0 0 914672 268996 4328256 0 0 0 0 115 93 0 0 100 0 0 0 0 914672 268996 4328256 0 0 0 0 109 90 0 0 100 0 0 0 0 914672 268996 4328256 0 0 0 0 111 96 0 0 100 0
何もしていない状態でコレ。
サーバーはtomcatや各種デーモン、あとDRBDとheartbeatも動いているので、その辺のせい?プロセスの個数やCPU負荷は高くないが、systemの値が高い。と言っても微々たるものな気がするが…0.1秒以下の処理には影響するのか?それともDRBDの通信?ネットワークの構成もちょっと違う。sendmailコマンドの実行時間にネットワーク環境って影響するのかな。
デーモンの影響だとすると、こればっかりはどうしようもないので別のSMTPサーバーを使うのがいいか…。
追記
DRBDを切ったら速くなった。
time /usr/sbin/sendmail -t < /tmp/body.txt real 0m0.019s user 0m0.008s sys 0m0.000s
http://www.postfix-jp.info/ML/arc.1/msg00958.html
これか…。キューのファイルはsyncされるんだね。
このディレクトリをDRBDから外すべきか…。