کندی سایت وردپرسی و خطای ۵۰۸ معمولاً به خاطر کمبود منابع پردازشی اتفاق میفته. اگه خیلی ساده بخوام تفاوت PHP Worker و Entry Process رو بگم، PHP Worker تعداد درخواستهای پویاییه که سرور میتونه همزمان پردازش کنه (مثل تعداد آشپزهای یه رستوران). اما Entry Process تعداد کل اتصالات همزمان به وبسروره (مثل تعداد درهای ورود به همون رستوران).
خیلی از مدیرای سایت فکر میکنن برای سرعت بالا فقط باید فضا و رم رو چک کنن. اما وقتی ترافیک سایتتون بالا میره، کمبود همین دو تا منبع پردازشی باعث افت شدید سرعت میشه. تو این مقاله با بررسی کامل تفاوت PHP Worker و Entry Process قراره با هم ببینیم این دو معیار دقیقاً چی هستن و چطور متوجه بشیم سایتمون تو کدوم بخش کم آورده.
PHP Worker چیست و چه کاری در هاست انجام میدهد؟
اصطلاح PHP Worker به فرآیندهایی تو پسزمینه سرور گفته میشه که وظیفه دارن کدهای PHP سایت وردپرسی شما رو بخونن، اجرا کنن و در نهایت خروجی رو بسازن. هر بار که کاربری یه صفحه بدون کش (مثل سبد خرید ووکامرس) رو باز میکنه، یکی از این کارگرها مشغول به کار میشه.
تصور کنین سایت شما یه رستورانه. اینجا PHP Worker دقیقاً همون آشپز رستورانه. هر سفارش جدیدی که ثبت میشه، یه آشپز باید دست به کار بشه و اون رو آماده کنه.
PHP Worker چگونه درخواستها را پردازش میکند؟
وقتی کاربری روی یه محصول کلیک میکنه، مرورگر یه درخواست به سرور میفرسته. اگه این صفحه از قبل کش (ذخیره) نشده باشه، درخواست مستقیم میره سمت موتور پردازشی سرور. اینجا یکی از PHP Workerهای آزاد، وظیفه ارتباط با دیتابیس و اجرای کدهای وردپرس رو به عهده میگیره تا صفحه نهایی رو بسازه و به کاربر نشون بده.
هر PHP Worker چند درخواست همزمان میپذیرد؟
دقیقاً یک درخواست. هر کارگر تو هر لحظه فقط میتونه یه پردازش رو انجام بده. اگه هاست شما ۴ تا PHP Worker داشته باشه، یعنی سرور فقط میتونه ۴ تا درخواست پویای همزمان رو تو همون لحظه اجرا کنه.
حالا اگه درخواست پنجمی برسه چی میشه؟ اون درخواست باید تو صف منتظر بمونه تا کار یکی از آشپزها تموم بشه. همین تو صف موندن، همون دلیلیه که باعث میشه سایت برای نفر پنجم به شدت کند باز بشه.
Entry Processچیست و چه تفاوتی با بازدید همزمان دارد؟
مفهوم Entry Process (یا به اختصار EP) به تعداد پردازشها و اتصالاتی گفته میشه که تو یه لحظه مشخص و دقیق، وارد وبسرور شما میشن. این اتصالات شامل اجرای فایلهای PHP، درخواستهای کدهای اختصاصی و حتی کارهای زمانبندیشده سرور (مثل Cron Jobs) هست.
اگه هاست رو یه اتوبان در نظر بگیریم، Entry Process تعداد ماشینهایی هست که دقیقاً تو یه ثانیه خاص دارن از گیت عوارضی رد میشن.
Entry Process چه چیزی را اندازهگیری میکند؟
این منبع تو کنترلپنلهایی مثل سیپنل (cPanel) فقط پردازشهایی رو میشماره که به اجرای اسکریپت نیاز دارن. جالبه بدونین که لود شدن فایلهای ثابت مثل تصاویر یا کدهای CSS معمولی، معمولاً جزو Entry Process حساب نمیشن. پس این معیار مستقیماً داره فشار لحظهای روی وبسرور رو اندازه میگیره.
چرا Entry Process معادل تعداد کاربران آنلاین نیست؟
یکی از بزرگترین اشتباهات اینه که فکر کنیم اگه محدودیت EP روی ۲۰ تنظیم شده، یعنی سایت فقط میتونه ۲۰ تا بازدیدکننده همزمان داشته باشه. اتصالات Entry Process معمولاً تو کسری از ثانیه انجام میشن و خیلی سریع بسته میشن.
یعنی یه کاربر ممکنه صفحه رو باز کنه، یکی دو ثانیه پردازش طول بکشه و بعدش بشینه مقاله رو بخونه. زمان خوندن متن، اون کاربر هیچ Entry Processای رو اشغال نمیکنه. پس با ۲۰ پردازش ورودی همزمان، شما میتونین صدها کاربر آنلاین تو سایتتون داشته باشین.
تفاوت PHP Worker و Entry Process چیست؟
Entry Process تعداد کل اتصالهای همزمان به وبسرور رو نشون میده، در حالی که PHP Worker فقط مسئول اجرای کدهای PHP سایت شماست. یعنی هر PHP Worker بخشی از همون Entry Process هاست که نیاز به پردازش سنگینتری داره.
اگه بخوام ساده بگم، Entry Process مثل درِ ورودی یه فروشگاهه که همه مشتریا (چه اونایی که فقط نگاه میکنن، چه خریدارا) ازش رد میشن. اما PHP Worker صندوقداریه که فقط کار مشتریهای خریدار رو راه میندازه و فاکتور صادر میکنه.
مسیر درخواست وردپرس از مرورگر تا اجرای PHP
وقتی یه نفر آدرس سایتتون رو تو مرورگر میزنه، اول وبسرور درخواست رو میگیره و همون لحظه یه Entry Process ثبت میشه. اگه این صفحه نیاز به پردازش کدهای وردپرس داشته باشه، وبسرور کار رو میده دست موتور پردازشی که همون PHP-FPM هست. اینجا یه PHP Worker آزاد، مسئول میشه تا کدها رو بخونه، با دیتابیس ارتباط بگیره، صفحه نهایی رو بسازه و بفرسته برای کاربر.

