VestaCP phpfcgid şablon konfiqurasiya prosesinin optimallaşdırılması çox yaddaş tükənməsi 500 xətası

VestaCP veb xidməti üçün "phpfcgid" şablonunu seçdikdən sonra çox sayda PHP-CGI prosesi yaddaşı tez bir zamanda tükəndirdi.

  • Serveri yenidən başlatdıqdan sonra bir neçə saat yaddaşım tükənirdi.
  • Əvvəllər boş olan PHP-CGI prosesi məhv edilmir və bir proses ən azı 1M yaddaş sərf edən 20-yə yaxın alt proses işlədir.

SSH-də istifadə olunur htop əmri (quraşdırma tələb olunur), bu statusa baxa bilərsiniz ▼

VestaCP veb xidməti üçün "phpfcgid" şablonunu seçdikdən sonra çox sayda PHP-CGI prosesləri yaddaşı tez bir zamanda tükəndirdi.

Əgər htop əmrindən istifadə edərkən "-bash: htop: komanda tapılmadı" səhv mesajı alsanız, həll üçün bu təlimata baxın ▼

PHP-CGI proseslərinin çoxluğu yaddaşın tez tükənməsinə səbəb oldu. Problem VestaCP-nin CentOS phpfcgid şablonunda optimallaşdırılmamış konfiqurasiyadan istifadə etməsindədir .

  • phpfcgid şablonunda VestaCP, 1 uşaq prosesini işə salmaq üçün 20 PHP-CGI prosesi təyin edin.

görmək /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Faylın 13-cü sətri:

export PHP_FCGI_CHILDREN=20

Bununla belə, belə bir quraşdırma PHP alt proseslərinin idarə edilməsi sənədlərindəki Apache xəbərdarlığını pozur:

PHP uşaq proseslərinin idarə edilməsi ( PHP_FCGI_CHILDREN ) həmişə mod_fcgid ilə deaktiv edilməlidir, bu da bir anda yalnız bir sorğunu yaratdığı tətbiq proseslərinə yönləndirəcək; beləliklə, PHP tərəfindən yaradılan hər hansı bir uşaq prosesindən effektiv şəkildə istifadə olunmayacaq. (Bundan əlavə, PHP uşaq prosesləri düzgün şəkildə dayandırılmaya bilər.) Varsayılan olaraq və PHP_FCGI_CHILDREN=0 mühit dəyişəni ayarı ilə PHP uşaq proseslərinin idarə edilməsi deaktiv edilir.

Çünki Apache-nin mod_fcgid modulunda PHP-CGI prosesi yalnız bir sorğuya cavab verə və eyni anda işləyə bilər, PHP-CGI uşaq prosesi çox səmərəsizdir.

Buna görə də, PHP alt proseslərinin idarə edilməsi üçün parametrlər birbaşa deaktiv edilməlidir ▼

PHP_FCGI_CHILDREN=0

Eyni zamanda, artıq yaradılmış virtual hostunuz varsa, bütün vebsaytların konfiqurasiya fayllarını dəyişdirməlisiniz ▼

/home/用户名/web/域名/cgi-bin/fcgi-starter

fcgi-starter konfiqurasiya faylını açdıqdan sonra aşağıdakı ▼ daxil edin

export PHP_FCGI_CHILDREN=20

▼ olaraq dəyişdirildi

export PHP_FCGI_CHILDREN=0
  • Dəyişiklikdən sonra PHP alt prosesinin idarə edilməsi mod_fcgid rejimində söndürüləcək.
  • PHP-CGI prosesi daha çox yaddaşa qənaət edə biləcək uşaq prosesləri yaratmayacaq.

Həmçinin, VestaCP boş proseslər üçün sonlandırma mexanizmi təyin etmir:

  • Bütün yeni icra edilən PHP-CGI prosesləri sistem yenidən işə salınana qədər yaddaşdan istifadə etməyə davam edəcək.

Bunu düzəltmək üçün mod_fcgid konfiqurasiya faylını əlavə edin /etc/httpd/conf.d/fcgid.conf ▼-ə aşağıdakı parametrləri əlavə edin

FcgidIdleTimeout 120
  • Apache-ni 2 dəqiqə (120 saniyə) boş qalan PHP-CGI proseslərini avtomatik öldürmək üçün təyin edin.

Quraşdırma tamamlandıqdan sonra Apache xidmətini ▼ yenidən başladın

service httpd restart

Xidmət yenidən işə salındıqdan sonra, əvvəllər HTOP-da göstərilən yüzlərlə PHP-CGI prosesi artıq göstərilməyəcək.

Tipik olaraq, tək bir Vesta CP istifadəçisi üçün tək bir PHP-CGI prosesi 30-40 MB yaddaş istehlak edir ki, bu da Linux hosti üçün kifayətdir.

Buna görə də, Vesta məzmununun və şablonlarının konfiqurasiyasını optimallaşdırmaq SEO -da üstün olmaq istəyən onlayn marketinq mütəxəssisləri üçün çox vacibdir.

Siz VestaCP panelində aşağıdakı dərsliklərə baxa bilərsiniz ▼

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Top gedin