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

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

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

داده‌های میانای برنامه‌سازی کاربردی در دو نوع حافظه پنهان ذخیره می‌شود:

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

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

Max L1 TTL

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

نکته‌ها:

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

درحال تنظیم Max L1 TTL

می‌توانید Max L1 TTL را در پردازشگر پیام به‌صورت زیر تنظیم کنید:

  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

هنگام تنظیم Max L1 TTL، رهنمودهای زیر را درنظر داشته باشید:

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

به‌عنوان یک قانون کلی، Max L1 TTL را روی مقداری تنظیم کنید که فرکانس RPCهای ناموفق بین MPها را با بار احتمالی روی Cassandra متعادل کند.

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