راهاندازی یک وب سایت وردپرسی کارآمد، به درک عناصر فنی مانند محدودیت حافظه PHP و PHP Workers نیاز دارد. این اصطلاحات به چه معنا هستند و چگونه بر عملکرد وب سایت وردپرسی شما تاثیر میگذارند؟
سایت وردپرسی خود را به عنوان یک رستوران شلوغ در نظر بگیرید. آشپزخانه این رستوران مثل حافظه PHP است. اگر آشپزخانه خیلی کوچک باشد، آشپزها (PHP Workers) نمی توانند غذاهای زیادی را همزمان آماده کنند اما اگر آشپزخانه بزرگتر باشد، آشپزها می توانند سفارش های بیشتری را آماده کرده و مشتری ها زودتر غذایشان را دریافت می نمایند.
تصویر(1)
محدودیت حافظه PHP چیست؟
هر بار که سایت شما صفحه ای را لود می کند، افزونه ای فعال شده یا از ویژگی یک قالب استفاده می نماید، اسکریپت های PHP اجرا می شوند که برای عملکرد درست به حافظه نیاز دارند. محدودیت حافظه PHP تعیین می کند که سایت وردپرسی شما به چه مقدار حافظه دسترسی دارد.
باید PHP memory limit بالایی داشته باشید تا سایت تان بتواند تمام وظایف خود را بدون مشکلاتی مانند موارد زیر انجام دهد:
- کند بودن لود صفحات: کافی نبودن حافظه میتواند اجرای اسکریپت های PHP را کند کرده و منجر به افزایش زمان لود صفحات شود.
- اختلال در پلاگین ها: اگر حافظه کافی در دسترس نباشد، افزونه های سنگین ممکن است به درستی کار نکنند.
- مواجهه با صفحه سفید مرگ: زمانی که یک اسکریپت PHP از تمام حافظه موجود استفاده می کند، ممکن است به جای لود درست، یک صفحه سفید خالی در سایت شما نمایش داده شود.
PHP Workers چیست؟
PHP Workers بر عملکرد سایت وردپرسی شما تاثیر می گذارد. Worker ها فرایندهای پس زمینه روی سرور هستند و اجرای کد PHP را که به سایت شما قدرت می بخشد، مدیریت می کنند.
در وردپرس، این Worker ها مسئول ایجاد صفحات، پردازش وظایف برنامه ریزی شده و موارد دیگر هستند. آنها صفحات HTML را برای ارائه خدمات به بازدیدکنندگان سایت ایجاد کرده و تعیین می کنند که سایت شما همزمان می تواند چند درخواست آنلاین کش نشده را انجام دهد.
هنگامی که بازدیدکننده ای به سایت وردپرسی شما دسترسی پیدا می کند، یک درخواست به سرور ارسال می شود که توسط PHP Worker پردازش می گردد. اگر سایت تان دارای چندین PHP Worker باشد، می توان چندین درخواست را به طور همزمان پردازش کرد. برای مثال، اگر سایت دو PHP Worker داشته باشد و پنج درخواست همزمان دریافت شود، دو مورد از آنها بلافاصله پردازش خواهند شد، در حالی که سه درخواست دیگر در صف منتظر میمانند تا دو مورد اول تکمیل گردند.
این سیستم صف، به مدیریت ترافیک کمک می کند. از طرف دیگر نشان می دهد تعداد کم PHP Worker زمانی که چندین درخواست به طور همزمان ارسال می شود، می تواند منجر به تاخیر و زمان پاسخگویی طولانی تر گردد.
تصویر(2)
مدیریت محدودیت حافظه PHP
توجه داشته باشید اگر PHP memory limits را خیلی بالا تنظیم کنید، ممکن است یک اسکریپتی که درست پیکربندی نشده، باعث بروز مشکلات جدی شود.
چه زمانی افزایش محدودیت حافظه PHP نیاز است؟
افزایش PHP memory limits ممکن است برای حفظ عملکرد و ثبات سایت وردپرسی شما در مواجهه با وظایف سنگین و کمبود منابع، ضروری باشد. زمانی که با پیام های خطایی مانند "Allowed memory size exhausted" مواجه می شوید، نشان دهنده این است که محدودیت حافظه PHP شما باید افزایش یابد. چنین خطاهایی نشان می دهد که محدودیت حافظه فعلی برای اجرای وظایف کافی نیست.
در ادامه یک نمونه پیام خطا آورده شده است:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
هنگام بررسی و رفع مشکلات عملکرد و پایداری سایت وردپرسی، باید به دنبال ورودی های خاصی در لاگ ها باشید که نشان دهنده مشکلات مربوط به محدودیت حافظه PHP هستند.
تصویر(3)
مدیریت PHP Workers
PHP Worker برای سایت هایی که محتوای زیادی را کش نمیکنند، بسیار کاربردی است. هر چه یک سایت پویاتر باشد، به تعداد بیشتری PHP Worker نیاز خواهد داشت. محتوای ذخیره شده در حافظه کش، به PHP Worker نیاز ندارد. تنها زمانی که سایت برای دریافت یا تغییر اطلاعات از دیتابیس استعلام می گیرد یا نیاز به اجرای اسکریپت های دیگر PHP دارد، ضروری می باشد.
این یعنی کش موثر میتواند با ارائه محتوای ذخیره شده به جای تولید پویا برای هر درخواست، بار روی PHP Worker را کاهش دهد.
چه زمانی باید PHP Workers بیشتری اضافه کرد؟
تعداد PHP Worker موردنیاز، به عوامل مختلفی بستگی دارد، از جمله آنها می توان به کوئری های پایگاه داده، بهینگی کد و نوع ترافیک دریافتی اشاره نمود. یک سایت بهینه شده با کد PHP و کوئری های پایگاه داده کارآمد، درخواست ها را به سرعت پردازش کرده و PHP Worker برای درخواست بعدی آزاد می شود.
سایت های پویا مانند فروشگاه های تجارت الکترونیک، انجمن ها، سایت های آموزشی و سایت های مبتنی بر عضویت معمولاً نسبت به سایت های ایستا PHP Worker بیشتری نیاز دارند. سایت های شلوغ تر نیز معمولاً PHP Worker بیشتری برای مدیریت افزایش ترافیک نیاز خواهند داشت.
افزودن Worker بیشتر PHP می تواند به مدیریت افزایش ترافیک و کاهش زمان انتظار برای پردازش درخواست ها کمک کند اما متعادل سازی آن با منابع CPU و RAM ضروری می باشد. اگر سایت شما مکررا به حد مجاز PHP Worker خود می رسد، ممکن است نیاز داشته باشید که PHP Worker بیشتری اضافه کنید یا کدها و کوئری های سایت خود را برای بهبود عملکرد بهینه نمایید.
بهترین روش ها برای مدیریت منابع PHP
مدیریت موثر منابع PHP برای حفظ عملکرد و ثبات سایت وردپرسی شما بسیار مهم می باشد.
در ادامه برخی از بهترین روش ها برای بهینه سازی حافظه PHP و Worker آورده شده است:
- کش کارآمد: پیاده سازی مکانیزم های کش می تواند بار روی PHP Worker را به میزان قابل توجهی کاهش دهد. با ارائه محتوای کش شده به بازدیدکنندگان، تعداد درخواست هایی را که باید توسط PHP Worker پردازش شوند، به حداقل رسانده و آنها را برای اقدامات پویاتر آزاد می کنید.
- کد و کوئری را بهینه کنید: مطمئن شوید که کد PHP و کوئری های پایگاه داده شما به خوبی بهینه شده اند. اجرای کارآمد کد و تعاملات ساده دیتابیس، زمان پردازش را کاهش داده و به PHP Worker اجازه می دهد تا درخواست های بیشتری را در زمان کمتری به انجام برساند.
- نسخههای PHP را ارتقا دهید: بهطور مرتب نسخههای PHP را بروزرسانی کنید زیرا اغلب موجب بهبود عملکرد و امنیت می شود. نسخه های جدیدتر PHP معمولا سریعتر و کارآمدتر هستند.
- نظارت بر مصرف منابع: از ابزارهایی مانند Query Monitor برای ارزیابی منابع کمک بگیرید. شناسایی به موقع ایرادات و ناکارآمدی ها، کمک می کند که اقدامات اصلاحی را سریعا انجام دهید.
جمع بندی
مدیریت موثر منابع PHP برای عملکرد و پایداری سایت های وردپرسی بسیار مهم است. در این مقاله، محدودیت حافظه PHP و PHP Workers، همچنین نحوه بهینه سازی استفاده از آنها مورد بررسی قرار گرفت.