Antipattern: داده های بیش از 256 کیلوبایت را در حافظه پنهان ذخیره کنید

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

Apigee Edge امکان ذخیره داده‌ها در حافظه پنهان (cache) را در زمان اجرا برای ماندگاری و بازیابی سریع‌تر فراهم می‌کند.

  • داده‌ها در ابتدا در حافظه پنهان پردازنده پیام، که به عنوان حافظه پنهان L1 شناخته می‌شود، ذخیره می‌شوند.
  • حافظه نهان سطح ۱ (L1 cache) به میزان حافظه‌ای که برای آن رزرو شده است، به عنوان درصدی از حافظه JVM، محدود می‌شود.
  • ورودی‌های ذخیره‌شده در حافظه پنهان (cache) بعداً در حافظه پنهان سطح ۲ (L2 cache ) ذخیره می‌شوند که برای همه پردازنده‌های پیام (Message Processors) قابل دسترسی است. جزئیات بیشتر را می‌توانید در بخش زیر بیابید.
  • حافظه نهان سطح ۲ هیچ محدودیت سختی در تعداد ورودی‌های حافظه نهان ندارد، با این حال حداکثر اندازه ورودی که می‌تواند ذخیره شود به ۲۵۶ کیلوبایت محدود شده است. اندازه حافظه نهان ۲۵۶ کیلوبایت، اندازه توصیه شده برای عملکرد بهینه است.

ضدالگو

این ضدالگوی خاص در مورد پیامدهای تجاوز از محدودیت‌های فعلی اندازه حافظه پنهان در پلتفرم Apigee Edge صحبت می‌کند.

وقتی داده‌ها > 256 کیلوبایت در حافظه پنهان (cache) ذخیره شوند، عواقب آن به شرح زیر است:

  • درخواست‌های API که برای اولین بار در هر یک از پردازنده‌های پیام اجرا می‌شوند، باید داده‌ها را به‌طور مستقل از منبع اصلی (خط‌مشی یا سرور هدف) دریافت کنند، زیرا ورودی‌های بزرگتر از ۲۵۶ کیلوبایت در حافظه پنهان L2 در دسترس نیستند.
  • ذخیره داده‌های بزرگتر (بیش از ۲۵۶ کیلوبایت) در حافظه نهان سطح ۱ (L1 Cache)، فشار بیشتری را بر منابع پلتفرم وارد می‌کند. این امر منجر به پر شدن سریع‌تر حافظه نهان سطح ۱ و در نتیجه، فضای کمتری برای سایر داده‌ها در دسترس خواهد بود. در نتیجه، نمی‌توان داده‌ها را به طور کامل و با سرعت دلخواه ذخیره کرد.
  • ورودی‌های ذخیره‌شده از پردازنده‌های پیام، زمانی که به محدودیت تعداد ورودی‌ها برسند، حذف می‌شوند. این باعث می‌شود که داده‌ها دوباره از منبع اصلی در پردازنده‌های پیام مربوطه واکشی شوند.

دو نمودار جریان.  یکی برای اندازه <=256KB که جریان‌های بین پروکسی API و پردازنده‌های پیام را نشان می‌دهد  و جریان‌های بین پردازنده‌های پیام و حافظه پنهان L2 ذخیره‌سازی پایدار را نشان می‌دهد. یکی برای اندازه >256KB که جریان‌های بین پروکسی API و پردازنده‌های پیام و جریان‌های بین پردازنده‌های پیام و داده/پاسخ را نشان می‌دهد  که در حافظه پنهان L2 ذخیره نمی‌شوند.

تأثیر

  • داده‌هایی با اندازه > 256 کیلوبایت در حافظه پنهان L2/persistent ذخیره نمی‌شوند.
  • فراخوانی‌های مکرر به منبع اصلی (چه یک سیاست یا سرور هدف) منجر به افزایش تأخیر در درخواست‌های API می‌شود.

بهترین شیوه

  • برای دستیابی به عملکرد بهینه، ترجیح داده می‌شود داده‌هایی با اندازه کمتر از ۲۵۶ کیلوبایت در حافظه پنهان ذخیره شوند.
  • اگر نیاز به ذخیره داده با حجم بیش از ۲۵۶ کیلوبایت دارید، موارد زیر را در نظر بگیرید:
    • استفاده از هر پایگاه داده مناسب برای ذخیره سازی داده های بزرگ

      یا

    • فشرده‌سازی داده‌ها

مطالعه بیشتر