مصرف رم بالا توسط آپاچی در دایرکت ادمین

یکی از مشکلات بسیار رایج در سرور های هاستینگ مبتنی بر کنترل پنل دایرکت ادمین افزایش وحشتناک تعداد pid های وب سرور آپاچی (httpd) در هنگام افزایش بازدید لحظه ای از وب سایت های سرور (concurrent connections)  و در نتیجه مصرف بالای رم در سرور است . در صورت بروز این حالت در سرور ،  بعد از ورود به قسمت مانیتورینگ سرویس های لینوکس در دایرکت ادمین با صحنه ای مانند عکس زیر مواجه میشوید :

مصرف رم بالا توسط آپاچی httpd در دایرکت ادمین به هنگام بازدید بالا

مصرف رم بالا توسط آپاچی httpd در دایرکت ادمین به هنگام بازدید بالا

همانطور که مشاهده میکنید تعداد pid های فعال و زنده آپاچی با نام httpd در این عکس بسیار زیاد است و مصرف حافظه نیز از ۲ گیگابایت تجاوز کرده است . در حالت های بحرانی و شدید تر مصرف رم RAM و حافظه سرور در این لحظات گاهی به بیش از ۳۰ گیگابایت و تعداد pid های httpd بیش از ۱۰ برابر نیز میرسد  . اصولا محدودیتی برای مصرف رم و حافظه سرور برای آپاچی (در صورت کانفیگ غلط آپاچی) وجود ندارد و این روند تا زمانی که کاملا منابع حافظه سرور اشغال شوند ادامه خواهد داشت .  در بسیاری از موارد مدیر سرور یا مسئول کانفیگ سرور شرایط را با حالت های ATTACK و حملات Dos  و DDos اشتباه میگیرد . هر چند زیر حملات سبک نیز کانفیگ پیش فرض آپاچی در دایرکت ادمین همین  حالت را ایجاد میکند .

راه  حل مصرف رم بالا و حافظه سرور توسط آپاچی در دایرکت ادمین به هنگام اتصال کانکشن های بالا به وب سرور httpd

قبل از ارائه راه حل های ممکن ابتدا به اصلی ترین دلیل بروز این مشکل و مصرف سنگین رم سرور توسط httpd اشاره ای میکنیم . در مباحث گذشته به صورت خلاصه و گذری راجع به MPM  یا Multi-Processing Modules در وب سرور آپاچی اشاره کرده ایم . قصد نداریم در این بحث به جزئیات مربوط به انواع  Apache MPMs و  فرق های آن بپردازیم . وب سرور آپاچی در حالت پیش فرض از مدل MPM Perfork استفاده میکند . MPM Perfork سازگار ترین و پایدار ترین مدل پردازشی وب سرور آپاچی است و در عین حال بیشترین مصرف منابع سرور و به خصوص RAM و حافظه سرور نیز از آن این Apache MPM می باشد . مدل Perfork به دلیل نوع استفاده از  Thread و Child Process ها  مقادیر زیادی از حافظه رم سرور را اشغال میکند . در وحله اول میتوانید مقادیر مربوط به MPM را بر اساس نیاز تغییر داده و وب سرور را تیون و بر اساس نیازتان Optimise کنید . این کار نیازمند داشتن علم و اشراف کامل بر روی نحوه عملکرد و کانفیگ وب سرور است و به افراد مبتدی و تازه کار توصیه نمیگردد .  روش دوم استفاده از Nginx به عنوان Reverse P roxy سر راه وب سرور آپاچی است که بی تاثیر نیست ولی شاید به نوعی پاک کردن صورت مسئله باشد … به هر حال به کمک Nginx Reverse P roxy بخشی از بار روی دوش وب سرور کم میشود .

مصرف بالای RAM وب سرور آپاچی روی مدل Pefrork در دایرکت ادمین

مصرف بالای RAM وب سرور آپاچی روی مدل Pefrork در دایرکت ادمین

و اما بهرین روش ممکن برای حل این مشکل تغییر نوع MPM مورد استفاده توسط آپاچی است . وب سرور آپاچی از مدل MPM Worker نیز پشتیبانی میکند که سرعتی به مراتب بالا تر و مصرف منابعی بسیار کمتر از مدل MPM Perfork دارد . در کنترل پنل WHM/cPanel به کمک ابزاری کاربرپسند با واسط گرافیکی عالی به نام Easyapache به سادگی امکان تغییر نوع MPM در Apache با فعال کردن یک گزینه و کامپایل مجدد وب سرور و PHP موجود است . وب سرور دایرکت ادمین هنوز در زمینه کاربر پسند بودن و ساده کردن هاستینگ برای تازه کاران فاصله زیادی با سی پنل دارد و هنوز بسیاری از کار ها باید از طریق Command Line و کنسول صورت پذیرد .بنا بر این بر اساس آموزش های سایت می بایست مدل پردازشی وب سرور آپاچی را از حالت MPM Perfork به MPM Worker تغییر دهید و به کمکCustombuild در دایرکت ادمین وب سرور را مجددا کامپایل کرد  . دوستانی که از وب سرور آپاچی ورژن های ۲.۴ و بالا تر استفاده میکنند در صورتی که نیاز به افزایش سرعت پاسخگویی وب سرور به درخواست ها دارند  میتوانند از مدل MPM Event استفاده کنند . کانفیگ Apache به صورت حرفه ای آسان نیست ولی در صورت انجام درست و بدون نقص خواهید دید وب سرور آپاچی یکی از قدرتمند ترین و انعطاف پذیر ترین وب سرور های High Performance در دنیای وب محسوب میشود . اگر نیاز به کانفیگ حرفه ای وب سرور آپاچی دارید ، میتوانید از طریق منوی تماس با ما درخواست خود را ارسال کنید . ما در کمترین زمان ممکن سرور های شما را به بهترین شکل کانفیگ و پیکربندی میکنیم .

پاسخ به کلیه سوالات شما در زمینه وب هاستینگ و مدیریت سرور در انجمن کامپایلر

2 thoughts on “مصرف رم بالا توسط آپاچی در دایرکت ادمین

  1. مسعود

    ضمن تشکر از مطلب خوب شما
    در دایرکت ادمین هم بعد از نصب CustomBuild می توانید افزونه آنرا دانلود کرده و از طریق پنل مدیریت نصب کنید تا بخشی به عنوان کاستون بیلد به مدیریت اضافه شود. در این بخش می توانید تنظیمات زیادی را به صورت گرافیکی انجام دهید و نیازی به ورود به ترمینال و وارد کردن دستی تنظیمات نیست. از جمله مواردی که می توانید در این بخش تغییر دهید همین تنظمیات Apache است که به راحتی می توانید بر روی یکی از چهار گزینه Auto, Worker,Event , Perfrok ست کنید. البته بعد از انجام تغییرات در این قسمت نیاز است تا توسط همین افزونه یکبار دیگر بخش که تغییر داده شده است را Build کرد که آن هم به سادگی فشردن یک کلید است.

    Reply
  2. مثبت بینان شریف

    مصرف رم سایت در سرور مجازی که دارای ۳ گیگ رم هست بسیار بالاست و به ۸۵ درصد هم میرسد. جدیدا این اتفاق میفته – سایت بنده وردپرس هست و جدیدا افزونه ای اضافه نکردم. ممنون میشم راهنمایی کنید

    Reply

پاسخ دهید

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