تفاوت درخواستهای کششده با صفحات داینامیک
صفحاتی که افزونههای کش ذخیره کردن، نیازی به اجرای مجدد کد ندارن. وقتی کاربر یه صفحه کششده رو باز میکنه، وبسرور همون نسخه آماده رو تحویل میده و اصلاً سراغ PHP Worker نمیره. این کار به شدت روی کاهش TTFB وردپرس تاثیر مثبت داره. اما صفحات داینامیک (مثل پنل کاربری) کش نمیشن و برای هر بار باز شدن، حتماً یه پردازشگر اختصاصی رو درگیر میکنن.
| ویژگی | Entry Process (EP) | PHP Worker |
| وظیفه اصلی | شمارش کل اتصالات ورودی به وبسرور | اجرای کدهای PHP و پردازشهای داینامیک |
| شامل چه مواردی میشه؟ | درخواستهای PHP، کرانجابها، اسکریپتها | فقط درخواستهایی که نیاز به پردازش کد دارند |
| ارتباط با کش (Cache) | درخواستهای کششده هم EP ثبت میکنند (بسیار کوتاه) | درخواستهای کششده اصلاً Worker را درگیر نمیکنند |
| مدت زمان اشغال | معمولاً کسری از ثانیه | تا زمان اتمام کامل اجرای کد و ارتباط با دیتابیس |
پر شدن Entry Process و کمبود PHP Worker چه علائمی دارند؟
وقتی Entry Process پر میشه، سایت به کل از دسترس خارج میشه و خطای قطعی میده، اما وقتی PHP Worker کم میارید، سایت به شدت کند میشه و درخواستها تو صف میمونن. دونستن این تفاوت ظاهری، بهتون کمک میکنه سریعتر گلوگاه سرور رو پیدا کنین.
خطای 508 (Resource Limit Is Reached) چیست؟
این خطا دقیقاً زمانی رخ میده که ظرفیت Entry Process هاست شما به سقف مجاز رسیده باشه. وقتی تعداد اتصالات همزمان پر بشه، سرور دیگه هیچ درخواست جدیدی رو قبول نمیکنه و مستقیماً ارور 508 رو به کاربر نشون میده. یعنی درِ ورودی فروشگاه کامل بسته شده و کسی نمیتونه وارد بشه.
ایجاد صف درخواستها و خطای 503
اگه Entry Process جا داشته باشه اما تمام PHP Worker ها مشغول باشن، درخواستهای جدید تو صف انتظار (Timeout) گیر میکنن. کاربر فقط میچرخه و سایت براش لود نمیشه، چون کارگری برای پردازش نیست. اگه این صف طولانی بشه و زمان انتظار از حد مجاز سرور بگذره، در نهایت با خطای 503 Service Unavailable مواجه میشین.
کند شدن سبد خرید و صفحات داینامیک ووکامرس
یکی از واضحترین نشانههای کمبود PHP Worker، کندی شدید سبد خرید یا صفحه تسویهحساب (Checkout) تو فروشگاههای اینترنتیه. چون این صفحات قابل کش شدن نیستن، ووکامرس برای محاسبه قیمت و موجودی، نیاز به پردازش لحظهای داره. وقتی پردازشگر کافی نباشه، مشتری تو مرحله پرداخت گیر میکنه و ممکنه کلاً بیخیال خرید بشه.
چه عواملی باعث افزایش مصرف PHP Worker و Entry Process میشوند؟
افزونههای غیراستاندارد، ترافیک همزمان بالا و رباتهای خزنده، اصلیترین مقصرهای پر شدن منابع پردازشی هاست شما هستن. هر درخواستی که نتونه از کش (Cache) استفاده کنه، مستقیم میره سراغ وبسرور و کارگرهای PHP رو برای پردازش درگیر میکنه و باعث افزایش مصرف PHP Worker و Entry Process میشه.
افزونههای سنگین وردپرس و کوئریهای دیتابیس
افزونههایی مثل صفحهسازهای سنگین یا افزونههای آمارگیر و امنیتی، برای هر بار لود شدن صفحه دهها کوئری (درخواست اطلاعات) به دیتابیس میفرستن. این کار باعث میشه PHP Worker مدت زمان خیلی بیشتری منتظر جواب دیتابیس بمونه و برای نفر بعدی آزاد نشه. اگه دیتابیس شما هم کند باشه، علاوه بر درگیری Worker، درگیر مشکل سرعت خواندن و نوشتن هم میشین (پیشنهاد میکنم حتماً مقاله IOPS چیست رو تو بلاگ ما بخونین).
نقش ترافیک همزمان و درخواستهای AJAX
وقتی چند صد نفر همزمان وارد صفحات داینامیک سایت بشن (مثل صفحات ووکامرس)، Entry Process به سرعت به سقف خودش میرسه. علاوه بر این، امکاناتی مثل جستجوی زنده (Live Search) یا آپدیت خودکار قیمت تو سبد خرید که با تکنولوژی AJAX (تکنولوژیای که بدون رفرش کامل صفحه، اطلاعات رو در پسزمینه با سرور رد و بدل میکنه) کار میکنن، برای هر تغییر کوچیک یه درخواست جدید و بدون کش به سرور میفرستن که مستقیماً PHP Worker رو اشغال میکنه.
تأثیر رباتهای خزنده و WP-Cron
گاهی اوقات اصلاً کاربری تو سایت نیست، اما سایت به شدت کنده! اینجا پای رباتهای موتورهای جستجو یا رباتهای مخرب در میونه که دارن صفحات سایت رو پشت سر هم اسکن میکنن. از طرفی، WP-Cron (سیستم زمانبندی خودکار وردپرس) برای کارهایی مثل انتشار پستهای زماندار یا بکاپگیری، پردازشهای پسزمینه ایجاد میکنه که همزمان هم Entry Process و هم کارگرهای PHP رو درگیر میکنه.
چگونه بفهمیم مشکل سایت از PHP Worker است یا Entry Process؟
برای پیدا کردن مقصر اصلی کندی سایت، باید مستقیم بریم سراغ بخش Resource Usage تو کنترلپنل هاست و لاگهای سرور رو زیر و رو کنیم. ما تو ابرینا یه قانون نانوشته برای پشتیبانی داریم: قبل از اینکه مستقیم به کاربر بگیم «پلن هاستت رو ارتقا بده»، اول دقیقاً بررسی میکنیم گلوگاه سایت کجاست! این یعنی اول میبینیم مشکل واقعاً از کمبود PHP Worker هست یا Entry Process به سقفش رسیده، بعد میریم سراغ دیتابیس، افزونههای نصبشده، کرانجابها و وضعیت کش سایت. خیلی وقتها مشکل اصلاً از منابع پلن نیست، بلکه یه افزونه سنگین یا یه کرانجاب فراموششده داره منابع رو اشغال میکنه؛ تو این حالتها، ارتقای پلن نهتنها لازم نیست، بلکه فقط هزینه اضافه رو روی دوش شما میذاره بدون اینکه مشکل واقعی حل بشه.
بررسی Resource Usage در سی پنل
تو کنترلپنل سیپنل (cPanel) بخشی به اسم Resource Usage وجود داره. اگه واردش بشین و روی تب Details کلیک کنین، نمودارهای مصرف لحظهای منابع رو میبینین. اگه نمودار Entry Processes به خط قرمز (Limit) رسیده باشه، یعنی سایت شما تو اون لحظات دقیقاً با محدودیت اتصال همزمان به وبسرور مواجه شده.

