Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Apache _ Wysokie zużycie procesora PHP-fpm56

Napisany przez: nikos 5.08.2017, 11:00:00

Witam,
Dostałem dostęp do strony która chodzi b. wolno. Zalogowałem się do serwera przez ssh i po uruchomieniu komendy top
Okazuje się że proces PHP-fpm56 powoduje ze obciążenie procesora jest ok 97 cały czas

W jakis sposób można się dowiedzieć co dokładnie powoduje takie obciążenie. W jednej chwili jest ok 40osób na stronie.

Strona ma generator w którym generuje pliki wykorzystując canvas

9 core
18GB ram

Proszę o wskazówki w jaki sposób można zidentyfikować problem.
Dostawca serwera napisał mi tak:

Problem lezy po stronie skryptow lub uderzenia ruchu. Z naszej strony mozemy probowac jedynie zwiekszac zasoby serwera.


Napisany przez: vokiel 5.08.2017, 12:33:02

Zgraj sobie kod, odpal lokalnie (jakiś Docker w tej samej konfiguracji co serwer), dodaj xdebug z włączonym profilerem.
Następnie użyj jakiegoś narzędzia do analizy i zobacz gdzie jest wąskie gardło.

https://xdebug.org/docs/profiler

Napisany przez: nikos 8.08.2017, 10:27:22

Dzięki,
Walczę z przekierowaniami bo na localhost wrzuca mnie w adres tej strony muszę pogrzebać w ustawieniach.
Ustaliłem, że jeden ze skryptów generujący 18 obrazów za każdym razem ładowania odpowiedniej strony wykorzystuje dużo zasobów procesora. Wywaliłem jest duża poprawa.

Teraz walczę z pamięcią bo jej wykorzystanie rośnie do prawie 18GB czyli max.
Procesy php-fpm56 w stanie S czasami zajmują nawet 600mb

Czy to jakiś leak memory?
Czekam na email z ustawieniami php-fpm od administratora serwera. Wczoraj monitorowałem wszystko za pomocą HTOP i pokazywał wysokie zużycie dziś mam w cached memory ok 10GB (być może admin serwera coś zmienił) i nie ma żadnych alertów na temat pamięci. HTOP odejmuje chyba cached oraz swap z całkowitej użytej pamięci. Zwykłe polecenie TOP pokazuje, że używam 18GB

właśnie doszła konfiguracja

Kod
user = $pool
group = $pool
listen = /usr/local/php56/sockets/$pool.sock
listen.owner = $pool
listen.group = apache
listen.mode = 660
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 20


A tu jak wyglądają procey


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)