أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
تُعدّ سياسات "خريطة المفتاح/القيمة" (KVM) عنصرًا أساسيًا في إدارة الإعدادات والقيم الديناميكية داخل النظام. ومع ذلك، يمكن أن يؤثر وجود مفاتيح غير موجودة والبحث عنها في هذه الآلات الافتراضية المستندة إلى النواة بشكل كبير في الأداء ويؤدي إلى زيادة في وقت الاستجابة.
نمط مضاد
عندما تحاول إحدى سياسات KVM استرداد قيمة لمفتاح غير متوفّر في "خريطة المفتاح والقيمة"، يؤدي ذلك إلى إجراء طلبات إضافية إلى قاعدة بيانات Cassandra. تؤدي زيادة التواصل مع قاعدة البيانات الخلفية، خاصةً بالنسبة إلى المفاتيح غير المتوفّرة، إلى استهلاك المزيد من الموارد والوقت، ما يؤدي إلى زيادة وقت استجابة الطلب بشكل عام.
التأثير
التأثير الأساسي لهذا النمط المضاد هو زيادة وقت الاستجابة وأخطاء مخزن البيانات. تتأثر سرعة معالجة النظام والوصول إلى البيانات سلبًا، لأنّ النسبة العالية لعمليات البحث عن مفاتيح غير موجودة هي السبب الرئيسي في حالات التأخير التي تم رصدها. هذه سمة وقت تشغيل تعتمد بشكل مباشر على طبيعة الطلبات الواردة.
الأعراض
- يعرض النظام حالات تأخير مرتفعة في وقت التشغيل.
- أخطاء في 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
لمعالج الرسائل عن قيم L1MissL2Miss
مرتفعة ضمن تقارير مقياس KVM لمدة 5 دقائق.
مثلاً: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
أفضل ممارسة
للتخفيف من هذه المشكلة، ننصحك بإضافة قيم وهمية للمفاتيح غير المتوفّرة في خرائط KVM. من المفترض أن يقلّل هذا الأسلوب عدد طلبات البحث عن المفاتيح غير المتوفّرة في Cassandra، ما يؤدي إلى تحسين الأداء وتقليل وقت الاستجابة.