您目前查看的是 Apigee 和 Apigee Hybrid 說明文件。
這個主題沒有對應的
Apigee Edge 說明文件。
問題
Cassandra 堆積問題可能會導致 Apigee Hybrid 代理程式執行速度緩慢,甚至發生 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*