株式会社ミクシィの前坂です。前回はmemcached 1.
statsの機能強化
memcachedには以前からstatsというコマンドがあり,
- デーモンの起動オプション
- スラブ単位でのアクセス記録
- 削除処理
- インクリメント,
デクリメント処理 - CAS処理
- 重いリクエストを含んだ通信の記録
デーモンの起動オプションを取得する
キャッシュクラスタの運用者は何台もの物理サーバを管理する必要があり,
図 telnetでコマンドを発行した例
Connected to localhost.
Escape character is '^]'.
stats settings
STAT maxbytes 67108864
STAT maxconns 1024
STAT tcpport 11211
STAT udpport 11211
STAT inter NULL
STAT verbosity 0
STAT oldest 0
STAT evictions on
STAT domain_socket NULL
STAT umask 700
STAT growth_factor 1.25
STAT chunk_size 48
STAT num_threads 5
STAT stat_key_prefix :
STAT detail_enabled no
STAT reqs_per_event 20
STAT cas_enabled yes
STAT tcp_backlog 1024
STAT binding_protocol auto-negotiate
END
スラブ単位でのアクセス記録
memcachedのキャッシュメカニズムにはスラブというさまざまのレコードサイズに対応したキャッシュ可能領域
slabの状態を調べる
- get_
hits (レコードの取得に成功した回数) - cmd_
set (書き込みに成功した回数) - delete_
hits (削除処理を行った回数) - incr_
hits (インクリメント処理が成功した回数) - decr_
hits (デクリメント処理が成功した回数) - cas_
hits (CAS更新に成功した回数) - cas_
badval (識別子のミスマッチによりCAS更新に失敗した回数)
上記の情報はすべてのスラブに対して個々に保持されます。このように細かくどうmemcachedのデーモンがアクセスされているかの情報を取得することにより,