Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Für dieses Thema gibt es keine entsprechende Apigee Edge-Dokumentation.
Symptom
Probleme mit dem Cassandra-Heap können zu einer Verlangsamung der Apigee Hybrid-Proxy-Ausführung oder sogar zu Datastore-Fehlern führen. Manchmal sind Protokolle ein frühes Anzeichen, noch bevor Symptome auftreten.
Fehlermeldung
In den Cassandra-Pod-Logs (Cloud Logging) werden möglicherweise Logeinträge angezeigt, die 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 Datei overrides.yaml für die Apigee Hybrid-Installation ist maxHeapSize nicht auf einen ausreichenden Wert festgelegt.
Das kann daran liegen, dass die
Produktionseinstellungen nicht angewendet wurden oder dass für den aktuellen Durchsatz eine höhere Einstellung als üblich erforderlich ist.
Lösung
Um das Problem zu beheben, 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 Standardkonfiguration für die Produktion 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 Heap-Einstellung von 16 GB für das Traffic-Volumen immer noch nicht ausreicht, fahren Sie mit horizontaler 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 mit folgendem Befehl die Diagnosedaten von den Cassandra-Pods, die eventuell zusätzlich zu den üblichen Daten bereitgestellt werden müssen:
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*