خانه Easy Apache 4 وب سرور Easy Apache معرفی و آشنایی با Apache MPM prefork

معرفی و آشنایی با Apache MPM prefork

1 دقیقه خوانده شده
۰
0
18
MPM

دوستان عزیزی که قصد خرید هاست لینوکس ویندوز و سرور مجازی را دارند با چیتاهاست همراه باشند تا بهترین ها را تجربه کنند. همچنین در ادامه با معرفی و آشنایی با Apache MPM prefork همراه باشند.

Apache MPM prefork

شرح : یک وب سرور بدون پیش رونده(non-threaded)، پیشگیرنده(pre-forking) را اجرا می کند .

وضعیت : MPM .

شناسه ماژول : mpm_prefork_module .

فایل منبع : prefork.c .

خلاصه

ماژول MPM prefork چند پردازشی (Multi-Processing ) (MPM) یک وب سرور بدون پیش رونده (non-threaded ) و پیشرو (pre-forking) را اجرا می کند . هر پردازش سرور می تواند درخواست های ورودی را پاسخ دهد ، و یک پردازش منبع اندازه مخزن (pool) سرور را مدیریت می کند.  این برای سایت هایی مناسب است که در آنها لازم است  از threading  اجتناب کنند تا با کتابخانه هایی (library) که non-thread-safe هستن، سازگار باشند . همچنین این بهترین MPM برای جداسازی هر درخواست است ، بنابراین یک مشکل با یک درخواست  واحد ،  دیگر تاثیر نمی گذارد.

این MPM بسیار خود تنظیم کننده (self-regulating) است ، بنابراین تنظیم دستورالعمل های پیکربندی آن به ندرت لازم است. مهمتر از آن این است که MaxRequestWorkers به ​​اندازه کافی بزرگ باشد تا هرچه بیشتر درخواستهای همزمان را که شما انتظار دارید دریافت کنید،رسیدگی کند. اما به اندازه کافی کوچک است تا اطمینان حاصل شود که RAM فیزیکی کافی برای تمام فرآیندها وجود دارد.

مطالب مرتبط: آشنایی با Apache Module mod_ headers

چگونه کار می کند

یک فرایند کنترل واحد مسئول راه اندازی پروسه های کودک (child processes) است که برای ارتباطات گوش می دهند و زمانی که آنها می رسند سرو (serve) می کنند. آپاچی httpd همیشه تلاش می کند تا چندین فرایند ذخیره سازی (spare) یا خالی(idle) سرور را حفظ کند ، که آماده پاسخگویی به درخواستهای ورودی هستند. به این ترتیب، مشتریان نیازی ندارند صبر کنند برای یک پروسه ی child و جدید که قبل از اینکه درخواست های خود را تحویل دهند شکسته شود.

   StartServers ،    MinSpareServers ،  MaxSpareServers  و   MaxRequestWorkers   تنظیم می کنند که چگونه فرایند والدین ( parent)  ، کودکان ( children) را برای سرو درخواست ها ایجاد می کند. به طور کلی، Apache httpd بسیارخود  تنظیم کننده (self-regulating)  است ، بنابراین اکثر سایت ها نیازی به تنظیم این دستورات از مقادیر پیش فرض خود ندارند. سایت هایی که نیاز به بیش از ۲۵۶ درخواست همزمان دارند، ممکن است نیاز به افزایش MaxRequestWorkers داشته باشد،  در حالی که سایت های با حافظه محدود ممکن است نیاز به کاهش  MaxRequestWorkers برای نگه داشتن سرور از thrashing داشته باشند. (مبادله حافظه با دیسک و بازگشت ) . اطلاعات بیشتر در مورد تنظیم روند ایجاد در اسناد performance hints ارائه شده است.

در حالی که فرآیند parent معمولا به عنوان root در یونیکس برای اتصال به پورت ۸۰ آغاز می شود، پروسه های  فرزند (child ) توسط آپاچی httpd به عنوان یک کاربر کم امتیاز (less-privileged) راه اندازی شده اند . دستورالعملهای کاربر(User ) و گروه ( Group) برای تنظیم امتیازات پروسه های فرزند آپاچی httpd استفاده می شوند. پروسه های child باید قادر به خواندن تمام محتویاتی باشند که serve خواهد شد  .  اما باید چندین امتیاز فراتر از آن که ممکن است،داشته باشند .

