負荷テストの学び(4)
(1)~(3)では負荷試験について、負荷をかける方法を学びました。
今回は負荷をかけられたサーバの状態を知る方法についてです。
Ganglia
GangliaはRRDtoolのフロントエンドだと思えばいいみたいです。
監視したいサーバ内で、gmondのようなGangliaのプロセスを立ち上げて、監視するプロセスとマルチキャストで通信します。
主に利用するのは以下の3つのようです。
1. gmond
監視対象のサーバで動くデーモンです。
2. gmetad
管理サーバで動くデーモンです。gmondと通信を行い、データをRRDに保存します。
3. ganglia-web
RRDのデータを見やすく表示します
使ってみる
CentOSで yum search ganglia したところいくつかあったので、とりあえずいくつか入れておきます。
ganglia.i686 : Ganglia Distributed Monitoring System ganglia.x86_64 : Ganglia Distributed Monitoring System ganglia-devel.i686 : Ganglia Library ganglia-devel.x86_64 : Ganglia Library ganglia-gmetad.x86_64 : Ganglia Metadata collection daemon ganglia-gmond.x86_64 : Ganglia Monitoring daemon ganglia-gmond-python.x86_64 : Ganglia Monitor daemon python DSO and metric : modules ganglia-web.x86_64 : Ganglia Web Frontend libnodeupdown-backend-ganglia.x86_64 : Ganglia backend for libnodeupdown
yum install ganglia ganglia-devel ganglia-gmond ganglia-gmetad ganglia-web
次にデフォルトの設定で起動してみます。
service gmond start service gmetad start
正しく動いていたら、/var/lib/ganglia の下にファイルができていると思います。
次にganglia-webで可視化します。
cd /var/www/html mkdir ganglia
そしたら、localhost/ganglia にアクセスします。
私の場合は、error_logに以下が出ていたので、/etc/httpd/conf.d/ganglia.confを編集しました。
client denied by server configuration: /usr/share/ganglia
具体的には、アクセスするクライアントのIPアドレスだけAllowにしました。
Alias /ganglia /usr/share/ganglia <Location /ganglia> Order deny,allow Deny from all Allow from 126.213.x.xx # Allow from 127.0.0.1 # Allow from ::1 # Allow from .example.com </Location>
デフォルトではCPUとメモリの状態しか出ませんが、あとは自分が知りたい指標に合わせてカスタマイズしましょうってことで。
これで、負荷試験からレスポンスタイムの計測、サーバの状態の可視化などが一通りできるようにりました。
あとは実践あるのみ!