/memcache-top

Automatically exported from code.google.com/p/memcache-top

Primary LanguagePerlBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Forked from https://code.google.com/p/memcache-top/. Original project summary is as follows:


I wanted a simple command-line tool to be able to grab real-time stats from memcache (memcached, I know, I know), and output it in a view something like top. I couldn't find anything like it, so I wrote one myself in perl.

When writing it, I tried to keep it simple, portable, and lightweight. (No memcached perl modules required! I tried to keep it to modules I thought would be preinstalled on almost any modern system. It's also fairly polite - non-critical modules get checked, and if they aren't installed, the functionality is disabled without spewing errors or dying.) I realize it's not written well. But, hey, at least it exists, right? Until the day I released it, there wasn't any comparable tool like it for memcached.

It gives you the basic stats, and not too much else. (You can specify thresholds, for instance, and it'll change color to red if you exceed the thresholds. You can also choose the refresh/ sleep time, and whether to show immediate (per second) stats, or lifetime stats. But it pretty much all revolves around those stats.)

Here's some sample output:

memcache-top v0.5       (default port: 11211, color: on, refresh: 3 seconds)

INSTANCE                USAGE   HIT %   CONN    TIME    EVICT/s READ/s  WRITE/s
10.50.11.5:11211        88.8%   69.6%   1123    1.9ms   0.3     13.1K   36.2K
10.50.11.5:11212        88.7%   69.6%   1175    0.6ms   0.3     12.4K   28.1K
10.50.11.5:11213        88.8%   69.4%   1148    0.7ms   0.0     16.6K   32.1K
10.50.12.5:11211        89.3%   81.5%   1460    0.7ms   0.3     17.7K   204.0K
10.50.12.5:11212        89.4%   69.3%   1174    0.6ms   1.0     28.9K   63.5K
10.50.12.5:11213        89.3%   69.4%   1158    0.7ms   0.7     166.3K  194.4K
10.50.15.5:11211        89.3%   71.8%   1472    0.8ms   0.0     37.3K   59.2K
10.50.15.5:11212        89.4%   69.3%   1143    0.7ms   0.7     44.9K   35.4K
10.50.15.5:11213        89.3%   84.5%   1371    0.7ms   0.7     49.0K   187.2K
10.50.9.90:11211        30.2%   76.3%   259     0.7ms   0.0     243     999
10.50.9.90:11212        19.2%   60.3%   261     0.7ms   0.0     40      801
10.50.9.90:11213        17.5%   16.9%   235     0.6ms   0.0     70      600

AVERAGE:                72.4%   67.3%   998     0.8ms   0.3     32.2K   70.2K

TOTAL:                  23.4GB          11.7K   9.2ms   4.0     386.4K  842.3K
(ctrl-c to quit.)

Here's v0.6 with commands enabled (--commands):

memcache-top v0.6       (default port: 11211, color: on, refresh: 3 seconds)

INSTANCE                USAGE   HIT %   CONN    TIME    EVICT/s GETS/s  SETS/s  READ/s  WRITE/s
10.50.11.5:11211        88.9%   69.7%   1661    0.9ms   0.3     47      9       13.9K   9.8K
10.50.11.5:11212        88.8%   69.9%   2121    0.7ms   1.3     168     10      17.6K   68.9K
10.50.11.5:11213        88.9%   69.4%   1527    0.7ms   1.7     48      16      14.4K   13.6K
10.50.12.5:11211        89.4%   81.9%   1406    1.6ms   1.0     26      11      7800    4059
10.50.12.5:11212        89.5%   69.5%   2066    1.8ms   0.7     149     8       8892    153.8K
10.50.12.5:11213        89.4%   69.4%   1430    1.4ms   2.0     25      12      6564    6386
10.50.15.5:11211        89.5%   71.9%   2359    0.8ms   1.3     46      11      13.4K   18.5K
10.50.15.5:11212        89.5%   69.3%   1298    0.8ms   1.0     24      5       6976    9140
10.50.15.5:11213        89.4%   85.0%   1412    0.9ms   2.3     30      15      13.6K   26.4K
10.50.9.90:11211        88.1%   68.3%   1471    0.7ms   3.7     39      14      22.5K   16.0K
10.50.9.90:11212        64.4%   91.2%   2321    0.7ms   0.0     191     11      28.4K   16.5K
10.50.9.90:11213        61.0%   58.7%   1380    0.7ms   0.0     32      12      9707    21.1K

AVERAGE:                84.7%   72.9%   1704    1.0ms   1.3     69      11      13.5K   30.3K

TOTAL:          19.9GB/ 23.4GB          20.0K   11.7ms  15.3    826     132     162.6K  363.6K
(ctrl-c to quit.)

From the comments, here are the command-line flags you can use:

#   If Getopt::Long is installed:
#     - Specify instances w/ --instances (multiple times or comma separated)
#     - Specify default port w/ --port (defaults to 11211)
#     - Specify sleep time w/ --sleep (default 3)
#     - Specify color output w/ --color (default) or --nocolor
#     - Specify lifetime stats w/ --lifetime or --nolifetime (default)
#       NOTE: lifetime stats break thresholds for evictions, bytes.
#     - Specify read and write bytes w/ --bytes (default) or --nobytes
#     - Specify get and set commands w/ --commands or --nocommands (default)
#     - Specify cumulative numbers w/ --cumulative (don't use with lifetime)

Here's an example of lifetime stats (--lifetime):

memcache-top v0.5       (default port: 11211, color: on, refresh: 3 seconds)

INSTANCE                USAGE   HIT %   CONN    TIME    EVICT   READ    WRITE
10.50.11.5:11211        88.8%   69.6%   1127    0.9ms   4.5M    1.2T    1.4T
10.50.11.5:11212        88.7%   69.6%   1178    1.3ms   4.4M    515.9G  634.1G
10.50.11.5:11213        88.8%   69.4%   1157    0.8ms   4.4M    461.5G  578.6G
10.50.12.5:11211        89.3%   81.5%   1448    0.7ms   6.2M    398.3G  909.5G
10.50.12.5:11212        89.4%   69.3%   1183    0.8ms   6.2M    251.7G  407.1G
10.50.12.5:11213        89.3%   69.4%   1161    0.6ms   6.2M    739.1G  897.9G
10.50.15.5:11211        89.3%   71.8%   1460    1.1ms   6.2M    825.3G  1.0T
10.50.15.5:11212        89.4%   69.3%   1148    0.8ms   6.2M    452.6G  594.6G
10.50.15.5:11213        89.3%   84.5%   1358    0.7ms   6.2M    1.0T    1.3T
10.50.9.90:11211        30.2%   76.3%   259     0.8ms   0.0     0.7G    0.7G
10.50.9.90:11212        19.2%   60.3%   262     0.7ms   0.0     0.4G    0.2G
10.50.9.90:11213        17.5%   16.9%   235     0.8ms   0.0     0.4G    0.2G

AVERAGE:                72.4%   67.3%   998     0.8ms   4.2M    484.3G  644.3G

TOTAL:                  23.4GB          11.7K   10.0ms  50.5M   5.7T    7.6T
(ctrl-c to quit.)

Lifetime stats are pretty boring - unless the instances are relatively new, or doing a lot of traffic, they aren't going to update all that much with each run. But hey, if you were curious, there you go.

DISCLAIMER: This is not the best code in the world. I make no warranties, promises, or guarantees that it will do anything, correct or incorrect. It may very well kill you and your close relatives. You've been warned.