PHP-FPM

Kasia Bielawska
>
Kasia Bielawska

Co to jest PHP-FPM?

PHP-FPM to zaawansowany menedżer procesów dla języka PHP, oparty na protokole FastCGI. Jest to rozwiązanie stworzone z myślą o zwiększeniu wydajności stron internetowych, zwłaszcza tych, które generują bardzo duży ruch. PHP-FPM działa jako osobna usługa (demon), która zarządza pulami procesów odpowiedzialnych za wykonywanie skryptów PHP na serwerze.

W tradycyjnych rozwiązaniach każde zapytanie do strony mogło powodować uruchomienie nowego procesu PHP, co mocno obciążało zasoby. PHP-FPM utrzymuje grupę „gotowych do pracy” procesów, dzięki czemu witryna reaguje znacznie szybciej. Z tego powodu technologia ta jest standardem, gdy wybierasz nowoczesny hosting wordpress, gdzie szybkość ładowania treści ma kluczowe znaczenie dla wygody użytkowników.

Jak działa PHP-FPM w praktyce?

Kiedy użytkownik odwiedza Twoją stronę, serwer WWW (np. Nginx lub Apache) przesyła zapytanie do PHP-FPM. Ten wybiera wolny proces z puli, wykonuje skrypt i błyskawicznie zwraca wynik. Po zakończeniu zadania proces nie jest zamykany, lecz wraca do puli, czekając na kolejnego odwiedzającego.

Dzięki takiemu podejściu, stabilny i szybki hosting www może obsłużyć znacznie więcej osób jednocześnie, nie powodując zawieszenia się serwera.

Najważniejsze ustawienia PHP-FPM to parametry związane z zarządzaniem pulą procesów, zwłaszcza:

  • pm – określa tryb pracy,
  • pm.max_children – maksymalna liczba procesów obsługujących żądania,
  • pm.start_servers – liczba procesów startowych,
  • pm.min_spare_servers i pm.max_spare_servers – liczba zapasowych procesów w trybie dynamicznym.

PHP-FPM obsługuje trzy główne tryby zarządzania procesami: static, dynamic i ondemand. W praktyce wybór zależy od tego, czy ważniejsza jest stała wydajność, oszczędność pamięci czy elastyczność przy zmiennym ruchu.

Co to są „pule procesów” (pools)?

Pule pozwalają na przypisanie konkretnych zasobów serwera do różnych zadań lub różnych stron. Możesz zdecydować, że jeden sklep internetowy ma do dyspozycji więcej procesów PHP niż prosty blog, co gwarantuje stabilność kluczowych usług.

Kiedy warto przejść na PHP-FPM?

Większość nowoczesnych dostawców hostingu oferuje PHP-FPM w standardzie. Jeśli jednak zarządzasz infrastrukturą samodzielnie i zauważasz, że Twoja strona zwalnia przy większej liczbie gości, wdrożenie menedżera procesów FastCGI jest najlepszym krokiem. W przypadku najbardziej wymagających projektów, takich jak duże portale informacyjne, optymalnym rozwiązaniem są serwery dedykowane, które dają największe pole do popisu przy konfiguracji pul procesów.