您正在查看 Apigee 和 Apigee Hybrid 說明文件。
這個主題沒有對應的
Apigee Edge 說明文件。
問題
Cassandra 堆積問題可能會導致 Apigee 混合式 Proxy 執行速度變慢,甚至導致 Datastore
錯誤。有時記錄是早期指標,甚至在症狀發作之前就會出現。
錯誤訊息
在 Cassandra Pod 記錄檔 (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
如果 16 GB 堆積設定仍不足以應付流量,請繼續使用 水平縮放。
必須收集診斷資訊
如果問題在您按照上述操作說明後仍未解決,請收集下列診斷資訊,然後與 Google Cloud Customer Care 團隊聯絡:
除了可能需要提供的一般資料外,請使用下列指令從所有 Cassandra Pod 收集診斷資料:
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*