16.2.4 获取memcached统计信息

memcached系统有一个内置的统计系统,通过用于存储单个项目的 slab 分配收集有关存储到缓存中的数据、缓存命中率以及有关内存使用和分布信息的详细信息 。统计信息在提供核心统计信息的基本级别和 memcached服务器特定区域的更具体统计信息中提供。

此信息可用于确保您获得正确级别的缓存和内存使用,并确保您的 slab 分配和配置属性设置在最佳级别。

统计接口可通过标准 memcached协议使用,因此可以通过使用telnet连接到 memcached来访问报告。提供的 memcached-tool支持获取第 16.2.4.2 节“ memcached Slabs 统计”第 16.2.4.1 节“ memcached一般统计”信息。有关详细信息,请参阅 第 16.2.4.6 节,“使用memcached-tool

或者,大多数语言 API 接口都提供了从服务器获取统计信息的功能。

例如,要使用 telnet获取基本统计信息:

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

当使用 Perl 和Cache::Memcached 模块时,该stats()函数返回有关连接对象中当前配置的所有服务器的信息,以及所有 memcached服务器作为一个整体的总统计信息。

例如,以下 Perl 脚本获取统计信息并转储返回的哈希引用:

use Cache::Memcached;
use Data::Dumper;

my $memc = new Cache::Memcached;
$memc->set_servers(\@ARGV);

print Dumper($memc->stats());

当在与上面的Telnet示例中使用 的相同的memcached上执行时,我们通过主机和总统计信息获得主机的哈希引用:

$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
         }
        };

统计信息被分成许多不同的部分,然后可以通过将类型添加到 stats命令来请求。以下部分将更详细地介绍每个统计输出。