گزینه‌های autoload؛ کندی پنهان در هر درخواست وردپرس

هر درخواست وردپرس همهٔ گزینه‌های autoload را می‌خواند. اگر این مجموعه چند مگابایت شده باشد، کل سایت کند است.

حمید اعراب توسعه‌دهنده ارشد بک‌اند وردپرس و ووکامرس
انتشار
زمان مطالعه
۱ دقیقه مطالعه

حمید اعراب ۲۶ اسفند ۱۴۰۴ ۱ دقیقه مطالعه

تصویر پیکسلی یک کوله‌بار سنگین روی یک سرور
فهرست مطالب (3)

وردپرس در ابتدای هر درخواست همهٔ گزینه‌هایی را که autoload دارند یک‌جا می‌خواند. افزونه‌هایی که دادهٔ حجیم را با autoload ذخیره می‌کنند، هزینه را به همهٔ صفحه‌ها تحمیل می‌کنند.

اندازه‌گیری

wp option list --autoload=on --format=total_bytes
wp option list --autoload=on --fields=option_name,size_bytes --orderby=size_bytes --order=desc | head -20

از وردپرس ۶٫۶ مقادیر autoload به on، off و auto تغییر کرده و گزینه‌های خیلی بزرگ به‌طور پیش‌فرض autoload نمی‌شوند؛ اما دادهٔ قدیمی و افزونه‌هایی که صراحتاً autoload را روشن می‌کنند همچنان مشکل‌سازند.

اصلاح امن

wp option set-autoload some_heavy_option off

گزینه‌ای را که در هر درخواست لازم است خاموش نکنید؛ فقط داده‌هایی را هدف بگیرید که در صفحه‌های محدودی خوانده می‌شوند.

نقش کش شیء

با کش شیء پایدار مثل Redis، مجموعهٔ autoload یک کلید بزرگ در کش است. اگر این کلید از سقف اندازهٔ کش بزرگ‌تر شود، هر درخواست دوباره سراغ پایگاه‌داده می‌رود. پس کوچک نگه داشتن autoload با کش شیء هم مهم است.

$ ./request_review

همین مشکل را در فروشگاه خودتان دارید؟

توسعه‌دهنده ارشد WordPress و WooCommerce برای معماری، اتصال سیستم‌ها و حل مسائل پیچیده production.

درخواست بررسی فنی

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *