2017-01-17 60 views
2

這裏是動物園管理員的監控動物園管理員Z序節點計數

zk_version 3.4.6-1569965, built on 02/20/2014 09:09 GMT 
    zk_avg_latency 0 
    zk_max_latency 0 
    zk_min_latency 0 
    zk_packets_received 3 
    zk_packets_sent 2 
    zk_num_alive_connections 1 
    zk_outstanding_requests 0 
    zk_server_state follower 
    zk_znode_count 16349 
    zk_watch_count 0 
    zk_ephemerals_count 6 
    zk_approximate_data_size 19502850 
    zk_open_file_descriptor_count 30 
    zk_max_file_descriptor_count 4096 

我想了解zk_znode_count指的是什麼,也是我想保持(zk_znode_count & zk_approximate_data_size)值最小,以避免與追隨者同步問題的輸出。

可能有人扔在這些值的一些見解

回答

1

zk_znode_count是存儲在ZooKeeper的合奏znodes的總數。每當客戶創建一個新的znode時,這個計數器就會增加。每當客戶端刪除一個新的znode(顯式地或在斷開連接後刪除它的臨時znode),該計數器就會遞減。

zk_approximate_data_size是存儲在ZooKeeper集成中的所有znode的近似內存消耗。它被稱爲近似值,因爲它可能無法解釋內部數據結構中的一些開銷因素。 (當前的實現是Java ConcurrentHashMapString映射到znode數據和一些元數據的路徑。)對於大規模使用,監視zk_approximate_data_size並確保它不會太耗盡已分配的JVM堆大小。

+0

如何限制zk_approximate_data_size。假設我想保留只有一週的znode,或者我想擁有最大50 MB的zk_approximate_data_size。我可以使用zkCli獲取比一週更早的znode嗎? – chandu

+0

ZooKeeper會跟蹤每個znode的創建時間和修改時間。當你在CLI中運行諸如'get'之類的命令並且可以通過ZooKeeper Java客戶端API方法訪問這些命令時,這些都是可見的。沒有特定的命令來查詢特定年齡的znodes,因此您必須自己掃描它們並檢查創建時間和修改時間。 Apache JIRA [ZOOKEEPER-2169](https://issues.apache.org/jira/browse/ZOOKEEPER-2169)跟蹤znodes上TTL的實現,但是直到版本3.6.0才能發佈,所以這是更具前景的 - 看着。根據尺寸沒有限制。 –