คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
นโยบาย Key-Value Map (KVM) เป็นองค์ประกอบพื้นฐานในการจัดการการกำหนดค่าและค่าแบบไดนามิกภายในระบบ อย่างไรก็ตาม การมีอยู่และการค้นหาคีย์ที่ไม่มีอยู่ใน KVM เหล่านี้อาจส่งผลต่อประสิทธิภาพการทำงานอย่างมากและทำให้เวลาในการตอบสนองเพิ่มขึ้น
รูปแบบที่ไม่แนะนำ
เมื่อนโยบาย KVM พยายามดึงค่าของคีย์ที่ไม่มีอยู่ใน Key-Value Map ระบบจะเรียกฐานข้อมูล Cassandra เพิ่มเติม การสื่อสารกับฐานข้อมูลแบ็กเอนด์ที่เพิ่มขึ้นนี้ โดยเฉพาะอย่างยิ่งสำหรับคีย์ที่ไม่มีอยู่ จะใช้ทรัพยากรและเวลามากขึ้น ซึ่งจะทำให้เวลาในการตอบสนองโดยรวมของคำขอเพิ่มขึ้น
ผลกระทบ
ผลกระทบหลักของรูปแบบที่ไม่แนะนำนี้คือเวลาในการตอบสนองขณะรันไทม์และข้อผิดพลาดของ Datastore เพิ่มขึ้น ความเร็วในการประมวลผลและการเข้าถึงข้อมูลของระบบได้รับผลกระทบในทางลบ เนื่องจากเปอร์เซ็นต์การค้นหาคีย์ที่ไม่มีอยู่สูงเป็นสาเหตุหลักของเวลาในการตอบสนองที่สังเกตได้ นี่คือลักษณะการทำงานขณะรันไทม์ซึ่งขึ้นอยู่กับลักษณะของคำขอขาเข้าโดยตรง
อาการ
- ระบบแสดงเวลาในการตอบสนองขณะรันไทม์เพิ่มขึ้น
- ข้อผิดพลาดของ Datastore ซึ่งบ่งบอกถึงปัญหาเกี่ยวกับความเร็วในการประมวลผลและการเข้าถึงข้อมูล
ข้อความแสดงข้อผิดพลาด
การวิเคราะห์ไฟล์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 ของ Message Processor แสดงให้เห็นว่าค่า L1MissL2Miss เพิ่มขึ้นในรายงานเมตริก KVM 5 นาที
ตัวอย่างเช่น CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
แนวทางปฏิบัติแนะนำ
หากต้องการลดปัญหานี้ เราขอแนะนำให้เพิ่มค่าจำลองสำหรับคีย์ที่ไม่มีอยู่ใน KVM แนวทางนี้จะช่วยลดจำนวนการเรียก Cassandra สำหรับคีย์ที่ไม่มีอยู่ ซึ่งจะช่วยปรับปรุงประสิทธิภาพและลดเวลาในการตอบสนอง