apachetop via Apacheの負荷の状況を監視できる、apachetop - Unix的なアレ
へええ、これは知らなかった!アクセスログ解析型、なんですね。
『攻撃とも思われる負荷』というのは人やサーバースペックによって感覚は違うのだけど、確かに存在はしていて、たとえばうちの会社の携帯向けサービスではapacheの吐くアクセスログは1サーバあたり1日2GB弱なんだけども、これで大体秒間ピークGET数(≠PV/s)が400〜500ぐらい。これは個人的には「アタックされていると錯覚するぐらいログが流れていく」状態です。CPU利用率とかも高い高い。
こういう負荷状況で、さらに販促活動とかでピークが見込まれる場合、富豪的サイジングをしていない限りは多少の「おもり」が必要になります。
監視上、気をつけないといけないかなあ、と思ったのは
- apacheがアクセスログに「行」を出力するのは、リクエストの処理が完了してから
- ファイルシステムにもよるが 昔は?ログが2GBとか4GBを超えるとサーバーごと固まったと思う
- アクセスログに %T は是非ほしい (処理にかかった時間)
- server_statusも ExtendedStatus も必須
ちなみに、間にロードバランサとかリバースプロキシをいれたりしている場合、サーバにCPU/メモリ/IOリソースの余裕があるのにapacheのMaxClientsに達してユーザーから見ると「あれ?動いてない」ってなるときがあります。これ、KeepAlive Off にすると治ったりします。案外常識なのかもしれませんが是非お試しください。
(それとも、DoCoMoとかKDDIとかSoftBankさんのG/Wサーバとの間のKeepAliveがらみの仕様/相性/設計の問題なのかなあ)