Está a ver a documentação do Apigee e do Apigee Hybrid.
Não existe nenhum equivalente
na documentação do Apigee Edge para este tópico.
Sintoma
Os problemas de memória de processamento do Cassandra podem causar lentidão na execução do proxy híbrido do Apigee ou até mesmo erros Datastore
. Por vezes, os registos são um indicador precoce, mesmo antes do início dos sintomas.
Mensagem de erro
Nos registos do pod do Cassandra (Registos na nuvem), podem ser observadas entradas de registos semelhantes às seguintes:
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: tamanho da memória Java insuficiente
Diagnóstico
No ficheiro overrides.yaml
para a instalação do Apigee Hybrid, maxHeapSize
não está definido como um valor suficiente.
Isto pode dever-se a
definições de produção não aplicadas ou a débitos atuais que requerem uma
definição superior ao habitual.
Resolução
Para resolver o problema, ajuste maxHeapSize
e memory
em conformidade e
aplique as alterações:
resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
Se o problema persistir com a configuração de produção predefinida, experimente aumentar ainda mais os valores. Tenha em atenção que também tem de garantir que a capacidade do nó, o débito do disco e a largura de banda da rede são suficientes.
resources: requests: cpu: 7 memory: 30Gi maxHeapSize: 16384M heapNewSize: 2400M
Se a definição de memória dinâmica de 16 GB ainda não for suficiente para o volume de tráfego, continue com o dimensionamento horizontal.
Tem de recolher informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguintes informações de diagnóstico e, em seguida, contacte o apoio ao cliente da Google Cloud:
Além dos dados habituais que lhe podem ser pedidos, recolha os dados de diagnóstico de todos os pods do Cassandra com o comando abaixo:
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
Comprima-o e faculte-o no registo de apoio técnico:
tar -cvzf /tmp/cassandra_data_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/k_cassandra_nodetool*