dan 2 Zgłoś post Napisano Lipiec 12, 2013 Mam sobie VPS, Debian 6, OpenVZ. Direct Admin, CB2.0. Tak sobie testuję ustawienia i wychodzi, że czas generowania strony przy konfiguracji PHP jako FastCGI jest dwukrotnie niższy niż przy konfiguracji PHP-FPM. Testy przeprowadzałem o różnych porach dnia, żeby wyeliminować "przycinkę" maszyny-matki VPSa. Czy faktycznie narzut na obsługę PHP-FPM jest tak duży, iż powoduje wolniejsze generowanie strony niż w przypadku korzystania z FastCGI? Konfiguracja PHP-FPM czas generowania strony to 0,12-0,14, gdy dla FastCGI to 0,25-0,35 sek.(wyniki średnie - kilkukrotne odświeżanie strony) PHP 5.4 + APC To normalne? Czy coś nie tak w konfiguracji? Ktoś ma jakieś doświadczenia w konfiguracji php w stosunku do uzyskiwanej szybkosci? I ostatecznie jako że zależy mi na szybkości generowania strony jaka jest przewaga w stosowaniu PHP-FPM w stosunku do FasCGI? Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Lipiec 12, 2013 Sam sobie przeczysz. Bo twierdzisz, że php-fpm powoduje wolniejsze generowanie strony niż FastCGI, a podając czasy, to czas FPM jest od tego FastCGI... niższy, więc wypada, że FPM szybciej przetwarza żądania... Udostępnij ten post Link to postu Udostępnij na innych stronach
dan 2 Zgłoś post Napisano Lipiec 13, 2013 Moja pomyłka - źle zredagowałem post, oczywiście dane na odwrót, tj. FastCGI jest faktycznie szybszy od PHP-FPM, czyli 0,12-0,14 FastCGI do 0,25-0,35 sek. dla PHP-FPM. @kafi - dziękuję za zwrócenie uwagi Udostępnij ten post Link to postu Udostępnij na innych stronach
megi 358 Zgłoś post Napisano Lipiec 14, 2013 Gwoli ścisłości to php-fpm też działa po fastcgi (FastCGI Process Manager). Podejrzewam, że różnica w wydajności wynika prędzej z Twojej konfiguracji niż różnic między menadżerami procesów. Ciężko jednak powiedzieć coś konkretniej, bo nie wiadomo ani jak to testowałeś ani na jakiej konfiguracji jednego i drugiego. Udostępnij ten post Link to postu Udostępnij na innych stronach
dan 2 Zgłoś post Napisano Lipiec 26, 2013 właśnie wróciłem do testowania, lekko zmienione środowisko. Strona testowa to joomla 2.5, php 5.5.1 z opcache. Sposób pomiaru: na początku korzystalem z dodateku do firefoxa, który podaje czas od żądania do pierwszej odpowiedzi z serwera. Jednak po zapytaniach o sposób pomiaru doszedłem do wniosku, że może być winny zarówno czas generowania strony jak i obsługa wygenerowanej od żądania do wysyłki do klienta. Tak więc odpaliłem konsolę debugowania joomli. I tak (po drugim odpaleniu po wypełnieniu cache): php-fpm: Application 0.001 seconds (+0.001); 0.34 MB (+0.343) - afterLoad Application 0.035 seconds (+0.034); 1.88 MB (+1.542) - afterInitialise Application 0.039 seconds (+0.003); 2.24 MB (+0.358) - afterRoute Application 0.056 seconds (+0.018); 2.73 MB (+0.490) - afterDispatch Application 0.128 seconds (+0.072); 4.23 MB (+1.501) - beforeRenderModule mod_roknavmenu () Application 0.157 seconds (+0.029); 4.86 MB (+0.626) - afterRenderModule mod_roknavmenu () Application 0.189 seconds (+0.032); 4.90 MB (+0.042) - afterRender przeglądarka dostała cokolwiek od serwera po 0,313 sek. Fastcgi: Application 0.000 seconds (+0.000); 0.33 MB (+0.332) - afterLoad Application 0.017 seconds (+0.017); 1.87 MB (+1.542) - afterInitialise Application 0.020 seconds (+0.003); 2.23 MB (+0.357) - afterRoute Application 0.027 seconds (+0.008); 2.72 MB (+0.490) - afterDispatch Application 0.045 seconds (+0.018); 4.22 MB (+1.501) - beforeRenderModule mod_roknavmenu () Application 0.054 seconds (+0.009); 4.85 MB (+0.626) - afterRenderModule mod_roknavmenu () Application 0.071 seconds (+0.017); 4.89 MB (+0.042) - afterRender przeglądarka dostała cokolwiek po 0,204 sek. Serwer to VPS OpenVZ, Debian 6 na którym jest tylko ta strona i nikt więcej nie korzysta. Testy powtarzałem o różnych porach. Zmiana php-fpm na fastcgi przez zmianę w konfiguracji DA options.conf i rekompilacji php oraz w ramach desperacji apache. @megi - no właśnie wiem, że php-fpm korzysta z fastcgi i to mnie dziwi, że takie różnice wychodzą... Jakieś sugestie, gdzie szukać przyczyny? Ew. jakie pliki konfiguracyjne wkleić, żeby bardziej doświadczeni mieli podstawę do wypowiedzi? Udostępnij ten post Link to postu Udostępnij na innych stronach
blackfire 185 Zgłoś post Napisano Lipiec 29, 2013 Ja bym pewnie zaczął od uruchomienia obu procesów pod strace -ff -ttT -s 10000 -o fcgi.strace /path/to/php-fcgi --opcje-php (dla php-fpm analogicznie). Masz duże różnice w czasie wykonania samego kodu PHP, co nie ma żadnego sensu patrząc po architekturze php-fcgi i php-fpm (po odebraniu requestu obydwa robią dokładnie to samo). Dasz sobie wyciąć obie nerki, że obydwa phpy korzystają z tych samych ustawień (php.ini)? Porównywałeś `phpinfo()`? php-fpm na pewno korzysta z opcache? Wyłącz go w obu SAPI i wtedy porównaj wyniki, może się okaże, że się to jakoś żre z fpmem. Może masz php-fpm skonfigurowane tak, że uruchamia jakąś dużą pulę procesów, która wypycha cache z pamięci? Udostępnij ten post Link to postu Udostępnij na innych stronach
dan 2 Zgłoś post Napisano Sierpień 4, 2013 (edytowany) @blackfire, @megi - dzięki za sugestie. Przekopałem się przez konfiguracje. Okazało się, że php-fpm ustawia open_basedir a konfiguracja przez fastcgi nie. Stąd różnica w prędkości odpalania skryptów. Jakie niebezpieczeństwo wnosi wyłączenie open_basedir przy korzystaniu z php-fpm, biorąc pod uwagę, że php jest uruchomiane jako dany user? Czy brak ustawienia open_basedir nadaje się na środowisko produkcyjne? Jak ustawiacie u siebie kwestie zabezpieczenia PHP na produkcyjnych serwerach? Edytowano Sierpień 4, 2013 przez dan (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach