- PR -

sendmailの負荷テストに関して

投稿者投稿内容
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-11-22 22:41
引用:

altezzaさんの書き込み (2004-11-22 20:30) より:
sendmailのキュー処理では、障害が起きてもメールを失わないようにするために、
メールを物理的にディスクに書き込むようにしています。


メールサーバは同期モードでHDD書き込みをしなさい、とよく言われますね。

これは素朴な疑問なんですが、大手ISPなんかでも同期モードで書いて
いるのでしょうか? 企業用なんかだと一通でもメールが消えたら大問題、
みたいなことになりがちですが、ISP でもそうなのかしら?

引用:

普通はOSのキャッシュとかで誤魔化されてるけど、ディスクの裸の性能なんて
大したことないですよね・・・


同期すると一回で数ミリ秒かかりますね。4KB とか 8KB とかの小さな単位で
同期しているプログラムだと、MB単位のサイズのファイルが添付されてると
めまいがするほど遅いですね。

引用:

なので、負荷を掛けてやるとキューのI/O処理が追いつかなくなって
あっという間に子プロセスが増えていきます。


ああっと、説明が足りませんでした。

それはそうなんですが、処理が追いつかなくなってくると「ハズレ
くじ」をつかまされたユーザはメール一通送信するのに数十秒とか
数分とかかかるとか、ヘタをするとサーバがダウンするとか、
いかにも「まずい」状態になりますよね。
サーバの処理能力 - スループット - が追いつかない限り、
同時に接続を受け付ける数を増やすことには意味が無い、てゆーか
有害なはずです。 ・・・なにか特別な事情があれば話は別ですが。

なので、「多数の同時接続を受け付けるからにはスゴいスループット
なんだろう」と思ったわけです。
小容量ディスクを山ほど並べて、書き込みのペナルティを隠蔽してる、
とか、そーゆーのかしら?と。
altezza
会議室デビュー日: 2002/09/17
投稿数: 16
投稿日時: 2004-11-23 00:52
こんばんわ。

引用:

これは素朴な疑問なんですが、大手ISPなんかでも同期モードで書いて
いるのでしょうか? 企業用なんかだと一通でもメールが消えたら大問題、
みたいなことになりがちですが、ISP でもそうなのかしら?



私の知る範囲では、例外なく同期モード(SuperSafe=true)です。
大量発信が目的のサイトでは、安全性を犠牲にしてでも
性能を要求されることはありますが。


引用:

「多数の同時接続を受け付けるからにはスゴいスループット
なんだろう」と思ったわけです。
小容量ディスクを山ほど並べて、書き込みのペナルティを隠蔽してる、
とか、そーゆーのかしら?と。



メールキューにシリコンディスクを使えば最強ですが、
ここまでしなくても、ファイバーチャネルなんかのキャッシュ付きの
ストレージを使ったり、書き込みキャッシュ付きのRAIDコントローラを
使ったりすることで、相当な性能が出ます。

エンドユーザから見えるSMTPサーバでは応答性は大事ですが、
エンドユーザから見えない中継サーバではそうでもありません。
ウイルスメールやスパムメールが流れる基幹中継サーバにSMTPサーバを
兼ねさせると負荷が高い場合に問題になる恐れがあるので、
(予算があれば)基幹経路とSMTPサーバは分けておきたいですね。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-11-23 10:18
引用:

altezzaさんの書き込み (2004-11-23 00:52) より:
私の知る範囲では、例外なく同期モード(SuperSafe=true)です。
大量発信が目的のサイトでは、安全性を犠牲にしてでも
性能を要求されることはありますが。


ふむふむ、そうですか。
ありがとうございます。

引用:

ここまでしなくても、ファイバーチャネルなんかのキャッシュ付きの
ストレージを使ったり、書き込みキャッシュ付きのRAIDコントローラを
使ったりすることで、相当な性能が出ます。


うーん、でもキャッシュに書き込んだ時点でOS側に完了を告げてしまうと、
その瞬間に電源が切れたりした場合には書き込み中のファイルは確実に
失われるし、運が悪いとファイルシステムにもダメージを及ぼしますよね。
そういうのも避けたほうがよい気がしますが。

[ メッセージ編集済み 編集者: ぽんす 編集日時 2004-11-23 10:20 ]

スキルアップ/キャリアアップ(JOB@IT)