بررسی خطاهای 508 و لاگهای سرور
اگه تو همون نمودارها یا سمت کاربر ارور 508 (Resource Limit Is Reached) ثبت شده باشه، قطعیترین نشانه برای پر شدن ظرفیت Entry Process هاست شماست. اما برای بررسی وضعیت PHP Worker باید لاگهای خطای سرور (Error Logs) رو چک کنین. دیدن خطاهایی مثل server reached max_children (تنظیمی تو سرور که سقف تعداد PHP Workerهای فعال رو مشخص میکنه) نشون میده تعداد Workerهای هاست شما برای هندل کردن این ترافیک پویای سایت کافی نبوده.
گلوگاههای CPU و RAM
گاهی اوقات Entry Process پر نشده، اما سایت باز هم کنده. اینجا پای محدودیت CPU و RAM وسطه. ممکنه یه افزونه مخرب یا یه کرانجاب سنگین، پردازنده رو ۱۰۰٪ درگیر کرده باشه.
تو این شرایط، تیم پشتیبانی ابرینا تکتک موارد مثل کرانجابها، وضعیت سیستم کش، دیتابیس و افزونههای مشکوک رو دقیق عیبیابی میکنه. در کنارش، ما منابع تمام پلنهای هاست وردپرس ابرینا رو کاملاً شفاف کردیم؛ یعنی شما موقع خرید فقط فضا و رم رو نمیبینین، بلکه دقیقاً میدونین پلن شما چه محدودیتهای پردازشی (مثل تعداد دقیق PHP Worker و Entry Process) داره تا با خیال راحت سایت فروشگاهیتون رو میزبانی کنین.
چگونه مصرف منابع هاست را بدون ارتقای فوری کاهش دهیم؟
قبل از اینکه به فکر خرید پلن گرونتر بیفتین، بهتره مطمئن بشین که سایتتون داره از منابع فعلی درست استفاده میکنه یا نه. خیلی وقتها مشکل سایت شما با چند تا تنظیم ساده تو بخش کش یا بهینهسازی دیتابیس حل میشه.
استفاده اصولی از Page Cache و Object Cache
با فعال کردن Page Cache، صفحات سایت یک بار به طور کامل پردازش میشن و نسخه ثابتشون (HTML) به کاربرای بعدی نمایش داده میشه. اینطوری دیگه نیازی نیست برای هر بازدید، Entry Process و PHP Worker رو درگیر کنین. در کنار این مورد، استفاده از Object Cache (مثل Redis که یه سیستم ذخیرهسازی سریع تو حافظه که برای کش کردن اطلاعات پرتکرار به کار میره) باعث میشه کوئریهای تکراری دیتابیس تو رم ذخیره بشن که مستقیماً روی بهبود LCP سایت وردپرس تأثیر مثبت میذاره.
بهینهسازی دیتابیس و کاهش کوئریهای سنگین
جداول حجیم و افزونههایی که مدام دارن دیتابیس رو میخونن، سرعت اجرای کدهای PHP رو به شدت پایین میارن. حتماً دیتابیستون رو منظم بهینهسازی کنین و افزونههای آمارگیر سنگین رو پاک کنین. اگه دیتابیس شما کند باشه، فشار مضاعفی به سرور میاد (توصیه میکنم حتماً مقاله تفاوت SSD و HDD در هاست رو بخونین تا متوجه بشین سرعت درایو چقدر مهمه).
انتخاب هاست استاندارد با شفافیت در منابع پردازشی
اینجا همون جاییه که خیلی از شرکتهای هاستینگ سکوت میکنن! ما تو ابرینا معتقدیم کاربر حق داره بدونه دقیقاً چه قدرت پردازشی تو پلن هاست در اختیارشه. به همین دلیل، تو تمام سرویسهای ما منابع کاملاً شفافه؛ یعنی شما موقع خرید فقط فضا و رم رو نمیبینین، بلکه تعداد دقیق Workerها و Entry Processها رو هم میدونین تا انتخاب هوشمندانهتری داشته باشین. این شفافیت فقط به لحظه خرید ختم نمیشه؛ تیم پشتیبانی هاست وردپرس ابرینا هر وقت سایتتون دچار کندی یا خطای منابع بشه، همین عددهای دقیق Worker و Entry Process رو جلوی خودش داره و میتونه همون لحظه بهتون بگه دقیقاً کدوم بخش پر شده، بهجای اینکه فقط بگه «باید ارتقا بدین».
برای یک سایت وردپرسی به چند PHP Worker نیاز داریم؟
جواب این سؤال کاملاً به نوع سایت شما، تعداد کاربران همزمان و میزان استفاده از سیستمهای کش بستگی داره. هیچ عدد ثابت و جادویی برای همه سایتها وجود نداره.
تعداد Worker مناسب برای سایتهای شرکتی
اگه یه سایت شرکتی، وبلاگی یا خبری دارین که محتوای صفحاتش استاتیک هستن و به خوبی کش میشن، همون ۲ تا ۴ عدد PHP Worker براتون کافیه. این تعداد میتونه هزاران بازدید تو روز رو هندل کنه، چون وبسرور صفحات آماده رو تحویل میده و نیازی به اجرای مداوم کدهای وردپرس نیست.
نیاز پردازشی فروشگاههای ووکامرسی
اگه یه فروشگاه ووکامرسی پربازدید دارین، داستان کاملاً فرق میکنه. بیاین یه سناریوی واقعی رو بررسی کنیم: فرض کنین جشنواره فروش گذاشتین و ۵ نفر همزمان در حال پرداخت تو صفحه سبد خرید (Checkout) هستن. از اونجایی که این صفحه نباید کش بشه، به حداقل ۵ پردازشگر آزاد تو همون لحظه نیاز دارین. اگه هاست شما فقط ۲ تا PHP Worker داشته باشه، ۳ نفر از مشتریها تو صف انتظار گیر میکنن و ممکنه با خطای ۵۰۳ مواجه بشن. برای همینه که تو سرویسهای هاست وردپرس ما، تعداد این کارگرها رو بالاتر در نظر میگیریم. البته قدرت پردازش فقط به تعداد این کارگرها محدود نمیشه و برای تکمیل کردن پازل سرعت فروشگاهتون، بررسی تأثیر NVMe بر سرعت وردپرس بهتون نشون میده که سرعت خواندن و نوشتن دیسک چطور میتونه جلوی ایجاد همین صفهای طولانی رو بگیره.
تأثیر کاربران لاگینشده و درخواستهای پسزمینه
کاربرانی که تو سایت ثبتنام کردن و وارد حساب کاربریشون (لاگین) شدن، صفحات رو بدون کش میبینن. این یعنی هر کلیک اونا، یه Worker جدید رو اشغال میکنه. از طرف دیگه، پردازشهای پسزمینه مثل کرانجابها (مثل ارسال ایمیل یا بکاپگیری) هم به صورت پنهانی از همین ظرفیت پردازشی استفاده میکنن و باید این موارد رو تو محاسبه منابع مورد نیاز سایتتون در نظر بگیرین.
سوالات متداول
آیا PHP Worker همان Entry Process است؟
خیر، این دو کاملاً با هم فرق دارن. فاکتور Entry Process تعداد کل اتصالهای لحظهای به وبسرور رو میشماره، اما PHP Worker فقط مسئول اجرای کدهای پویای PHP هست و بخشی از پردازشهای سرور محسوب میشه.
افزایش PHP Worker چه تاثیری روی سرعت وردپرس دارد؟
اضافه کردن این پردازشگرها باعث میشه سایت شما بتونه درخواستهای پویای بیشتری رو به صورت همزمان هندل کنه. در نتیجه صف انتظار خلوت میشه و صفحاتی مثل سبد خرید یا پنل کاربری با سرعت خیلی بالاتری برای مشتری باز میشن.
چرا Entry Process هاست پر میشود؟
دلیل اصلی پر شدن این منبع، ترافیک همزمان بالا، درخواستهای مداوم افزونههای غیراستاندارد و فعالیت رباتهای خزنده است. هر اتصالی که زمان زیادی باز بمونه و سریع بسته نشه، ظرفیت ورودی وبسرور رو اشغال میکنه.
آیا پر شدن Entry Process باعث خطای 508 میشود؟
بله، دقیقاً مقصر اصلی همین محدودیت است. خطای ۵۰۸ (Resource Limit Is Reached) زمانی روی مانیتور کاربر ظاهر میشه که تعداد اتصالات همزمان سایت شما به سقف مجاز Entry Process در هاست رسیده باشه و سرور دیگه نتونه درخواست جدیدی رو قبول کنه.
چگونه مصرف PHP Worker وردپرس را کاهش دهیم؟
بهترین و سریعترین راه، استفاده اصولی از افزونههای کش (مثل Page Cache و Object Cache) هست. وقتی صفحات سایت کش بشن، وبسرور برای نشون دادن اون صفحه به کاربرای بعدی اصلاً نیازی به درگیر کردن پردازشگرهای PHP نداره.
برای ووکامرس چند PHP Worker نیاز است؟
سایتهای فروشگاهی به دلیل داشتن صفحات بدون کش (مثل مرحله پرداخت)، به شدت نیازمند پردازش لحظهای هستن. معمولاً یک فروشگاه ووکامرسی استاندارد به حداقل ۴ تا ۶ پردازشگر آزاد نیاز داره، اما این عدد مستقیماً به ترافیک همزمان جشنوارههای شما بستگی داره.
آیا افزایش CPU مشکل PHP Worker را حل میکند؟
لزوماً خیر. بالا بردن قدرت پردازنده (CPU) سرعت اجرای کدهای یک درخواست رو بیشتر میکنه، اما تعداد درخواستهایی که همزمان میتونن پردازش بشن، فقط و فقط به سقف محدودیت PHP Worker در پلن هاست شما بستگی داره.
نتیجهگیری
پیدا کردن مقصر اصلی کندی سایت بین PHP Worker و Entry Process، قدم اول برای داشتن یه وردپرس سریعه. اگه سایت کلاً از دسترس خارج شده و خطای ۵۰۸ میگیرین، مشکل از پر شدن ظرفیت Entry Process و ترافیک همزمانه. اما اگه سایت کنده و صفحات ووکامرس تو صف پردازش گیر کردن، ظرفیت PHP Worker هاستتون تموم شده. قبل از اینکه به فکر ارتقای پلن بیفتین، اول کش سایت رو فعال کنین و افزونههای سنگین رو حذف کنین. اگه باز هم مشکل پابرجا بود، وقتشه هاستی رو انتخاب کنین که منابع پردازشی شفاف و متناسب با نیاز فروشگاه شما ارائه میده.



