Apigee 및 Apigee Hybrid 문서입니다.
이 주제에 해당하는 Apigee Edge 문서는 없습니다.
증상
Cassandra 힙 문제로 인해 Apigee Hybrid 프록시 실행 속도가 느려지거나 Datastore
오류가 발생할 수 있습니다. 증상이 나타나기 전이더라도 로그가 조기 지표가 되는 경우가 있습니다.
오류 메시지
Cassandra 포드 로그(Cloud Logging)에서 다음과 유사한 로그 항목을 관찰할 수 있습니다.
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
원인: Java 힙 크기 부족
진단
Apigee Hybrid 설치용 overrides.yaml
파일에서 maxHeapSize
가 충분한 값으로 설정되지 않았습니다.
프로덕션 설정이 적용되지 않았거나 현재 처리량에 평소보다 높은 설정이 필요하기 때문일 수 있습니다.
해결 방법
문제를 해결하려면 maxHeapSize
및 memory
를 적절하게 조정하고 변경사항을 적용합니다.
resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
기본 프로덕션 구성에서 문제가 지속되면 값을 더 늘려 봅니다. 노드 용량, 디스크 처리량, 네트워크 대역폭도 충분한지 확인해야 합니다.
resources: requests: cpu: 7 memory: 30Gi maxHeapSize: 16384M heapNewSize: 2400M
16GB 힙 설정이 트래픽 볼륨에 계속 부족하면 수평 확장을 계속합니다.
진단 정보 수집 필요
위 안내를 따른 후에도 문제가 지속되면 다음 진단 정보를 수집한 후 Google Cloud Customer Care에 문의하세요.
요청을 받은 일반적인 데이터 외에도 다음 명령어를 사용하여 모든 Cassandra 포드에서 진단 데이터를 수집합니다.
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
압축하고 지원 케이스에 제공합니다.
tar -cvzf /tmp/cassandra_data_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/k_cassandra_nodetool*