Führen Sie Blockchain-Knoten wie ein Profi aus
Ihr Geth-Knoten ist nicht synchron und Sie raufen sich die Haare und fragen sich, was schief gelaufen ist. Keine Sorge, Metriken zur Rettung! Geth liefert viele Metriken aus, die es uns ermöglichen, die Leistung des Knotens und des Servers zu verfolgen. Eine erneute Synchronisierung muss also nie eine Option sein.
Anzahl der BSC-Transaktionen
In letzter Zeit wächst BSC exponentiell mit größerer Blockgröße und erhöhten Transaktionen (Allzeithoch), die Aufrechterhaltung des Knotens mit Synchronisierung ist zu einem Albtraum für Knotenläufer geworden. Der Ressourcenverbrauch des vollständigen Knotens ist sehr hoch ( 8-Kern-CPU, 48 GB RAM ), auch wenn dies die meiste Zeit nicht synchron ist. Der Archivknoten kostet fast doppelt so viel Ressourcen wie der vollständige Knoten. Die richtigen Metriken sind sehr wichtig, um den Knoten zu verstehen und abzustimmen . die wir weiter unten besprechen würden.
Einführung in Geth-Metriken
Metriken sind quantitative Daten, die die Leistung eines Systems messen. Die Auswertung mit einem Zeitstempel hilft, das System besser zu verfolgen.
Derzeit unterstützt Geth Metriken wie Zähler, Timer, Zähler und Messgeräte. Das Beste ist, dass wir unsere eigenen Metriken hinzufügen können, um bestimmte Ereignisse im Code zu verfolgen. Diese Metriken werden an influxdb (eine Open-Source-Zeitreihendatenbank) übertragen, wo sie gespeichert und für Erkenntnisse ausgewertet werden können. Diese Metriken sind auch an RPC-Endpunkten an einem dedizierten Port verfügbar.
Lassen Sie uns in die Welt der Metriken eintauchen, um zu sehen, was alles standardmäßig vorhanden ist und wie Sie daraus Erkenntnisse gewinnen können. Grundsätzlich sind die Metriken spezifisch für die Module und erheben mit entsprechenden Maßnahmen Vitaldaten daraus.
Module & Metriken
Die Metriken von Geth-Modulen wie Transaktionspool, Ressourcennutzung und Kettenkopf spielen eine wirklich wichtige Rolle bei der Verfolgung des Zustands des Knotens. Für Miner sind der Transaktionspool, die Slots für Transaktionskonten und die Anzahl der Peers am wichtigsten, um das Mining aufrechtzuerhalten. Nicht-Mining-Knoten können die Größe des Transaktionspools auf dem Minimum und die Slots des Transaktionskontos auf dem Standardwert halten, indem sie das txpoolFlag in geth auf das gewünschte Minimum setzen. Dies wird auch dazu beitragen, einige Rechenressourcen zu sparen.
Netzwerkmodul
Das P2P-Modul liefert die Rate des Dateneingangs und -ausgangs des Knotens, was zu einem besseren Verständnis des Synchronisierungsprozesses und der Knotenübertragungen beiträgt. Metriken wie eth/transaction/broadcastund eth/transaction/announcementsgeben die Ausgangsdatenrate des Transaktionspools an.
Die Metrik eth/egress.meterzeigt den gesamten ausgehenden Datenverkehr des Knotens, gemessen am Geth-Discovery-Port. Idealerweise ist der Datenverkehr höher, wenn die Knoten nicht synchron sind, da er Zustände und Transaktionen von Peers abrufen wird. Bei der normalen Synchronisierung handelt es sich um konstanten Datenverkehr, aber bei überdurchschnittlichen Blockgrößen sind Spitzen zu sehen.
eth-Verkehrs-Dashboard
Disk-Modul
Ein weiteres wichtiges Modul ist der DB-Zugriff und die Überprüfung der Kettendaten. Die Festplattennutzung kann mithilfe von DB-Modulmetriken extrahiert werden, die die genauen DB-Schreib- und Lesevorgänge angeben, die stattgefunden haben.
Wir können diese Daten verwenden, um den Fehler unserer Infrastruktur zu beheben, falls vorhanden. Die Lese- und Schreibdatenrate der Festplatte steigt, wenn viele ältere Daten vom Knoten zum RPC- oder Web-Socket-Client geliefert werden. Die periodische kurze Spitze ist kein Grund zur Sorge, da es sich um Zustandsschreibvorgänge und Speicherspülungsereignisse handelt. eth/db/chaindata/disksizezeigt die Belegung der Chaindata-DB, die die Haupt-DB und die alte DB umfasst.
Festplattenzugriffsrate
Fetcher-Modul
Das Fetcher-Modul enthält alle Metriken in Bezug auf Ankündigungen und Broadcasts, es misst alle Arten von Broadcasts und Messungen wie Ingress, bekannt, unterbewertet, böswillig usw. Der Fetcher verfolgt auch Egress-Anfragen, die an den Knoten gestellt werden. fetcher/transaction/fetching/peerszählt die Anzahl der Peers, mit denen wir interagieren, und der Rest der Peers befindet sich in einem Warte- oder Warteschlangenzustand.
Abrufer-Peer-Dashboard
RPC-Modul
Das RPC-Modul wird mit einem Zähler ausgeliefert, um die Anzahl der getätigten RPC-Aufrufe zusammen mit deren Erfolg und Fehlschlägen zu verfolgen. Die individuelle Anzahl einer bestimmten eth-Methode wird auch mit ihrer Antwortdauer verfolgt. Die Ableitung des RPC-Aufrufzählers ist zusammen mit der Ressourcennutzung, dem Abrufstatus und dem Peer-Verkehr eine bessere Messung, um leistungsbezogene Probleme zu beheben.
Der größte Teil des Knotens ist aufgrund des großen RPC-Datenverkehrs nicht mehr synchron, was zu einer Belastung der Festplatte und der CPU führt, was zu langsameren Abrufprozessen führt. Es gibt bestimmte Aufrufe, eth_getBlockByNumberbei denen die Blockdaten abgerufen werden, indem die Blocknummer als Parameter angegeben wird. Diese Aufrufe zum Abrufen der Daten älterer Blöcke belasten den Knoten stark, da ältere Blockdaten nicht im Speicher-Cache vorhanden sind fragt die DB ab und ruft alle Daten ab. Diese Aufrufe erhöhen auch die Latenz aller an den Knoten gerichteten RPC-Aufrufe.
Es ist immer eine gute Idee, solche Anrufe zu begrenzen. Die Dauer der RPC-Anrufe (Timer) aggregiert die Antwortzeit aller Anrufe, die an den Knoten gesendet werden. Dadurch können wir leicht die Anrufe erkennen, die zur Latenzzeit des Knotens beitragen.
Tracker für RPC-Aufrufe
Es gibt viele andere Metriken, die einen tiefen Einblick in die Netzwerkleistung geben, die als teuer gekennzeichnet sind , wie z. B. Netzwerkverkehrsdaten pro Paket. Eine solche Metriksammlung wird den Knoten zusätzlich belasten, was die Gesamtleistung einschränken kann, wenn bereitgestellte Ressourcen vorhanden sind sehr begrenzt. Die oben genannten kostengünstigen Metriken sind jedoch mehr als genug, um die leistungsbehindernden Faktoren zu verfolgen und zu debuggen. Wenn Sie sie verstehen, wird dies definitiv dazu beitragen, den Knoten reibungslos mit hoher Betriebszeit zu betreiben.
Bei Unmarshal führen wir leistungsstarke Indexer aus, die den Knoten nach Daten abfragen und Benutzer bedienen. Die Verfügbarkeit der Knoten ist am wichtigsten, da sie die Datenquelle für alle unsere Dienste ist. Wir beobachten und analysieren alle Metriken, um unseren Knoten gesund und am Laufen zu halten.
„Viel Spaß beim Synchronisieren“ 😃
Über Unmarschall
Unmarshal ist ein Multi-Chain-DeFi-Datennetzwerk, das darauf abzielt, granulare, zuverlässige und Echtzeitdaten an dApps zu liefern. Es bietet die einfachste Möglichkeit, Blockchain-Daten von Ethereum, Binance Smart Chain, Polkadot, Near und Solana abzufragen. Das Unmarshal-Netzwerk besteht aus Datenindexern und Transformationswerkzeugen, um DeFi-Anwendungen in jeder Kette zu betreiben.
Für weitere Informationen über Unmarshal kontaktieren Sie uns in unseren sozialen Netzwerken.
Bei Fragen wenden Sie sich bitte an info@unmarshal.io
Commentaires