Wie zu berechnen, wie viel Speicher braucht Kafka-Broker?

Wie zu berechnen, wie viel Speicher braucht Kafka Broker gegeben troughput, Durchschnittliche Nachrichtengröße und die Verweilzeit.

Frage ich, als ich sehen in unserem monitoring-system, das nach dem starten, Kafka-broker tritt lineare Steigerungen verwendet die JVM-heap.
Irgendwann bekamen wir OutOfMemoryError.

Wir verlängern die JVM-Heap paar mal und das problem bleibt.

Also wäre es besser, nicht zu erraten, was Kafka muss durch Experimentieren, sondern Werte zu berechnen :-).



One Reply
  1. 2

    Es ist schwer zu berechnen, einen genauen Wert kann jedoch mit der Faustregel aus der Kafka-Dokumentation:

    Benötigen Sie ausreichend Speicher zu Puffer-aktive Leser und Schreiber. Sie können ein back-of-the-envelope-Schätzung von Speicheranforderungen, indem vorausgesetzt, Sie wollen in der Lage sein Puffer für 30 Sekunden und berechnen Sie Ihren Speicherbedarf als write_throughput*30.

    Ebenfalls seit 1.0.0, Sie können queued.max.request.bytes zu beschränken, wie viel Speicher Broker können für eingehende Anforderungen verwendet werden. Das können Sie vermeiden, OOM und wenn Sie überwachen kann, die seine Verwendung mit:

    kafka.network:type=SocketServer,name=MemoryPoolAvailable
    kafka.network:type=SocketServer,name=MemoryPoolUsed

    Dass sollte Ihnen ermöglichen, zu bestimmen, wie viel Speicher Ihr Arbeitsaufwand erfordert, ohne zu viele Probleme.

    • Ich habe ziemlich niedrigen Durchsatz, aber die Regel funktioniert nicht für mich – irgendwie. Nur zahlen aus 3-Installationen, die ich habe (zwei Kafka-Knoten jeweils), die ich gemessen hatte, durch die überwachung der JMX-Informationen über die benutzten heap. 1. Trougput 3,8 MB/s. Erwartet Speichernutzung: 114MB, Min-heap in 1300 MB, 4200MB in der Spitze. 2. Troughput 1,0 MB/s. Erwartet Speichernutzung: 30 MB, Min-heap-400MB, 1000MB im peak. 3 Durchsatz 0,3 MB/s. Erwartet Speichernutzung: 9 MB, Min-heap-330 MB, 1000MB im peak. So gibt es bias ~330 MB Hinzugefügt werden, und auch regression führen durch min-s gibt coeff: 320*Durchsatz und nicht 30

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.