2017-01-17 5 views
2

ist die Ausgabe von zookeeperZookeeper ZNODE Zählung

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 

Überwachung Ich möchte verstehen, was zk_znode_count bezieht sich auf und ich möchte auch halten (zk_znode_count & zk_approximate_data_size) Werte minimal Synchronisierungsprobleme mit Anhängern zu vermeiden.

Könnte jemand einen Einblick auf diesen Werten

Antwort

1

zk_znode_count ist die Gesamtzahl der znodes im ZooKeeper Ensemble gespeichert werfen. Jedes Mal, wenn ein Client einen neuen Znode erstellt, wird dieser Zähler erhöht. Jedes Mal, wenn ein Client einen neuen Znode löscht (entweder explizit oder durch Löschen seiner kurzlebigen Znodes nach der Trennung), wird dieser Zähler dekrementiert.

zk_approximate_data_size ist der ungefähre Speicherverbrauch für alle Znodes, die im ZooKeeper-Ensemble gespeichert sind. Es wird als Approximation bezeichnet, weil es möglicherweise einige Overhead-Faktoren in den internen Datenstrukturen nicht berücksichtigt. (Die aktuelle Implementierung ist ein Java ConcurrentHashMap Mapping String Pfade zu den Znode-Daten und einigen Metadaten.) Für große Verwendung ist es gut, zk_approximate_data_size zu überwachen und sicherzustellen, dass es nicht zu nahe kommt, um die zugewiesene JVM-Heap-Größe zu erschöpfen.

+0

So schränken Sie zk_approximate_data_size ein. Angenommen, ich möchte Znoden behalten, die nur eine Woche alt sind, oder ich möchte maximal 50 MB zk_approximate_data_size haben. Kann ich die znodes, die älter sind als eine Woche mit zkCli – chandu

+0

ZooKeeper verfolgt eine Erstellungszeit und Änderungszeit für jeden Znode. Diese sind sichtbar, wenn Sie Befehle wie "get" in der CLI ausführen und über die API-Methoden von ZooKeeper Java client zugänglich sind. Es gibt keinen spezifischen Befehl, um nur nach Znoden eines bestimmten Alters zu fragen, also müssten Sie sie selbst scannen und die Erstellungs- und Änderungszeit überprüfen. Apache JIRA [ZOOKEEPER-2169] (https://issues.apache.org/jira/browse/ZOOKEEPER-2169) verfolgt die Implementierung von TTL auf znodes, die jedoch erst ab Version 3.6.0 ausgeliefert wird. schauend. Es gibt keine Einschränkungen aufgrund der Größe. –