جستجو برای:
  • دوره ها
    • مدرسین
    • تمام دوره ها
    • سئو (SEO)
    • بازاریابی عصبی – درک عملکرد مغز
    • زبان برنامه نویسی PHP
    • آموزش لاراول
    • آموزش سرور های لینوکسی
    • مقالات
      • زبان برنامه نویسی PHP
      • سرور و هاست های لینوکسی
      • سیستم مدیریت پایگاه داده‌ (SQL)
  • میزبانی وب
    • هاست اشتراکی
    • سرور
  • خدمات ما
    • درخواست آنالیز رایگان سئو
    • بررسی میزان بهینه بودن سایت شما
  • سفارش سئو
  • سامانه پشتیبانی
  • احراز هویت (تیک آبی)
  • مجله آموزشی
  • تماس با ما
  • درباره ما
  • ثبت تیکت
  • قوانین و مقررات
کوین دژ
  • دوره ها
    • مدرسین
    • تمام دوره ها
    • سئو (SEO)
    • بازاریابی عصبی – درک عملکرد مغز
    • زبان برنامه نویسی PHP
    • آموزش لاراول
    • آموزش سرور های لینوکسی
    • مقالات
      • زبان برنامه نویسی PHP
      • سرور و هاست های لینوکسی
      • سیستم مدیریت پایگاه داده‌ (SQL)
  • میزبانی وب
    • هاست اشتراکی
    • سرور
  • خدمات ما
    • درخواست آنالیز رایگان سئو
    • بررسی میزان بهینه بودن سایت شما
  • سفارش سئو
  • سامانه پشتیبانی
  • احراز هویت (تیک آبی)
0

ورود و ثبت نام

“PHP FPM” – مدیریت فرآیند ها برای سایت های پربازدید

خانهآموزشآموزش سرور های لینوکسی“PHP FPM” – مدیریت فرآیند ها برای سایت های پربازدید
حالت مطالعه

FastCGI Process Manager (FPM) چیست ؟

CGI چیست ؟ 

Common Gateway Interface

CGI (واسط دروازه مشترک) یک فناوری و پروتکل وب است که راهی را برای وب سرور (سرور HTTP) برای تعامل با برنامه های کاربردی خارجی تعریف می کند، به عنوان مثال. PHP. CGI قابلیت‌های وب سرور را برای فعال کردن تولید و پردازش محتوای پویا افزایش می‌دهد.

در صفحه رسمی FPM در سایت PHP.NET (اینجا) به این نکته اشاره شده که FPM برای مدیریت بار زیاد سرور استفاده می شود !

کاهش بار CPU پس از تنظیم PHP-FPM

بهینه سازی PHP-FPM برای بهترین عملکرد، فقط یک اصلاح الگو نیست. پیکربندی و پارامترهای سرویس بر اساس نیازها و منابع سرور متفاوت است.

در زمان اوج ترافیک، عملکرد با ساعات عادی متفاوت خواهد بود. بنابراین، پس از انجام تنظیمات، تست های استرس را انجام می دهیم تا ببینیم سرویس در هنگام بارگذاری بالا چگونه عمل می کند.

بر اساس عملکرد سرور در هنگام تست استرس، ما تنظیمات دقیق تری سرویس را انجام می دهیم. ما همچنین بارگذاری سرور را برای مدتی نظارت می کنیم تا مطمئن شویم که تغییرات واقعاً کمک کرده است.

کاهش بار CPU پس از تنظیم PHP-FPM

خب حالا که متوجه شدیم که راه حلی برای افزایش کارایی سرور خودمون و یا نجات سرورمون از میزان ترافیک بالا باید از PHP FPM استفاده کنیم بهتره کمی بیشتر سینتکس آن آشنا شویم .

بهترین روش موجود برای مدیریت بار زیاد سرور !

بعد از پیکربندی صحیح FPM و ایجاد ساختار برای یک POOL و اعمال بر همه از POOL های غیر استاندارد که منابع زیادی از سرور را درگیر می کند جلوگیری می کند .

  • مدیریت میزان CPU مصرفی
  • مدیریت  هسته های CPU 
  • مدیریت میزان مصرف بلتفرم از رم 
  • قابلیت 
مدیریت سرور در استفاده از منابع را با FPM به دست بگیرید !

FastCGI Process Manager (FPM)

هشدار های قبل استفاده مقاله

متغیر های زیادی برای کنترل منابع سرور در PHP FPM وجود دارد که تنظیم نادرست آن نه تنها باعث کاهش بار سرور نمی شود بلکه باعث می شود با سوییچ بیش از حد یا تخصیص دادن منابع بیشتر به هر کلاینت سرور را overload کند.

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

