俺の報告

RoomClipを運営するエンジニアの日報(多分)です。

日報 #30 - CloudWatch再び

お盆だそうです。
皆やることあるだろうから、さっさと済ませましょう。

今日はいろいろあったけど気まずいことばかりなので、
CloudWatch周りの話。

ちょっと前にCloudWatchのカスタムマトリックス云々の話をしたかと思いますが、引き続き観測パラメータを日々調整しております。

公開できる限りで公開していきます。
とても簡単にとれるものだらけですが、見ていておもろいグラフになるので、
暇な人は是非。

Apache Busy/IDLE

とりあえずapacheのmod_statusから。
mod_statusのインストール手順、閲覧手順などは世界にゴマンとあるのでどうぞそちらへ。
apache2ctl statusで404 Not Foundが出ちゃう人は、そもそもlocalhostがvhostに登録されていない可能性があるので、ServerName localhostでVirtualHostディレクティブを作ってつかあさい。

で、取得しているのはApacheのBusyなプロセスの数と、Idleのプロセスの数。
これはパフォーマンス云々というか、MaxspareやMinspareの調整のために監視します。
また、cronから実行するとapachectlは使えなかったりするので(権限がなければ)、
取得する時はwgetでやっています。

APACHE_STATUS=`wget -q -O - http://localhost/server-status/?auto`
# Apache count
APACHE_COUNT=`ps -ef | grep apache -c`
# Apache count / idle,busy
APACHE_COUNT_BUSY=`echo -e "$APACHE_STATUS" | grep 'BusyWorkers' | awk -F': ' '{print $2}' | sed 's/^[\t]*//' | sed -e 's/[\t]*$//' | tr -d '\r' | tr -d '\n' `
APACHE_COUNT_IDLE=`echo -e "$APACHE_STATUS" | grep 'IdleWorkers' | awk -F': ' '{print $2}' | sed 's/^[\t]*//' | sed -e 's/[\t]*$//' | tr -d '\r' | tr -d '\n' `

これを眺めているとピークタイムのときの挙動がしっかりとみれて全体のapacheカウントより、より鮮明に状態を把握することが出来ます。
みてて面白いってのが大きいけど。

Request per Sec

これもserver-statusからみれますね。
このパラメータもapacheの設定に活かすために用います。
access.logをなめてもいいですが、グラフにしておいて、ピークタイムの勢いを正確に把握しときます。

あれ、
見せられる指標がここまでだ。
あとは前回の通り、CPUのIDLE,BUSY,WAITとLoadAverage、それからメモリ周り。
うーん。
案外見ている数値は少ないな。
次回以降はio周りをベーシカルなCloudWatchだけでなくiotopと合わせて監視していけたらいいですね。

では、お休みの時に失礼しましたー。