2013年3月26日火曜日

Elasticacheってなんじゃ?(memcache-topってなんじゃ?)

別にElasticache関係なく、memcacheの話題です。

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.)


簡単な状態のモニタリングをするにはとても便利です。
以上です。