February 8, 2012

A quick way to get memcached status

There are all sorts of different interfaces to memcached, but you don’t need any of them to make requests from the command line, because its protocol is so simple. Try this, assuming it’s running on the usual port on the local machine:

echo stats | nc 127.0.0.1 11211
STAT pid 22020
STAT uptime 3689364
STAT time 1227753109
STAT version 1.2.5
STAT pointer_size 64
STAT rusage_user 4543.071348
STAT rusage_system 8568.293421
STAT curr_items 139897
STAT total_items 51710845
STAT bytes 360147055
STAT curr_connections 40
STAT total_connections 66762
STAT connection_structures 327
STAT cmd_get 319992973
STAT cmd_set 51710845
STAT get_hits 280700485
STAT get_misses 39292488
STAT evictions 849165
STAT bytes_read 141320046298
STAT bytes_written 544357801590
STAT limit_maxbytes 402653184
STAT threads 4
END

Here’s an easy “top” emulator for memcached:

watch "echo stats | nc 127.0.0.1 11211"

If you don’t have netcat (nc), you can also use Bash’s built-in /proc/tcp magic if it’s enabled. Anything that can push a couple of characters to a TCP port and print the result to stdout will work. Or you can use something like this, if you must do it via PHP:

watch 'php -r '"'"'$m=new Memcache;$m->connect("127.0.0.1", 11211);print_r($m->getstats());'"'"
About Baron Schwartz

Baron joined Percona in April 2008. As Chief Performance Architect, he consults with customers as well as developing tools and practices for Percona's team. He is the lead author of High Performance MySQL, 2nd Edition.

Comments

  1. Dieter_be says:

    You can do even more fun/specific stuff like ‘stats items’, ‘stats sizes’, ‘stats slabs’, …
    See http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

    Another client worth mentioning is telnet. The advantage over netcat is the interactivity. (but then again nc is good for scripting)

  2. gorenje says:

    watch “(echo stats ; echo quit ) | nc 127.0.0.1 11211″ works, echo stats doesn’t since memcache expects you to quit the connection.

Speak Your Mind

*