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 Protokolle ein frühes Warnzeichen, noch bevor die Symptome auftreten.
Fehlermeldung
In den Cassandra-Pod-Logs (Cloud Logging) können Logeinträge ähnlich wie die folgenden auftreten:
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: Zu geringe Java-Heap-Größe
Diagnose
In der overrides.yaml
-Datei für die Apigee Hybrid-Installation ist maxHeapSize
nicht auf einen ausreichenden Wert festgelegt.
Das kann daran liegen, dass
Produktionseinstellungen nicht angewendet wurden oder dass für den aktuellen Durchsatz eine höhere Einstellung als üblich erforderlich ist.
Lösung
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 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*