MaxConnectionsPerChild  کنترل می کند که چگونه سرور بارها و بارها (مکررا) سرور را با کشتن قدیمی ها وآنتی ویروس ها و راه اندازی آن ها  پردازش و بازیافت می کند .

این MPM با استفاده از  موتکس ( mutex ) mpm-accept ، هنگامی که به مشکل thundering herd  برسد ، دسترسی به اتصالات ورودی را سریال می کند (به طور کلی، زمانی که چند سوکت گوش دادن وجود دارد ) . جنبه های اجرای این mutex را می توان با دستور  Mutex پیکربندی کرد . اسناد  performance hints  در زمینه ی mutex  اطلاعات بیشتری دارد .

دستور MaxSpareServers

شرح :  حداکثر تعداد  سرور کودک و idle  پردازش می شود .

نحوه :  MaxSpareServers number

پیش فرض : MaxSpareServers 10

متن : پیکربندی سرور

وضعیت :    MPM

ماژول :    prefork

دستورالعمل MaxSpareServers حداکثر تعداد مورد دلخواه فرآیند سرور idle کودک را تنظیم می کند. یک فرایند idle  یک درخواست را مدیریت نمی کند.

اگر بیش از MaxSpareServers  باشد ، فرآیند parent   فرآیندهای اضافی  را از بین می برد.

تنظیم این پارامتر فقط باید در سایت های بسیار شلوغ لازم باشد. تنظیم این پارامتر به تعداد زیاد،  همیشه یک ایده ی بد است. اگر برای تعیین ارزش برابر یا پایینتر از MinSpareServers تلاش می کنید، Apache HTTP Server به طور خودکار آن را به MinSpareServers + 1 تنظیم می کند.

MinSpareServers Directive

شرح : حداقل تعداد سرور idle و  child پردازش می شود .

نحوه : MinSpareServers number

پیش فرض :    MinSpareServers 5

متن :  پیکربندی سرور

وضعیت :         MPM

ماژول : prefork

دستورالعمل   MinSpareServers حداقل تعداد دلخواه از پردازنده های سرور idle و  child را تعیین می کند.

یک فرایند idle یک درخواست را مدیریت نمی کند. اگر کمتر از idle  MinSpareServerss  وجود دارد، سپس فرایند والدین  ( parent ) فرزندان (  children ) جدید ایجاد می کند:   یکی را افزایش می دهد ، یک لحظه صبر می کند ، سپس دو بار افزایش می دهد ، یک لحظه صبر می کند ، سپس چهار بار افزایش می دهد و آن را به صورت نمایی ( آماری ) ادامه خواهد داد تا زمانی که ۳۲ child در هر ثانیه افزایش دهد. هر زمان که تنظیمات MinSpareServers رضایت دهد متوقف خواهد شد .

تنظیم این پارامتر فقط باید در سایت های بسیار شلوغ لازم باشد. تنظیم این پارامتر به تعداد زیادی همیشه یک ایده ی بدی  است.

بارگذاری نوشته های مرتبط بیشتر
مطالب بیشتر از این نویسنده مرجان کاظمی
  • proxy_fcgi

    معرفی و آشنایی با Apache Module mod_ proxy_fcgi

    به دنبال هاست خوب هستید؟ با چیتاهاست بهترین ارائه دهنده هاست های لینوکس و ویندوز و سرور مج…
  • proxy

    آشنایی و معرفی Apache Module mod_ proxy

    در این بخش به طور کامل با Apache Module mod_ proxy آشنا می شوید. همچنین اگر قصد خرید هاست …
  • headers

    آشنایی با Apache Module mod_ headers

    چیتاهاست بهترین ارائه دهنده سرور های مجازی هاست لینوکس ویندوزَ و هاست نرم افزاری می باشد ب…
بارگذاری بیشتر در وب سرور Easy Apache

پاسخ دهید

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

بررسی کنید

معرفی و آشنایی با Apache Module mod_ proxy_fcgi

به دنبال هاست خوب هستید؟ با چیتاهاست بهترین ارائه دهنده هاست های لینوکس و ویندوز و سرور مج…