Esta é a documentação da Apigee e da Apigee híbrida.
Não há documentação equivalente do
Apigee Edge para esse tópico.
Sintoma
Problemas do heap do Cassandra podem causar lentidão na execução de proxy da Apigee híbrida
ou até mesmo erros de Datastore
. Às vezes, os registros são um
indicador, mesmo antes do início dos sintomas.
Mensagem de erro
Nos registros do pod do Cassandra (Cloud Logging), entradas de registro podem ser observadas como as 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 insuficiente de heap do Java
Diagnóstico
No arquivo overrides.yaml
da interface da instalação da Apigee
híbrida, maxHeapSize
não está definido com um valor suficiente.
Isso pode ocorrer devido a
configurações de produção não aplicadas ou as capacidades de processamento atuais que exigem uma
configuração maior do que o normal.
Resolução
Para resolver o problema, ajuste maxHeapSize
e memory
de acordo com , e
aplicará as alterações:
resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
Se o problema persistir com a configuração de produção padrão, tente aumentar ainda mais os valores. É necessário garantir que a capacidade do nó, a capacidade de processamento do disco e a largura de banda da rede também sejam suficientes.
resources: requests: cpu: 7 memory: 30Gi maxHeapSize: 16384M heapNewSize: 2400M
Se a configuração de heap de 16 GB ainda não for suficiente para o volume de tráfego, continue com escalonamento horizontal.
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, colete as seguintes informações de diagnóstico e entre em contato com o Cloud Customer Care:
Além dos dados usuais que podem ser solicitados, colete 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
Compacte-o e informe-o no caso de suporte:
tar -cvzf /tmp/cassandra_data_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/k_cassandra_nodetool*