محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

معرفی تنظیمات ماژول mpm prefork در آپاچی

قبلا در خصوص ماژول های MPM در آپاچی بصورت مفصل توضیح داده ایم و انواع این ماژول ها و کاربرهای هر کدام را معرفی کرده ایم . گفتیم که ماژول پیشفرضی که برای مدیریت کردن چند پردازشی در آپاچی فعال می شود mpm__prefork است و امروز می خواهیم در خصوص فاکتورهای مهمی که در این ماژول وجود دارد صحبت کنیم.بصورت خلاصه گفتیم که MPM مخفف Multi-Processing Module است و برای ایجاد کردن امکان پردازش همزمان درخواست های کاربران در وب سرور آپاچی استفاده می شود .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

شاید درک کردن کارکرد و نحوه پیکربندی آن برای مدیر سیستمی که تعداد کاربران زیادی ندارد چندان اهمیت نداشته باشد اما وقتی صحبت از پردازش های سنگین و سرویس های هاستینگ می شود دیگر نمی توانیم نسبت به این مورد بی تفاوت باشیم و باید بتوانیم Load کاری را به درستی در وب سرور مدیریت کنیم و اینجاست که ماژول های MPM کاربردی می شوند و این امکان را به شما می دهند که درخواست ها به جای اینکه در صف انتظار باقی بمانند سریعتر پاسخ داده شوند .این قسمت از پیکربندی وب سرور بیشتر در قسمت بهینه سازی یا Optimize کردن کارایی وب سرور قرار می گیرد و شما باید به عنوان مدیر شبکه لینوکسی تا حدی با آن آشنا باشید ، توجه کنید که تنظیمات این ماژول کمی در آپاچی نسخه 2.4 و نسخه 2.2 متفاوت است و به همین دلیل ما تقریبا هر دو مورد را برای شما در این مقاله بررسی می کنیم :

پارامترهای تنظیمات ماژول mpm_prefork در آپاچی 2.4

StartServers 3
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 400
MaxConnectionsPerChild 0

پارامترهای تنظیمات ماژول mpm_prefork در آپاچی 2.2

StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0

خوب حالا قسمت به قسمت پارامترهایی که در دو نسخه از mpm__prefork مشاهده می کنید رو با هم مرور می کنیم. دقت کنید که این قسمت از کار و انجام تغییرات در این لایه نیازمند این هست که شما حتما روی وب سرور از قبل تحقیقاتتون رو انجام بدید و آمار درستی از نحوه عملکرد وب سرور و میزان منابع مصرفی اون داشته باشید :

  1. پارامتر StartServers : مسئله را پیچیده نکنید در اینجا منظور از Servers تعداد سرورها نیست ! زمانیکه وب سرور آپاچی بعد از بوت شدن سیستم و انجام فرآیند Startup فعال می شود چند Process پیشفرض ( Child Server Process ) برای سرویس دهی به کاربران ایجاد می کند که این پارامتر تعداد پیشفرض این Process ها را نشان می دهد. در عین حال اگر بار کاری سرور بالا باشد بصورت خودکار وب سرور تعداد این Child Process ها را بالا می برد و هیچ نیازی به دستکاری کردن مقدار پیشفرض این پارامتر وجود ندارد.
  2. پارامتر MinSpareServers : وقتی صحبت از Spare می شود یعنی در خصوص یک چیز پشتیبان و بکاپ صحبت می کنیم و وقتی راجع به Server با مفهوم پاراگراف قبلی صحبت می کنیم کل این پارامتر به این معنی است که یعنی تعداد حداقل ( Minimum ) تعداد Process های Child ای که در سرور ایجاد می شود و اما در حالت Idle یا بیکار قرار دارند به این معنی که منتظر می مانند و کاری انجام نمی دهند تا اینکه درخواست Connection ای به سرور وارد شود . اگر تعداد Process های Idle از حداقل ای که ما اینجا تعریف کرده ایم کمتر شود ، وب سرور آپاچی بصورت خودکار یک Child Process ایجاد می کند تا پارامتر MinSpareServers به درستی تعریف شده باشد.
  3. پارامتر MaxSpareServers : خوب این دیگه مشخص هست !! حداکثر تعداد Child Process هایی که می تونن در حالت Idle یا بیکار در سیستم باقی بمونن رو تعیین می کنه ، اگر تعداد Idle Process ها بیشتر از تعداد یا مقدار MaxSpareServers بشه بصورت خودکار آپاچی از طریق Parent Process یا پردازش والد ، تعداد Child Process های اضافی رو Kill می کنه ..
  4. پارامترهای MaxClients و MaxRequestWorkers : مهمترین فاکتور در پارامترهای ماژول prefork همین قسمت ها هستند که حداکثر تعداد درخواست هایی که سرور آپاچی می تواند تحمل کند را تعیین می کنند . اگر درخواست ها از این تعداد تعیین شده فراتر بروند ، درخواست های بیشتر به جای پاسخگویی در لحظه به صف پاسخگویی یا همان Queue منتقل خواهند شد.

مواردیکه ما در بالا عنوان کردیم در تنظیمات فایل ماژول prefork وجود دارد و قابل پیکربندی هستند . اما قبلا هم عنوان کرده ایم که ترجیحا اگر پردازش های سرور شما کم هستند و کاربران کمی هم دارید این قسمت را دستکاری نکنید ، دستکاری کردن این قسمت از آپاچی نیازمند حداقل مقداری تحقیق و البته محاسبه است و افرادی که در آپاچی و برآوردهای محاسباتی آن در پاسخگویی به کاربران تجربه خوبی دارند این قسمت را دستکاری می کنند ، شما ترجیحا باید به میزان RAM و CPU ای که در سرور دارید و مانیتور کردن میزان استفاده از آن توسط آپاچی پارامترهای بالا را تغییر بدهید . بعدا یک مقاله در خصوص Apache Performance Optimization در وب سایت منتشر می کنم که در این خصوص توضیحاتی رو با فرمول محاسبه عنوان کنیم .

نویسنده : محمد نصیری

منبع : جزیره لینوکس و متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات