2016-05-19 56 views
0

我的memcached服務器上的統計信息顯示出一種奇怪的關係:total_items小於cmd_set。在這個服務器上運行的唯一操作是「設置」和「獲取」,沒有別的像「添加」,「替換」,「刪除」或基於CAS的操作。memcached統計信息total_items小於cmd_set

當我瀏覽memcached源代碼時,發現任何「正常」集(不包括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 
+0

沒有答案。呃,看起來每個人都和我一樣無知。因此我打開了一個memcached Bug:https://github.com/memcached/memcached/issues/161 –

回答

1

的統計數據看起來那麼奇怪,因爲他們錯了。這是一個memcached錯誤(在2^32處整數溢出)。 memcached開發人員已經承認並修復了它。欲瞭解更多詳情,請登錄https://github.com/memcached/memcached/issues/161