memcached统计信息total_items小于cmd_set



我的memcached服务器上的统计数据显示了一种奇怪的关系:total_items小于cmd_set。在此服务器上运行的操作仅为"设置"one_answers"获取",而不是基于"添加"、"替换"、"删除"或CAS的操作。

当我浏览memcached源代码时,我看到任何"正常"集(w/o CAS)都将替换或写入项,并且两者都将增加total_items。

do_store_item() {
    // ...
    if (old_it != NULL)
        item_replace(old_it, it, hv);
    else
        do_item_link(it, hv);
    // ...
}

do_item_link()增加total_items,item_replace()也调用do_item-link()。那么total_items怎么能小于cmd_set呢?

memcached统计数据摘录(为了可读性,数字缩进):

STAT cmd_set          12827359728
STAT total_items       4237422053
STAT curr_items          60745375
STAT expired_unfetched 9898430934
STAT evicted_unfetched   30415090
STAT evictions           30421532
STAT reclaimed         9900995350

统计数据看起来很奇怪,因为它们是错误的。这是一个memcached错误(整数在2^32溢出)。memcached开发人员已经确认并修复了它。有关更多详细信息,请参阅https://github.com/memcached/memcached/issues/161.

最新更新