Mam serwer Nginx + PHP5-FPM z kilkoma witrynami o dużym natężeniu ruchu.PHP5-FPM statyczne, dynamiczne czy na żądanie?
Z mojego zrozumienia PHP5-FPM basenów config, zrozumiałem, że:
statyczne = może być używany do natychmiastowego tworzenia procesów potomnych N więc nie muszą być otwarte/re-otwarty, są one już otwarte i mogą być używane w razie potrzeby, inaczej "śpią".
dynamic = można użyć do otwarcia ograniczonej liczby procesów podrzędnych i ponownego odrodzenia, a następnie po osiągnięciu limitu (min/max serwerów).
ondemand = Podaję maksymalną liczbę procesów podrzędnych do utworzenia, a następnie procesy potomne są tworzone na żądanie, gdy są potrzebne, i zamykane, gdy nie są już potrzebne, utrzymując niskie zużycie pamięci, ale wydłużając czas odpowiedzi o kilka milisekund.
Z moich testów z witryny WordPress wysokiego ruchu, zauważyłem, że:
Jeśli używam „statyczne”, na stronie internetowej jest na pewno szybszy i może obsługiwać natychmiast dużą liczbę jednoczesnych połączeń, ale pamięć zawsze zwiększa jego użycie, a po N godzinach wydaje się, że używa prawie całkowitej dostępnej pamięci RAM. Więc muszę używać cronjob do okresowego (co 1 godzinę) przeładowania PHP5-FPM z ponownym załadowaniem /etc/init.d/php5-fpm.
Jeśli używam "dynamiczny", to zużywa mniej pamięci RAM, ale po N równoczesnych połączeń występują częste błędy 502 (ale być może nie skonfigurowałem go zbyt dobrze).
Jeśli używam "ondemand", strona jest nieco wolniejsza (np. Czas odpowiedzi +50/100ms), ale może obsłużyć cały duży ruch bez użycia zbyt dużej pamięci RAM.
Więc moim osobistym wnioskiem byłoby, że "ondemand" jest naprawdę najlepszą metodą użycia w kategoriach niskiego/kontrolowanego użycia pamięci, jedynym minusem jest czas reakcji +50/100 ms, ale w moim przypadku nie jest to wielki problem.
Czy moje założenia są prawidłowe?
Sidenote: można ustawić 'pm.max_requests' mieć PHP-FPM pracowników restart po wnioski X obejść wycieku pamięci bez użycia crona i tak OnDemand z odpowiednią ilością pracowników rozpoczął natychmiast jest dobra. –
„ale pamięć zawsze zwiększa jego wykorzystanie” --- jak dokładnie sprawdzić, czy? – zerkms
André Zauważyłem, że nawet z pm.max_requests ustawiony na 50 Wzrosty pamięci (Wordpress + niestandardowe tematyczne + 20 wtyczek załadowany). – user2972081