2018年2月22日木曜日

ELBの最適なタイムアウト設定

ELBのクラッシックロードバランサのタイムアウトの話
デフォルトで60秒のアイドルタイムアウトが設定されています。

アイドルタイムアウトは、1バイトも送受信が行われないコネクションを何秒で切断するかの設定です。

長いアップロードなどでで継続的にデータが行われる場合は問題ないです。
送受信が行われないときのタイムアウトです。
例えば、サーバーがレスポンスなくタイムアウト値の時間を超えると切断する。

apacheの設定でのタイムアウトの最適化の話

/etc/httpd/conf/httpd.conf

apacheのタイムアウト > ELBのアイドルタイムアウト
基本的にこちらのタイムアウトは、ELBのタイムアウトより大きくするのが良い。

普通は、長い接続がパフォーマンスを悪くするので、
短いタイムアウトを設定するが
ロードバランサーがそこは面倒をみてくれるので短くなくてよい。

むしろロードバランサーはサーバーとの接続を維持したほうが、サーバーとのハンドシェイクなどのコストが減りパフォーマンスが良くなる可能性が高い。

KeepAliveとTimeoutをELBのアイドルタイムアウトの+60sや2倍などにするとよい。

"Timeout"
おすすめの値:120
ELBのidletimeoutが60sの場合
idletimeout+60sとか2倍とかかな

"KeepAlive"
おすすめの値:On

"KeepAliveTimeout"
おすすめの値:120
ELBのidletimeoutが60sの場合
idletimeout+60sとか2倍とかかな

"MaxKeepAliveTimeout"
おすすめの値:100

参考
https://aws.amazon.com/premiumsupport/knowledge-center/apache-backend-elb/

0 件のコメント:

コメントを投稿