در صورتی که PHP FPM را فعال کردید و سرور overload شد! مقاله

برای رفع اشکال، اولین کاری که باید انجام بدیم بررسی گزارش های خطای PHP-FPM است که در مکانی مانند

 /var/log/php7.0-fpm.log 

موجود است.

مکان گزارش های خطا (log) بر اساس مسیر نصب و نسخه PHP متفاوت است.

بعد پیدا کردن فایل گزارش ها هنگام بررسی گزارش خطا، هشدارهایی مانند اینها را میبینید : 

[12-Nov-2018 11:12:11] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 9 idle, and 89 total children

این پیام به این معنی است که Pool (استخر) PHP-FPM بسیار شلوغ است و قادر به مدیریت ترافیک بالا با پارامترهای تعریف شده فعلی نیست.

نکته : Pool : در علم کامپیوتر، یک استخر (Pool) مجموعه ای از منابع است که آماده استفاده نگه داشته می شوند، نه اینکه پس از استفاده به دست آمده و پس از آن منتشر شوند. در این زمینه، منابع می توانند به منابع سیستمی مانند دسته فایل ها که خارج از یک فرآیند هستند یا منابع داخلی مانند اشیا اشاره کنند.

In computer science, a pool is a collection of resources that are kept ready to use, rather than acquired on use and released afterwards. In this context, resources can refer to system resources such as file handles, which are external to a process, or internal resources such as objects.

 

مورادی که باعث می شود FPM باعث بار زیاد سرور شود مقاله

PHP-FPM به دلایل زیادی می تواند منجر به بار بالای سرور شود:

  • تعداد زیادی Pool به دلیل ترافیک بالا یا حملات زیاد در حال اجرا هستند
  • یک سرویس مرتبط مانند MySQL یا وب سرور مورد حمله قرار گرفته شده 
  • پیکربندی PHP-FPM به درستی طبق منابع سرور تنظیم نشده است
  • برنامه های دارای سینتکس ضعیف یا باگ که منابع سرور را بیش از حد درگیر کرده است

نحوه انجام و تنظیم PHP-FPM برای پردازش های سنگین سرور (در حین اختلال) مقاله

اولین کاری که صاحبان سرور تمایل دارند برای بالا آمدن فوری سرور انجام دهند، راه اندازی مجدد سرویس PHP-FPM است. اما راه‌اندازی مجدد سرویس تنها یک راه‌حل چاره ی سطحی و موقتی است، و به زودی و دوباره شاهد افزایش ناگهانی بار خواهید بود.

برای رفع مشکل ابتدا باید تمام لاگ ها را بررسی و در دوره زمانی ها مشخص سرور را |آنلایز کنیم .

در صورت اختلال موارد زیر را حتما بازبینی کنید .

 

 

تغییر Process manager در FPM (هسته پردازنده) مقاله

مدیر فرآیند ، Process manager در FPM  عمدتاً از 3 نوع است -  dynamic, ondemand , static (پویا، درخواستی و استاتیک) و عملکرد برنامه و سرور شما بر اساس این سه متغیر به شدت متفاوت است.

در نوع dynamic ، تعداد پردازش های child processes به صورت پویا بر اساس پارامترهای PHP-FPM در فایل conf تنظیم می شود. اما یک متد است که نیاز به رم زیادی دارد .

در نوع static ، تمام child processes توسط متغیر pm.max_children ثابت هستند ، این نوع تابع برای سایت هایی با ترافیک متغیر به هیچ وجه مناسب نیست !

در نوع ondemand ، در این نوع تابع تمام توابع PHP-FPM، تنها بر اساس تقاضا و بر اساس ترافیک منابع را ایجاد می‌ کند. ondemand به مدیریت ترافیک متناوب در  پایداری رم کمک می کند . اما اگر نوسانات ترافیک بیش از حد زیاد باشد، میزان مصرف منابع افزایش می یابد.

PHP-FPM process (موارد بالا) بعد از ارزیابی حافظه سرور موجود، افزایش ترافیک، بازدید صفحات وب سایت،میزان  استفاده از CPU شروع به عملیات می کند .

 

تغییر پارامترهای PHP-FPM در فایل php-fpm.conf مقاله

PHP-FPM دارای پارامترهای پیکربندی زیادی است که نحوه عملکرد آن را تعیین می کند. این پارامترها باید بر اساس منابع سرور مانند RAM و CPU تعیین شوند.

به عنوان مثال، کل فرآیندهایی که در یک سرور اجرا می شوند تقریباً به این حالت قرار می گیرند : تمام میزان رم تقسم بر رمی که هر فرآیند درگیر می کند

 

