Estás viendo la documentación de Apigee y Apigee Hybrid.
No hay documentación de Apigee Edge equivalente para este tema.
Síntoma
Los problemas de montón de Cassandra pueden causar lentitud en la ejecución del proxy de Apigee Hybrid o incluso errores Datastore
. A veces, los registros son un indicador anticipado, incluso antes de la aparición de los síntomas.
Mensaje de error
En los registros del Pod de Cassandra (Cloud Logging), es posible que se observen entradas de registro similares a las siguientes:
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
Causa: Tamaño del montón de Java insuficiente
Diagnóstico
En el archivo overrides.yaml
para la instalación de Apigee Hybrid, maxHeapSize
no está configurado en un valor suficiente.
Esto podría deberse a que no se aplicó la configuración de producción o a que las capacidades de procesamiento actuales requieren una configuración más alta de lo habitual.
Solución
Para resolver el problema, ajusta maxHeapSize
y memory
según corresponda y
aplica los cambios:
resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
Si el problema persiste con la configuración de producción predeterminada, intenta aumentar aún más los valores. Ten en cuenta que debes asegurarte de que la capacidad del nodo, la capacidad de procesamiento del disco y el ancho de banda de red también sean suficientes.
resources: requests: cpu: 7 memory: 30Gi maxHeapSize: 16384M heapNewSize: 2400M
Si la configuración del montón de 16 GB aún no es suficiente para el volumen de tráfico, continúa con el escalamiento horizontal.
Se debe recopilar información de diagnóstico
Si el problema persiste incluso después de seguir las instrucciones anteriores, recopila la siguiente información de diagnóstico y, luego, comunícate con Atención al cliente de Google Cloud:
Además de los datos habituales que se te puede solicitar que proporciones, recopila los datos de diagnóstico de todos los Pods de Cassandra con el siguiente comando:
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
Comprimirla y proporcionarla en el caso de ayuda:
tar -cvzf /tmp/cassandra_data_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/k_cassandra_nodetool*