RLB

Just sharing knowledge

LVS(Keepalived)でhealth_check.htmlはやめるべし!

まさに表題の通り。。

Keepalived + LVSの構成で組んでいたとして、よくあるTipsとして「ヘルスチェックはhealth_check.htmlという静的ファイルを用意して、それを死活監視のポイントにしよう」である。過去のLVSの構築手順の記事でもその旨を記載したものの、いろいろな体験した結果、これはNGという結論に至った。

確かにhealth_check.htmlのようなページを用意することで、簡単にクライアント側から切り離しが出来るので非常に楽。

#サーバの切り離しが簡単
mv health_check.html health_check.html_

ただし、大きなトラップがあって、たかが静的なhealth_check.htmlページごときだと、ほとんどの場合で死活監視OKとなってしまう笑。

サーバにLoadAverageが150を超えるなど、高負荷がかかった場合どうなるかというと、色々止まる。sshもログインできなくなる。 ただそんな過酷な状況下でもapacheは意外としぶとく、静的ページに至っては0秒のスピードで返してくれたりする。しかも律儀にログに残ってたりもする。

結論

クリティカルなシステムであれば、死活監視対象は比較的処理に時間がかかりそうなページにしとく。

ただし、重いページを選択すると、通信が多く発生したり、負荷がかかるページであれば、死活監視だけでapacheにダメージを与えることになるので、ここはうまくバランスをとる必要はあり。