November 26, 2008

A quick way to get memcached status

Posted by Baron Schwartz

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:

CODE:
  1. echo stats | nc 127.0.0.1 11211
  2. STAT pid 22020
  3. STAT uptime 3689364
  4. STAT time 1227753109
  5. STAT version 1.2.5
  6. STAT pointer_size 64
  7. STAT rusage_user 4543.071348
  8. STAT rusage_system 8568.293421
  9. STAT curr_items 139897
  10. STAT total_items 51710845
  11. STAT bytes 360147055
  12. STAT curr_connections 40
  13. STAT total_connections 66762
  14. STAT connection_structures 327
  15. STAT cmd_get 319992973
  16. STAT cmd_set 51710845
  17. STAT get_hits 280700485
  18. STAT get_misses 39292488
  19. STAT evictions 849165
  20. STAT bytes_read 141320046298
  21. STAT bytes_written 544357801590
  22. STAT limit_maxbytes 402653184
  23. STAT threads 4
  24. END

Here's an easy "top" emulator for memcached:

CODE:
  1. 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:

CODE:
  1. watch 'php -r '"'"'$m=new Memcache;$m->connect("127.0.0.1", 11211);print_r($m->getstats());'"'"

Related posts: :APC or Memcached::Rebuilding MySQL Binary::Quick tip: how to convert tables to InnoDB:
 

1 Comment »

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

    Comment :: November 27, 2008 @ 6:15 am

 



Subscribe without commenting