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