Spec-Zone .ru
спецификации, руководства, описания, API

15.6.4. Getting memcached Statistics

15.6.4.1. memcached General Statistics
15.6.4.2. memcached Slabs Statistics
15.6.4.3. memcached Item Statistics
15.6.4.4. memcached Size Statistics
15.6.4.5. memcached Detail Statistics
15.6.4.6. Using memcached-tool

The memcached system has a built-in statistics system that collects information about the data being stored into the cache, cache hit ratios, and detailed information on the memory usage and distribution of information through the slab allocation used to store individual items. Statistics are provided at both a basic level that provide the core statistics, and more specific statistics for specific areas of the memcached server.

This information can be useful to ensure that you are getting the correct level of cache and memory usage, and that your slab allocation and configuration properties are set at an optimal level.

The stats interface is available through the standard memcached protocol, so the reports can be accessed by using telnet to connect to the memcached. The supplied memcached-tool includes support for obtaining the Section 15.6.4.2, "memcached Slabs Statistics" and Section 15.6.4.1, "memcached General Statistics" information. For more information, see Section 15.6.4.6, "Using memcached-tool".

Alternatively, most of the language API interfaces provide a function for obtaining the statistics from the server.

For example, to get the basic stats using telnet:

shell> telnet localhost 11211Trying ::1...Connected to localhost.Escape character is '^]'.statsSTAT pid 23599STAT uptime 675STAT time 1211439587STAT version 1.2.5STAT pointer_size 32STAT rusage_user 1.404992STAT rusage_system 4.694685STAT curr_items 32STAT total_items 56361STAT bytes 2642STAT curr_connections 53STAT total_connections 438STAT connection_structures 55STAT cmd_get 113482STAT cmd_set 80519STAT get_hits 78926STAT get_misses 34556STAT evictions 0STAT bytes_read 6379783STAT bytes_written 4860179STAT limit_maxbytes 67108864STAT threads 1END

When using Perl and the Cache::Memcached module, the stats() function returns information about all the servers currently configured in the connection object, and total statistics for all the memcached servers as a whole.

For example, the following Perl script obtains the stats and dumps the hash reference that is returned:

use Cache::Memcached;use Data::Dumper;my $memc = new Cache::Memcached;$memc->set_servers(\@ARGV);print Dumper($memc->stats());

When executed on the same memcached as used in the Telnet example above we get a hash reference with the host by host and total statistics:

$VAR1 = {    'hosts' => {           'localhost:11211' => {                      'misc' => {                            'bytes' => '2421',                            'curr_connections' => '3',                            'connection_structures' => '56',                            'pointer_size' => '32',                            'time' => '1211440166',                            'total_items' => '410956',                            'cmd_set' => '588167',                            'bytes_written' => '35715151',                            'evictions' => '0',                            'curr_items' => '31',                            'pid' => '23599',                            'limit_maxbytes' => '67108864',                            'uptime' => '1254',                            'rusage_user' => '9.857805',                            'cmd_get' => '838451',                            'rusage_system' => '34.096988',                            'version' => '1.2.5',                            'get_hits' => '581511',                            'bytes_read' => '46665716',                            'threads' => '1',                            'total_connections' => '3104',                            'get_misses' => '256940'                          },                      'sizes' => {                             '128' => '16',                             '64' => '15'                           }                    }         },    'self' => {},    'total' => {           'cmd_get' => 838451,           'bytes' => 2421,           'get_hits' => 581511,           'connection_structures' => 56,           'bytes_read' => 46665716,           'total_items' => 410956,           'total_connections' => 3104,           'cmd_set' => 588167,           'bytes_written' => 35715151,           'curr_items' => 31,           'get_misses' => 256940         }        };

The statistics are divided up into a number of distinct sections, and then can be requested by adding the type to the stats command. Each statistics output is covered in more detail in the following sections.