您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
鍵/值對應 (KVM) 政策是管理系統內設定和動態值的重要元件。 不過,在這些 KVM 中存在不存在的鍵並進行查閱,可能會大幅影響效能,導致延遲時間增加。
反模式
如果 KVM 政策嘗試擷取鍵/值對應中不存在的鍵值,就會導致對 Cassandra 資料庫的額外呼叫。與後端資料庫的通訊量增加 (特別是針對不存在的鍵),會耗用更多資源和時間,進而導致整體要求延遲時間變長。
影響
這種反模式的主要影響是執行階段延遲時間變長,以及資料儲存庫發生錯誤。系統的處理速度和資料存取會受到負面影響,因為觀察到的延遲主要是因為不存在的鍵查閱百分比偏高。這是執行階段特性,直接取決於傳入要求的性質。
症狀
- 系統的執行階段延遲時間變長。
- 資料儲存區錯誤,表示處理速度和資料存取有問題。
錯誤訊息
分析system.log
檔案後發現,系統會重複發生與 Cassandra 相關的錯誤,特別是資料擷取和主機集區狀態方面的錯誤。觀察到的主要錯誤訊息包括:
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.get() : Exception while fetching rowKey : [7ccd1062-6e05-4d12-aa86-5c7bf944682d, app_credentials, kms] from column family:{} in keyspace:{}
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.logHostPoolInCaseOfErrors() : Cassandra Host Pool under use - All Hosts: xx.xx.xx.102(xx.xx.xx.102):9160,xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.103(xx.xx.xx.103):9160. Active Hosts: xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.102(xx.xx.xx.102):9160
診斷
分析訊息處理器 system.log
檔案後,發現 5 分鐘 KVM 指標報表中的 L1MissL2Miss
值偏高。
例如:CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
最佳做法
為減輕這個問題的影響,建議您在 KVM 中為不存在的鍵新增虛設值。這個方法應可減少對 Cassandra 進行不存在的鍵呼叫次數,進而提升效能並縮短延遲時間。