تنظیم انقضای حافظه نهان L1 در «پردازنده پیام»

‫Apigee Edge برای ماندگاری داده‌ها در درخواست‌ها، ذخیره‌سازی نهان ارائه می‌دهد. وقتی داده‌های API دریافت می‌شود، برای مدت کوتاهی در حافظه نهان ذخیره می‌شود و سپس حذف می‌شود. حداکثر مدت زمانی که یک داده قبل‌از حذف شدن نگهداری می‌شود، انقضا یا زمان زنده بودن (TTL) حافظه نهان نامیده می‌شود. هر حافظه نهان دارای TTL پیش‌فرض است، اما در برخی موارد ممکن است لازم باشد مقدار TTL را تغییر دهید تا عملکرد API را بهبود دهید.

انواع حافظه نهان

داده‌های API در دو نوع حافظه نهان ذخیره می‌شود:

  • سطح ۱ (L1): حافظه نهان درون حافظه، که دسترسی سریع‌تری دارد اما ظرفیت فضای ذخیره‌سازی دردسترس آن کمتر است.
  • سطح ۲ (L2): حافظه نهان ماندگار در فروشگاه داده Cassandra که دسترسی کندتری دارد اما ظرفیت ذخیره‌سازی دردسترس بیشتری دارد.

وقتی ورودی داده‌ای در حافظه نهان L1 به L1 TTL می‌رسد، حذف می‌شود. بااین‌حال، نسخه‌ای از ورودی در حافظه نهان L2 (که TTL طولانی‌تری نسبت به حافظه نهان L1 دارد) نگهداری می‌شود، جایی که برای پردازنده‌های پیام دیگر دردسترس باقی می‌ماند. برای جزئیات بیشتر درباره حافظه نهان، به سطوح حافظه نهان در حافظه و ماندگار مراجعه کنید.

حداکثر TTL لایه ۱

در Edge for Private Cloud، می‌توانید حداکثر زمان ماندگاری حافظه نهان L1 را برای هر پردازشگر پیام بااستفاده از دارایی «حداکثر زمان ماندگاری L1» (conf_cache_max.l1.ttl.in.seconds) تنظیم کنید. ورودی حافظه نهان L1 پس‌از رسیدن به مقدار «حداکثر زمان ماندگاری L1» منقضی می‌شود و حذف می‌شود.

نکته‌ها:

  • به‌طور پیش‌فرض، «زمان زنده بودن» L1 حداکثر غیرفعال است (با مقدار -1)، در این حالت، «زمان زنده بودن» ورودی در حافظه نهان L1 با تنظیمات انقضای خط‌مشی PopulateCache (برای حافظه نهان L1 و L2) تعیین می‌شود.
  • ‫TTL L1 بیشینه فقط درصورتی تأثیر دارد که مقدار آن از انقضای کلی حافظه نهان کوچک‌تر باشد.

تنظیم «زمان زنده بودن» L1 بیشینه

می‌توانید «حداکثر زمان زنده بودن L1» را در پردازشگر پیام به‌صورت زیر تنظیم کنید:

  1. فایل پیکربندی /opt/apigee/customer/application/message-processor.properties را در ویرایشگر باز کنید. اگر فایل وجود ندارد، آن را ایجاد کنید.
  2. خصوصیت Max L1 TTL را روی مقدار دلخواه تنظیم کنید:
    conf_cache_max.l1.ttl.in.seconds = 180

    مقدار 180 ثانیه را توصیه می‌کنیم.

  3. مطمئن شوید فایل خصوصیات متعلق به کاربر «apigee» باشد:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. پردازشگر پیام را بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

دستورالعمل‌های تنظیم Max L1 TTL

هنگام تنظیم «حداکثر زمان زنده بودن لایه ۱»، رهنمودهای زیر را درنظر داشته باشید:

  • ازدست رفتن RPC: اگر متوجه ازدست رفتن فراخوانی رویه‌ای از دور (RPC) بین پردازشگرهای پیام (MPs) شدید— به‌ویژه در چندین مرکز داده— ممکن است حافظه نهان L1 ورودی‌های قدیمی داشته باشد که تا زمانی که از حافظه نهان L1 حذف نشوند قدیمی باقی می‌مانند. تنظیم «حداکثر زمان زنده بودن سطح ۱» روی مقدار پایین‌تر باعث می‌شود ورودی‌های قدیمی زودتر برداشته شوند و با مقادیر جدید از حافظه نهان سطح ۲ جایگزین شوند.
    راه‌حل: conf_cache_max.l1.ttl.in.seconds را کاهش دهید.
  • بار بیش‌از حد روی Casandra: وقتی مقداری برای «حداکثر L1 TTL» تنظیم می‌کنید، ورودی‌های حافظه نهان L1 بیشتر منقضی می‌شوند، که منجر به ازدست رفتن حافظه نهان L1 بیشتر و اصابت حافظه نهان L2 بیشتر می‌شود. ازآنجایی‌که حافظه نهان L2 بیشتر مورد استفاده قرار می‌گیرد، بار Cassandra افزایش خواهد یافت.
    راه‌حل: افزایش conf_cache_max.l1.ttl.in.seconds

به‌عنوان یک قانون کلی، Max L1 TTL را روی مقداری تنظیم کنید که تعداد خطاهای RPC بین MPs را با بار بالقوه روی Cassandra متعادل کند.

توصیه می‌کنیم مقدار conf_cache_max.l1.ttl.in.seconds را حداقل روی 180 ثانیه (۳ دقیقه) تنظیم کنید تا پردازش به‌خوبی انجام شود.