memcacheをレプリケートしたり、クラスタ的に分散して使用していると、どのノードにどれだけキャッシュされているかわかりづらく、WEB UIで確認するほどの内容でもないので、簡単な状態チェックツールがあると便利です。
そこでmoongiftさんでも紹介されていたmemcache-topを使ってみました。
インストール
下のページのダウンロードリンクをコピーします。
コピーしたURLを、memcacheノードのあるセグメント内のホストでPATHの通った場所にダウンロードします。
ダウンロードされるのはバイナリ実行ファイルなので、実行権限を与えます。
# cd /usr/local/bin # curl -OL https://memcache-top.googlecode.com/files/memcache-top-v0.6 # chmod 755 memcache-top-v0.6 # ln -s memcache-top-v0.6 memcache-top
実行時に
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .)となる場合は、以下のようにライブラリをインストールします。
# yum install -y perl-Time-HiRes
実行
実行は、おもに以下のオプションを使用します。
- --instances:memcacheノードのIPまたはホスト名をカンマ区切り、もしくは複数オプション
- --port:ポート番号(デフォルト11211)
- --sleep:モニタ間隔(デフォルト3秒)
他にもいくつかありますが、よくつかうのは上記3つです。
それでは以下のように実行します。
$ memcache-top --instances 10.32.11.171,10.32.11.172 --port 11210 memcache-top v0.6 (default port: 11210, color: on, refresh: 3 seconds) INSTANCE USAGE HIT % CONN TIME EVICT/s READ/s WRITE/s 10.32.11.171:11210 1.5% 93.8% 5 1.0ms 0.0 210 390 10.32.11.172:11210 1.5% 0.0% 5 0.8ms 0.0 221 11.3K AVERAGE: 1.5% 46.9% 5 0.9ms 0.0 215 5967 TOTAL: 1.9MB/ 0.1GB 10 1.8ms 0.0 431 11.7K (ctrl-c to quit.)
Elasticacheでも同じように結果の取得ができます。
./memcache-top-v0.6 --instances memorycraft.5horbl.0001.apne1.cache.amazonaws.com,memorycraft.5horbl.0002.apne1.cache.amazonaws.com,memorycraft.5horbl.0003.apne1.cache.amazonaws.com memcache-top v0.6 (default port: 11211, color: on, refresh: 3 seconds) INSTANCE USAGE HIT % CONN TIME EVICT/s READ/s WRITE/s memorycraft.5horbl.0001 0.0% 0.0% 5 2.0ms 0.0 2 367 memorycraft.5horbl.0002 0.0% 0.0% 5 1.8ms 0.0 2 367 memorycraft.5horbl.0003 0.0% 0.0% 5 1.8ms 0.0 2 367 AVERAGE: 0.0% 0.0% 5 1.9ms 0.0 2 367 TOTAL: 244B/ 3.5GB 15 5.6ms 0.0 6 1101 (ctrl-c to quit.)
簡単な状態のモニタリングをするにはとても便利です。
以上です。