Optymalizacja procesu konfiguracji szablonu VestaCP phpfcgid wyczerpanie wielu pamięci 500 błędów

Po wybraniu szablonu „phpfcgid” dla usługi sieciowej VestaCP duża liczba procesów PHP-CGI szybko wyczerpała pamięć.

  • W zasadzie brakowało mi pamięci przez kilka godzin po ponownym uruchomieniu serwera.
  • Poprzednio bezczynny proces PHP-CGI nie zostaje zabity, a jeden proces uruchamia prawie 1 podprocesów, zużywając co najmniej 20M pamięci.

Używane w SSH htop (wymagana instalacja), możesz zobaczyć ten status ▼

Po wybraniu szablonu „phpfcgid” dla usługi sieciowej VestaCP duża liczba procesów PHP-CGI szybko wyczerpała pamięć.

Jeśli pojawi się komunikat o błędzie „-bash: htop: nie znaleziono polecenia” podczas korzystania z polecenia htop, zapoznaj się z tym samouczkiem, aby uzyskać rozwiązanie ▼

Duża liczba procesów PHP-CGI powodowała szybkie wyczerpywanie się pamięci. Problem tkwi w tym, że VestaCP korzysta z niezoptymalizowanej konfiguracji w szablonie phpfcgid CentOS .

  • VestaCP w szablonie phpfcgid, ustaw 1 proces PHP-CGI, aby uruchomić do 20 procesów potomnych.

Widzieć /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Wiersz 13 akt:

export PHP_FCGI_CHILDREN=20

Jednak taka konfiguracja narusza ostrzeżenie Apache w dokumentacji zarządzania podprocesami PHP:

Zarządzanie procesami potomnymi PHP ( PHP_FCGI_CHILDREN ) powinno być zawsze wyłączone za pomocą modułu mod_fcgid, który będzie kierował tylko jedno żądanie na raz do procesów aplikacji, które utworzył. W związku z tym procesy potomne utworzone przez PHP nie będą efektywnie wykorzystywane. (Dodatkowo, procesy potomne PHP mogą nie zostać poprawnie zakończone). Domyślnie, przy ustawieniu zmiennej środowiskowej PHP_FCGI_CHILDREN=0 , zarządzanie procesami potomnymi PHP jest wyłączone.

Ponieważ w module Apache mod_fcgid proces PHP-CGI może odpowiadać tylko na jedno żądanie i działać jednocześnie, proces potomny PHP-CGI jest bardzo nieefektywny.

Dlatego ustawienia zarządzania podprocesami PHP powinny być bezpośrednio wyłączone ▼

PHP_FCGI_CHILDREN=0

Jednocześnie, jeśli masz już wygenerowany wirtualny host, musisz zmodyfikować pliki konfiguracyjne wszystkich witryn ▼

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

Po otwarciu pliku konfiguracyjnego fcgi-starter wstaw następujące ▼

export PHP_FCGI_CHILDREN=20

Zmień na ▼

export PHP_FCGI_CHILDREN=0
  • Po modyfikacji zarządzanie podprocesami PHP zostanie wyłączone w trybie mod_fcgid.
  • Proces PHP-CGI nie będzie już tworzył procesów potomnych, co może zaoszczędzić dużo pamięci.

Ponadto VestaCP nie ustawia mechanizmu zakończenia dla bezczynnych procesów:

  • Wszystkie nowo uruchomione procesy PHP-CGI będą nadal używać pamięci do momentu ponownego uruchomienia systemu.

Aby to naprawić, po prostu dodaj plik konfiguracyjny mod_fcgid /etc/httpd/conf.d/fcgid.conf Dodaj następujące ustawienia w ▼

FcgidIdleTimeout 120
  • Ustaw Apache, aby automatycznie zabijał procesy PHP-CGI, które są bezczynne przez 2 minuty (120 sekund).

Po zakończeniu konfiguracji uruchom ponownie usługę Apache ▼

service httpd restart

Po ponownym uruchomieniu usługi setki procesów PHP-CGI, które były wcześniej wyświetlane w HTTP, nie będą już wyświetlane.

Zazwyczaj pojedynczy proces PHP-CGI dla pojedynczego użytkownika Vesta CP zużywa od 30 do 40 MB pamięci, co w zupełności wystarcza dla hosta Linux.

Dlatego optymalizacja konfiguracji treści i szablonów Vesta jest kluczowa dla internetowych marketerów , którzy chcą osiągnąć sukces w SEO .

Możesz zapoznać się z poniższymi samouczkami na panelu VestaCP ▼

发表 评论

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

Przewiń do góry