Процессы php5-fpm загружают процессор

K
На сайте с 10.01.2015
Offline
110
2146

Имеется сайт на Nginx + PHP5-FPM. При вводе команды Top в SSH появляются такие показатели:

top - 04:33:01 up 1 day,  1:47,  1 user,  load average: 6.01, 2.44, 2.47

Tasks: 154 total, 13 running, 140 sleeping, 1 stopped, 0 zombie
%Cpu(s): 97.0 us, 2.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.2 si, 0.5 st
KiB Mem: 2061184 total, 1897596 used, 163588 free, 124272 buffers
KiB Swap: 522236 total, 29256 used, 492980 free, 154516 cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10557 www-data 20 0 414m 77m 35m R 11.0 3.9 0:00.82 php5-fpm
10558 www-data 20 0 404m 67m 35m S 11.0 3.3 0:00.82 php5-fpm
10455 www-data 20 0 415m 86m 43m R 10.6 4.3 0:05.84 php5-fpm
10556 www-data 20 0 409m 72m 35m R 10.6 3.6 0:00.82 php5-fpm
10565 www-data 20 0 414m 76m 35m R 10.6 3.8 0:00.75 php5-fpm
10567 www-data 20 0 413m 76m 35m R 10.6 3.8 0:00.75 php5-fpm

Собственно каждому посетителю сайта отводится процесс php5-fpm. Если таких процессов более 3-4, то показатель load average: переваливает за 2.00

У меня 2-ядерная VPS, поэтому нагрузка на процессор получается всегда выше нормы, соответственно все работает медленно. Кто знает, в чем проблема? или куда хотя бы копать?

lealhost
На сайте с 07.06.2014
Offline
136
#1
Kepus:

Собственно каждому посетителю сайта отводится процесс php5-fpm. Если таких процессов более 3-4, то показатель load average: переваливает за 2.00
У меня 2-ядерная VPS, поэтому нагрузка на процессор получается всегда выше нормы, соответственно все работает медленно. Кто знает, в чем проблема? или куда хотя бы копать?

Сайт пробовали запускать в других PHP режимах?

Нужно смотреть скрипты сайта в первую очередь и все логи в уровне debug.

K
На сайте с 10.01.2015
Offline
110
#2

Как именно смотреть эти скрипты? Так не должно быть?

---------- Добавлено 31.05.2015 в 13:23 ----------

lealhost:
Сайт пробовали запускать в других PHP режимах?
Нужно смотреть скрипты сайта в первую очередь и все логи в уровне debug.

Другие режимы пробовал, примерно тоже самое.

Сейчас отключил все плагины на сайты, но ситуация по-прежнему такая же.

---------- Добавлено 31.05.2015 в 14:20 ----------

Забавно, но на каждого посетителя сайта отводится примерно 15% двух ядер CPU. Не думаю, что так должно быть....

---------- Добавлено 31.05.2015 в 14:29 ----------

Я думаю мне нужно сделать перезагрузку Fast-FPM если время ожидания больше нескольких секунд например. Можно ли это реализовать?

То есть например пользователь грузит страницу более 5 секунд, затем сервер Fast-FPM сам перезагружается, пользователь на доли секунды видит 502 ошибку, а затем сразу открывается его ссылка.

Andron_buton
На сайте с 19.07.2007
Offline
270
#3
Kepus:
пользователь на доли секунды видит 502 ошибку, а затем сразу открывается его ссылка.

если пользователь видит 502, то ему придется уже нажимать F5.

В общем не выдумывайте. Либо думайте как оптимизировать скрипты, всякие долгие конекты к базе, вычисление капчи по супералгоритму или расчет числа Пи до милиона знаков после запятой, либо хотя бы поставьте всякие акселераторы типа apc, xcache.

K
На сайте с 10.01.2015
Offline
110
#4

Да вроде бы стоит APC. В info.php показывает, что он включен.

AU
На сайте с 03.09.2009
Offline
88
#5

У вас часть процессов находится в состоянии "S" - т.е. в состоянии ожидания другого процесса. Что у вас с базой данных? Включите slow query log - лог медленных запросов (http://stackoverflow.com/questions/2403793/how-can-i-enable-mysqls-slow-query-log-without-restarting-mysql).

Кроме этого, давайте просто посмотрим с помощью firefox + firebug что именно тормозит про открытии страниц сайта. Так более-менее станет понятно где узкое место.

Unix в вопросах и ответах https://unixhow.com (https://unixhow.com)
K
На сайте с 10.01.2015
Offline
110
#6
adm.unix:
У вас часть процессов находится в состоянии "S" - т.е. в состоянии ожидания другого процесса. Что у вас с базой данных? Включите slow query log - лог медленных запросов (http://stackoverflow.com/questions/2403793/how-can-i-enable-mysqls-slow-query-log-without-restarting-mysql).

Кроме этого, давайте просто посмотрим с помощью firefox + firebug что именно тормозит про открытии страниц сайта. Так более-менее станет понятно где узкое место.

www.applestage.com

Готов выслушать рекомендации.

Roman_Pogorelov
На сайте с 07.11.2011
Offline
58
#7
Собственно каждому посетителю сайта отводится процесс php5-fpm.

Настройте кеширование, например memcached или даже просто средствами nginx и нагрузка на VPS будет намного ниже.

K
На сайте с 10.01.2015
Offline
110
#8

Memcached может работать в паре с apc?

Andreyka
На сайте с 19.02.2005
Offline
822
#9

Может. Если ваши скрипты умеют.

Не стоит плодить сущности без необходимости

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий