Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Für dieses Thema gibt es keine entsprechende Apigee Edge-Dokumentation.
Symptom
Cassandra-Heap-Probleme können zu einer Verlangsamung der Ausführung des Apigee Hybrid-Proxys oder sogar zu Datastore
-Fehlern führen. Manchmal sind Logs ein frühzeitiger Indikator, noch bevor Symptome auftreten.
Fehlermeldung
In Cassandra-Pod-Logs (Cloud Logging) werden möglicherweise Logeinträge beobachtet, die in etwa so aussehen:
WARN [Service Thread] 2023-01-01 01:14:51,121 GCInspector.java:283 - G1 Young Generation GC in 2510ms... ... WARN [Service Thread] 2023-01-01 01:14:51,121 GCInspector.java:283 - G1 Old Generation GC in 3100ms...
2023-01-01 01:14:51,123 FailureDetector.java:278 - Not marking nodes down due to local pause of 45261214670 > 5000000000
java.lang.OutOfMemoryError: Java heap space
Ursache: Unzureichende Java-Heap-Größe
Diagnose
In der overrides.yaml
-Datei für die Apigee Hybrid-Installation ist maxHeapSize
nicht auf einen ausreichenden Wert festgelegt.
Dies kann daran liegen, dass keine
Produktionseinstellungen angewendet wurden oder dass aktuelle Durchsätze eine höhere Einstellung als üblich erfordern.
Lösung
Zum Beheben des Problems passen Sie maxHeapSize
und memory
entsprechend an und
wenden Sie die Änderungen an:
resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
Wenn das Problem mit der Standardproduktionskonfiguration weiterhin besteht, versuchen Sie, die Werte weiter zu erhöhen. Außerdem müssen die Knotenkapazität, der Laufwerksdurchsatz und die Netzwerkbandbreite ausreichend sein.
resources: requests: cpu: 7 memory: 30Gi maxHeapSize: 16384M heapNewSize: 2400M
Wenn die Einstellung von 16 GB für den Heap immer noch nicht für das Traffic-Volumen ausreicht, fahren Sie mit der horizontalen Skalierung fort.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem auch nach Befolgen der obigen Anweisungen weiterhin besteht, sammeln Sie die folgenden Diagnoseinformationen und wenden Sie sich dann an den Google Cloud Customer Care:
Erfassen Sie neben den üblichen Daten, die Sie möglicherweise bereitstellen müssen, die Diagnosedaten von den Cassandra-Pods mit folgendem Befehl:
for p in $(kubectl -n apigee get pods -l app=apigee-cassandra --no-headers -o custom-columns=":metadata.name") ; do \ for com in info describecluster failuredetector version status ring info gossipinfo compactionstats tpstats netstats cfstats proxyhistograms gcstats ; do kubectl \ -n apigee exec ${p} -- bash -c 'nodetool -u $APIGEE_JMX_USER -pw $APIGEE_JMX_PASSWORD '"$com"' 2>&1 '\ | tee /tmp/k_cassandra_nodetool_${com}_${p}_$(date +%Y.%m.%d_%H.%M.%S).txt | head -n 40 ; echo '...' ; done; done
Komprimieren Sie sie und stellen Sie sie im Supportfall bereit:
tar -cvzf /tmp/cassandra_data_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/k_cassandra_nodetool*