PHP workers i procesy PHP są niezwykle istotne, ponieważ odpowiadają za przekierowania żądań na stronie. Działają głównie na witrynach typu WordPress. To właśnie dzięki nim możemy sprawnie korzystać ze stron nawet wtedy, gdy w jednym momencie przegląda ją więcej użytkowników. 

Czym są PHP workers?

PHP worker jest procesem działającym w tle, odpowiedzialnym za budowanie witryn oraz przetwarzanie zaplanowanych zadań. Generuje on strony HTML, określając ile niebuforowanych żądań jest w stanie obsłużyć witryna w danym momencie.

php worker - co to?

Dla lepszego zrozumienia tej kwestii, załóżmy, że witryna WordPress jest wyposażona w cztery PHP workers i nie ma ustawień buforowania stron. Jeżeli więc w danej chwili do witryny wpłynie np. 10 żądań od użytkowników, wówczas pierwsze cztery zostaną natychmiast przetworzone, a sześć będzie musiało poczekać aż tamte skończą się przetwarzać. PHP workers wykonują pracę dla każdego żądania na stronie pod warunkiem, że ta posiada kod PHP.

Oznaki niewystarczającej liczby PHP workers

Liczba PHP workers zależy od kodu PHP (chodzi tutaj o: zainstalowane wtyczki i motywy). Jeśli witryna nie zawiera dużej ilości kodu, wówczas przetwarzanie żądania odbywa się od razu. Nieco gorzej sprawa wygląda, gdy strona internetowa ma wiele zainstalowanych wtyczek, przy jednoczesnej małej ilości PHP workers. Jeśli żądań na stronie jest dużo więcej niż PHP workers, wówczas zaczyna się tworzyć kolejka. Nieraz, po dłuższym czasie strona zostaje załadowana, jednak zdarzają się sytuacje, kiedy starsze żądania są usuwane. Powoduje to błąd 504, który wyświetla się na monitorze. 

Innym błędem spowodowanym niewystarczającą ilością braku PHP workers jest błąd 502, pojawiający się po minucie oczekiwania na załadowanie strony. Aby rozwiązać tę trudność potrzebne są dodatkowe PHP workers,  potrzebne do kolejnych przekierowań i szybszego ładowania się strony. 

Powiązanie pomiędzy PHP worker, a zużyciem procesora (CPU) 

Bardzo ważną zależnością jest powiązanie między PHP worker, CPU, czyli procesorem. Jeżeli zasoby procesora są za słabe, to pomimo odpowiedniej ilości PHP workers, nie uzyskamy odpowiednich efektów. Co prawda żądania będą przetwarzane wzorcowo, ale z o wiele mniejszą wydajnością. Dzieje się tak, ponieważ za wydajnośc witryny odpowiedzialny jest procesor. Jeżeli jest on słaby, PHP workers nie ma większego znaczenia. 

Podobnie dzieje się, gdy procesor ma odpowiednią wydajność, ale jest zbyt mała ilość PHP workers. Również w tym przypadku witryna będzie działała słabo, ponieważ zbyt mała liczba PHP workers może nie dać rady przetworzyć wszystkich żądań. 

Ile PHP workers potrzebujesz?

Dobrym sposobem na ograniczenie oraz optymalizację wykorzystania PHP workers jest zmniejszenie procesora i zasobów PHP wymaganych do realizacji żądań danej witryny. Aby to zrobić, warto skonfigurować warstwy buforowania za pomocą jednego z dwóch przedstawionych poniżej sposobów. Pierwszy z nich polega na buforowaniu na poziomie serwera za pomocą serwera WWW, takiego jak: Nginx. Drugi to buforowanie stron oparty na wtyczkach, np. wtyczka WordPress o nazwie WP – Rocket. 

ile php workers potrzeba

Innym sposobem jest zoptymalizowanie kodu PHP, który pomaga zmniejszyć użycie PHP workers. Polega to między innymi na wybieraniu “lekkich” motywów, gdyż zbyt rozbudowane powodują niską wydajność PHP, wpływając negatywnie na jego działanie. Ważne więc, aby szablon był dostosowany do tematyki strony, ale niezbyt obszerny. 

Kolejny sposób polega na wybraniu odpowiedniego hosta, np. na WordPressie, który byłby nastawiony na wydajność witryny. Wszystkie elementy są ze sobą ściśle powiązane, ponieważ wydajność PHP workers jest ściśle związana z używanym procesorem i pamięcią RAM. Jeżeli hosting działa na nowoczesnym serwerze z najnowszym sprzętem, wówczas następuje optymalizacja wykorzystania PHP workers. 

W razie kłopotów, dobrym rozwiązaniem jest praca z ekspertem, który specjalizuje się w sprawach wydajności. Jego rady oparte na doświadczeniu mogą okazać się pomocne w dalszym prowadzeniu i ulepszaniu witryny internetowej. 

Autor