memcacheのstatsコマンドメモ
有効期限前のデータがmemcacheから追い出されていたのでその時のメモ
容量が怪しそうなのでstatsでデータを見てみると
$ telnet localhost 11211 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. stats
結果を眺めると・・・・
最初、「bytes」の項目が容量に近かったので容量一杯と判断したが
実はmemcacheは確保したメモリを開放するわけではないので
この値で容量が一杯とは判断できないらしい。
(もしかしたら有効期限切れのデータが詰まっているかもしれないので)
で、見るべきところは「evictions」の項目で有効期限に達してないデータが
memcacheより追い出されたらここの値が増える。
で、原因はやはりmemcache容量不足と判明
pid | プロセスID | |
uptime | memcachedの起動時間(秒) | |
time | 現在時刻のタイムスタンプ | |
version | memcacheのバージョン | |
pointer_size | OSが32bit又は64bit | |
rusage_user | プロセスがユーザモードで動作した累計時間?(秒.マイクロ秒) | |
rusage_system | プロセスがカーネルモードで動作した累計時間?(秒.マイクロ秒) | |
curr_items | 現在のデータ数 | |
total_items | 累計のデータ数 | |
bytes | 現在の使用メモリ | |
curr_connections | 現在のコネクション数 | |
total_connections | memcacheの起動からの累計コネクション数 | |
connection_structures | memcacheが確保したコネクション構造体数 | |
cmd_get | GETコマンド発行の累計 | |
cmd_set | SETコマンド発行の累計 | |
get_hits | リクエストでキーが見つかった数 | |
get_misses | リクエストでキーが見つからなかった数 | |
evictions | 容量(メモリ)不足でmemcacheから追い出した回数 | |
bytes_read | ネットワークから受信したバイト数 | |
bytes_written | ネットワークへ送信したバイト数 | |
limit_maxbytes | memcacheの最大容量(バイト) | |
threads | リクエスト当たりに動作するスレッド数 |
ちなみにstatsの結果の原文は↓で適当に英訳
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt