الگوی بد: تأثیر KVMهای غیرموجود بر تأخیر

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

خط‌مشی‌های «نقشه کلید-مقدار» (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 نشان می‌دهد مقادیر L1MissL2Miss در گزارش‌های معیار KVM پنج‌دقیقه‌ای افزایش یافته است.

برای مثال: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]

روال مطلوب

برای کاهش این مشکل، توصیه می‌کنیم مقادیر ساختگی برای کلیدهای غیرموجود در KVM اضافه کنید. این رویکرد باید تعداد تماس‌ها با Cassandra را برای کلیدهای غیرموجود کاهش دهد و درنتیجه عملکرد را بهبود بخشد و تأخیر را کاهش دهد.

مطالعه بیشتر