如何使用php检查memcached的容量

3

不确定如何使用php确定memcached的容量(它有多满)。似乎也找不到任何相关文档...有什么想法/建议吗?

2个回答

3
使用 getStats 方法:
$m = new Memcached();
$m->addServer('localhost', 11211);

$stats = $m->getStats();
echo 'Capacity: ' . $stats['bytes'] . '/' . $stats['limit_maxbytes'] . ' Bytes';

5
请注意,在大多数正常情况下,memcached 大部分时间都会保持“接近满”的状态,因为未使用的条目在缓存变满时会自然地被删除。一个空的 memcached 是一个悲伤的 memcached。 - user149341
@duskwuff 是的,但在调试上下文中获取当前容量可能是有用的,在分析之前清除缓存。 - phihag
在调试环境中可以这样做,但不要假设“完整”意味着您不应尝试放入更多数据! - user149341
1
谢谢大家的帮助 - 我最终选择了 $memcache_obj->getExtendedStats('slabs'); 这个方法,它可以提供每个 slab(即 memcached 分配内存的方式)更详细的信息。 - paradox870
@duskwuff,"未使用"的正确术语是LRU(最近最少使用)。 - ajreal

2

我实际上一直在寻找更多有用的信息,以下是可能会提供更多信息的来源:

<?php
    $memcache_obj = new Memcache;
    $memcache_obj->addServer('memcache_host', 11211);
    $memcache_obj->addServer('failed_host', 11211);

    $stats = $memcache_obj->getExtendedStats('slabs');
    print_r($stats);
?>

根据memcached分配内存的方式,这实际上输出了更相关的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接