Aref Akhtari
Aref Akhtari
خواندن ۲ دقیقه·۴ سال پیش

بهینه سازی آپاچی و PHP

بهینه سازی Apache

روش های مختلفی به جهت بهینه سازی وب سرور آپاچی وجود دارد که در ذیل به چندین مورد آن اشاره می نماییم:

  • آپاچی را به آخرین ورژن آپدیت نمایید.
  • در صورتی که از نسخه کرنل 2.4 و یا قدیمی تر استفاده می نمایید حتما نسبت به آپگرید اقدام نمایید.
  • انتخاب ماژول MultiProcessing Module – MPM

آپاچی نسخه 2.4 با توجه به نیاز شما سه mpm مختلف را انتخاب می نماید:

Perfork MPM

Worker MPM

Event MPM

preforkMPM

استفاده از چندین پروسه ی فرزند بدون نخ. هر فرایند یک اتصال را در یک زمان بدون ایجاد موضوعات جداگانه برای هر یک از آن ها انجام می دهد. بدون در نظر گرفتن جزئیات بسیار، می توانیم بگوییم که از این MPM فقط در هنگام اشکالزدایی یک برنامه کاربردی استفاده میشوپ، یا اگر برنامه شما نیاز به استفاده از، ماژول های غیر ایمن مانند mod_php داشته باشد. زیرا این ماژول جز ابزار ها و کتابخانه های بدون نخ یا non-threaded هستند

مراجع درمورد این موضوع نظر یکسانی دارند نقل قول می کنم

Avoid using MPM Prefork whenever possible. It’s inability to scale well with increased traffic will quickly outpace the available hardware on most system configurations.

workerMPM

یک حالت preforkin چندگانه با قابلیت multithreaded, multiprocessing . مانند حالت قبل یک پردازش مستر درون یک serverpool فرزندان این پردازش را اجرا میکند ولی برخلاف نوع قبلی این فرزندان از جمله پردازش های multithreaded هستند. این یک انتخاب خوب برای سرورهای ترافیک بالا است زیرا اجازه می دهد که اتصالات همزمان همزمان با RAM کمتری نسبت به موارد قبلی داشته باشند.

eventMPM

MPM پیش فرض در بیشتر آپاچی برای نسخه 2.4 و بالاتر است.

این ماژول از یک نخ listener جدا برای هر child استفاده می کند که وظیفه هدایت درخواست به نخ های idle را برعهده میگیرد که مشکل لاک شدن نخ های حالت worker را حل می کند. این روش مطمین میشود که worker ها حداکثر درخواست ها را قبول کنند

اما با یک مزیت: آن باعث می شود که اتصالات غیر فعال (در حالی که در آن حالت باقی می ماند) با یک موضوع واحد انجام شود، بنابراین حافظه آزاد می شود به موضوعات دیگر اختصاص داده شود. این MPM برای استفاده با ماژول های غیر ایمن مانند mod_php مناسب نیست ، بلکه باید جایگزینی چنین PHP-FPM را استفاده کرد.

اینا جز اصلی ترین mpm ها بودند علاوه بر این سه مورد mpm های ذیگه هم هستن که بررسیشون نمیکنیم.


ادامه مطلب در لینک منبع

لینک منبع

apachephpآپاچی
Cloud Engineer at Digikala
شاید از این پست‌ها خوشتان بیاید