Antipattern: تأثیر KVM های موجود بر تأخیر

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

سیاست‌های نقشه کلید-مقدار (KVM) یک جزء اساسی در مدیریت پیکربندی‌ها و مقادیر پویا در سیستم هستند. با این حال، وجود و جستجوی کلیدهای ناموجود در این KVMها می‌تواند به طور قابل توجهی بر عملکرد تأثیر بگذارد و منجر به افزایش تأخیر شود.

ضدالگو

وقتی یک سیاست KVM تلاش می‌کند مقداری را برای کلیدی که در نقشه کلید-مقدار وجود ندارد بازیابی کند، منجر به فراخوانی‌های اضافی به پایگاه داده کاساندرا می‌شود. این افزایش ارتباط با پایگاه داده backend، به ویژه برای کلیدهای ناموجود، منابع و زمان بیشتری را مصرف می‌کند و در نتیجه تأخیر کلی درخواست را افزایش می‌دهد.

تأثیر

اثر اصلی این ضدالگو، افزایش تأخیر در زمان اجرا و خطاهای ذخیره‌سازی داده است. سرعت پردازش سیستم و دسترسی به داده‌ها به طور منفی تحت تأثیر قرار می‌گیرند، زیرا درصد بالای جستجوی کلید ناموجود دلیل اصلی تأخیرهای مشاهده شده است. این یک ویژگی زمان اجرا است که مستقیماً به ماهیت درخواست‌های ورودی بستگی دارد.

علائم

  • سیستم تأخیرهای زمان اجرا بالایی را نشان می‌دهد.
  • خطاهای مربوط به پایگاه داده، که نشان‌دهنده‌ی مشکلاتی در سرعت پردازش و دسترسی به داده‌ها است.

پیام‌های خطا

تحلیل فایل system.log نشان‌دهنده‌ی وجود خطاهای مکرر مرتبط با کاساندرا، به‌ویژه در مورد بازیابی داده‌ها و وضعیت مخزن میزبان است. پیام‌های خطای کلیدی مشاهده‌شده عبارتند از:
  • 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ها اضافه کنید. این رویکرد باید تعداد فراخوانی‌ها به کاساندرا برای کلیدهای ناموجود را کاهش دهد، عملکرد را بهبود بخشد و تأخیر را کم کند.

مطالعه بیشتر