Franciszek Krasowski: Zastanawialiście się kiedyś nad tym, czym jest PHP-PM? Jak działa? Jak wypada w porównaniu do innych popularnych rozwiązań? Czy jest wystarczająco stabilny? Franciszek Krasowski odpowie na wszystkie te pytania (a także na te, których jeszcze nie zadaliście).
8. Istotne informacje
• Workery mimo wszystko nie są stabilne
• Spore wycieki pamięci
• Resetowanesą po x czasu (konfigurowalne)
• Reset również po x requestachobsłużonych przez worker
• debug mode odświeża workery przy każdej zmianie
15. Zastosowania
• Wymaga abstrakcji Request-Response
• Nie działa na „czystym” PHP
• Działa bezproblemowo z Symfony (włącznie z 4.1)
• Laravel
• Drupal, Zend i CakePHP -> teoretycznie obsługiwane, ale zalecana ostrożność
• NIE działa z Wordpressem
21. Co będzie testowane?
• Wszystko skonteneryzowane
• PHP-PM + nginx (szybszy)
• FPM + nginx
• Apache server
• Baza z php 7.2.8 dla wszystkich kontenerów
• Kod wewnątrz kontenerów
• Symfony + Laravel
• Kod można znaleźć: https://gitlab.com/Franek.krasowski/php-pm-uszanowanko
22. Na czym będzie testowane?
• i5-4690k 4,2GHz-> 4 rdzeniowy
• 24GB RAM
• Ubuntu 17.04
• Docker 18.03.1
• Docker Compose 1.22.0
• Siege 4.0.2
37. Zestawienie
• PPM
• ponad 4x szybszy od FPM-a
• 2x od Apache
• PPM – zgubił 3 requesty w 10h,
Apache i FPM żadnego
• PPM -> najdłuższy maksymalny czas
requesta(1,04s)
1341,76
313,81
597,69
0
200
400
600
800
1000
1200
1400
1600
PHP-PM FPM Apache
Requests/s
38. Uruchomienie na serwerze z Rancherem
• Bieda serwery nie dały rady
obsłużyć requestów
• Wynik równy, ograniczony
możliwościami serwerów
• Requestobsługiwany nawet do
40s
• Większe obciążenie -> mniej
requestów/s
39. Podsumowanie
• Szybszy od klasycznego rozwiązania (chociaż stwierdzenie 15x szybszy to
przesada)
• Pamięciożerny
• „Gubi” niektóre requesty
• Potrafi się zamulić
• Duża apka (?)
• Hit czy kit?