Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [nginx][php5-fpm][Symfony2] Zapełnianie dostępnej puli wątków przy niewielkim ruchu
Forum PHP.pl > Forum > PHP > Frameworki
Vail
Witam,

borykamy się aktualnie z problemem wątków w php5, nasza architektura to nginx i php5-fpm a aplikacja stoi na symfony 2.3. Problem wygląda tak że podczas testowania za pomocą jMetera przy 50 użytkownikach php tworzy maksymalną ilość wątków i aplikacja klęka. Starsza wersja apki napisana w pure php wytrzymuje 4tys. uu na raz. Moglibyście wskazać gdzie możemy szukać problemu?
pyro
lol oneeyedsmiley02.png może w kodzie aplikacji?
Vail
łał, dzięki za tak wnikliwą anailzę, nie wpadlibyśmy na to.

Wyeliminowaliśmy wszystkie błędy które powodowały wywalanie się skryptu przedwcześnie, logi php są czyste więc to nie jest problem tego że proces kończy się przedwcześnie i nie zwalnia zasobów.
Czy ktoś z was ma może doświadczenie z konfiguracją phpa w takiej architekturze? Jaki macie limit wątków?
sowiq
Ja bym chyba zaczął od sprawdzenia aplikacji pod kątem wąskich gardeł. Polecam Xhprof.
ohm
Może problem cache'owania? Tzn może zbyt rzadko używane?
Vail
Cytat(sowiq @ 8.04.2014, 15:27:10 ) *
Ja bym chyba zaczął od sprawdzenia aplikacji pod kątem wąskich gardeł. Polecam Xhprof.


Czy mógłbyś doradzić coś na początek? Używasz xhprof z symfony? Ciężko mi jest aktualnie nawet stwierdzić w jakich jednostkach podawane są wszystkie wartości wink.gif
ano
Ok ale nie podałeś najważniejszych danych:
1. Ile req/s robicie przy tych 50 concurrent users? (Bo domyślam się, że takie znaczenie ma u Ciebie "użytkownik")
2. Jakie response time'y macie przy tylu użytkownikach?
3. Jaki response time macie przy jednym wątku (1 conc. user)?
4. Na ile macie ustawione max procesów php?

Co do optymalizacji s2/doctrine:
- W scenariuszu testowym używacie doctrine? - http://labs.octivi.com/mastering-symfony2-...mance-doctrine/
- Zoptymalizowaliście Symfony2? APC włączone? - http://labs.octivi.com/mastering-symfony2-...ance-internals/
Vail
Cytat(ano @ 9.04.2014, 21:00:00 ) *
Ok ale nie podałeś najważniejszych danych:
1. Ile req/s robicie przy tych 50 concurrent users? (Bo domyślam się, że takie znaczenie ma u Ciebie "użytkownik")
2. Jakie response time'y macie przy tylu użytkownikach?
3. Jaki response time macie przy jednym wątku (1 conc. user)?
4. Na ile macie ustawione max procesów php?

Co do optymalizacji s2/doctrine:
- W scenariuszu testowym używacie doctrine? - http://labs.octivi.com/mastering-symfony2-...mance-doctrine/
- Zoptymalizowaliście Symfony2? APC włączone? - http://labs.octivi.com/mastering-symfony2-...ance-internals/



Co do optymalizacji symfony2 to oczywiście mamy wpięte APC, korzystamy z cachea dla doctrinea (też w APC), sesje wyciągneliśmy do memcacheda, mamy vanisha. Z tego względu wydaje nam się że pod względem architektury to ciężko coś poprawić.

Resztę muszę sprawdzić ale limit procesów jest ustawiony na 64
ano
Macie varnisha - no ok, ale jaki hit ratio przy takim scenariuszu testowym? 0%?... wink.gif
Jeśli jmeter uderzalby zawsze w zcacheowane zasoby w varnishu to 10.000 req/s to minimum wink.gif

Na oko - jakie średnie czasy odpowiedzi? 2 sec?
Btw. Mozesz zrobić printscreena toolbara profilera S2 ze strony która się najdłużej Wam ładuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.