فایل پیکربندی PHP-FPM در /etc/php-fpm.conf یا مکان دیگری بر اساس مسیر نصب در دسترس خواهد بود. محتویات فایل به شکل زیر خواهد بود:

listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 150

اساسی ترین پارامتری که عملکرد FPM را کنترل می کند موارد بالاست که حالا آن ها را باز می کنیم :

pm.max_children - برای تنظیم تعداد کل فرآیندهای مجاز برای اجرا 
pm.start_servers - تعداد پردازش های زیر شاخه ایجاد شده در راه اندازی
pm.min_spare_servers – حداقل تعداد فرآیندهای بدون استفاده (idle) را تعریف می کند
pm.max_spare_servers - حداکثر تعداد فرآیندهای سرور بیکار را تنظیم می کند
pm.process_idle_timeout - تعداد ثانیه‌هایی که یک فرآیند بدون استفاده در حال اجرا خواهد بود
pm.max_requests - تعداد درخواست‌هایی که هر فرایند زیرشاخه -> (فرایند اصلی)، قبل از درخواست مجدد بتواند اجرا کند.

 

فعال کردن log - برای سایت های روی سایت که با FPM تداخل دارند ! مقاله

در زمانی که پارامتر ها به طور مناسب تنظیم شده است ولی یک سایت یا برنامه خاص مشکوک به استفاده منابع زیاد است باید گزینه slow log را در PHP-FPM فعال کنیم.

request_slowlog_timeout = 6s
slowlog = /var/log/php-fpm/slowlog-site.log

پارامتر "slowlog" در فایل پیکربندی PHP-FPM درخواست هایی را که بیش از 6 ثانیه طول می کشد تا اجرا شوند، را داخل فایل slowlog-site.log ثبت می کند.

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

ضمانت بازگشت وجه ۷ روزه بدون ریسک

در صورت عدم تطابق دوره با سرفصل‌ها، وجه پرداختی شما را بازگشت خواهیم داد.

دوره های مرتبط

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

در پکیج آموزش طراحی سایت دو و چند زبانه، تمام ابزارهای مورد نیاز برای چندزبانه کردن یک وبسایت وردپرسی، در اختیار شما قرار گرفته است.

نصب آنتی ویرویس imunify روی سرور WHM/CPANEL

در پکیج آموزش طراحی سایت دو و چند زبانه، تمام ابزارهای مورد نیاز برای چندزبانه کردن یک وبسایت وردپرسی، در اختیار شما قرار گرفته است.

HTTP چیست؟ چرا HTTP/2 سریعتر از HTTP/1.1 است؟

در پکیج آموزش طراحی سایت دو و چند زبانه، تمام ابزارهای مورد نیاز برای چندزبانه کردن یک وبسایت وردپرسی، در اختیار شما قرار گرفته است.

نصب HTTPS and SSL رایگان – بر روی سرور

در پکیج آموزش طراحی سایت دو و چند زبانه، تمام ابزارهای مورد نیاز برای چندزبانه کردن یک وبسایت وردپرسی، در اختیار شما قرار گرفته است.

نظرات

لغو پاسخ

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

قیمت :

رایگان!

امتیاز
0 از 0 رأی
بدون امتیاز 0 رای
رایگان!
تعداد دانشجو : 8
نوع دوره: غیر حضوری
سطح دوره: اولیه و متوسطه
پیش نیاز: آشنایی با کنترل پنل های سرور
زبان: فارسی
40 دقیقه
روش پشتیبانی: ارسال تیکت
میزان حجم زیاد درخواست به سرور : مدیریت و پردازش
درصد پیشرفت دوره: %100
شمشاد امیری خراسانی
شمشاد امیری خراسانی
Senior Software Developer

برنامه نویس آزاد

دسته: آموزش سرور های لینوکسی
درباره کوین دژ

کوین دژ یک استارت آپ در حوزه انفورماتیک  (هاست و سرور پلن های برنامه نویسی – آموزش و خرید سرویس) است که هر روز در حال رشد است

ما را دنبال کنید تا از آخرین خبر های این حوزه باخبر باشید استارت آپ ما هر روز در حال پیشرفت است ما را دنبال کنید
تمام حقوق برای > شرکت آریا هامان مهر پارسه با شماره ثبت 3877 محفوظ است

  • رفسنجان خیابان امام ساختمان آترین طبقه 2 شرکت آریاهامان
  • 09136523595
  • info@coindej.com
نماد ها
logo-samandehi
درگاه پرداخت مستقیم بانکی ما
سدادبانک سامان

تمام حقوق برای شرکت آریاهامان مهرپارسه محفوط است .

ورود

به راحتی از طریق حساب گوگل خود وارد و یا ثبتنام کنید !

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت