Estás consultando la documentación de Apigee y Apigee Hybrid.
No hay documentación equivalente de
Apigee Edge sobre este tema.
Síntoma
Los problemas con el montículo de Cassandra pueden provocar lentitud en la ejecución del proxy híbrido de Apigee o incluso errores Datastore
. A veces, los registros son un indicador temprano, incluso antes de que aparezcan los síntomas.
Mensaje de error
En los registros de pods de Cassandra (Cloud Logging), se pueden observar 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 de montículo de Java insuficiente
Diagnóstico
En el archivo overrides.yaml
de la instalación de Apigee hybrid, maxHeapSize
no tiene un valor suficiente.
Esto puede deberse a que no se han aplicado los
ajustes de producción o a que el rendimiento actual requiere un ajuste superior al habitual.
Resolución
Para solucionar el problema, ajusta maxHeapSize
y memory
en consecuencia 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, prueba a aumentar aún más los valores. Ten en cuenta que también debes asegurarte de que la capacidad del nodo, el rendimiento del disco y el ancho de banda de la red sean suficientes.
resources: requests: cpu: 7 memory: 30Gi maxHeapSize: 16384M heapNewSize: 2400M
Si el ajuste de 16 GB de montículo sigue siendo insuficiente para el volumen de tráfico, continúa con el escalado horizontal.
Debe recoger información de diagnóstico
Si el problema persiste incluso después de seguir las instrucciones anteriores, reúne la siguiente información de diagnóstico y ponte en contacto con el equipo de Asistencia de Google Cloud:
Además de los datos habituales que se le pueden pedir, recoja 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
Comprímelo y facilítalo en el caso de asistencia:
tar -cvzf /tmp/cassandra_data_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/k_cassandra_nodetool*