Очень странное использование ЦП с PHP-FPM/MYSQL/NGINX

Очень странное использование ЦП с PHP-FPM/MYSQL/NGINX

У меня есть

  • php-fpm 7.0.11 - с ioncube
  • nginx 1.10.x
  • мариадб 10.1

Я использую PHP-FPM для статики, у меня никогда не было с этим проблем. Высокая загрузка ЦП возникала случайным образом, а теперь она постоянная. Я не вносил никаких изменений.

На данный момент загрузка ЦП составляет 100%, а большинство процессов PHP-FPM находятся в состоянии R.

Вот верхний вывод Мой процессор имеет 16 потоков

top - 08:21:15 up 31 min,  2 users,  load average: 799.18, 782.54, 620.78
Tasks: 1082 total, 799 running, 283 sleeping,   0 stopped,   0 zombie
%Cpu(s): 98.5 us,  1.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 

Мой веб-сервер получает более 5000 запросов в секунду, но раньше при таком количестве запросов все было нормально.

Очень странно, потому что:

  • Если я заменю ioncubed на оригинальный исходный файл PHP, нагрузка уменьшится до 8, а использование процессора — всего до 15-20%.

  • Если я СОХРАНЯЮ Ioncube, но останавливаю MySQL, средняя загрузка и ЦП также уменьшаются.

  • Иногда, когда я меняю конфигурацию sysctl, загрузка процессора снижается на 10 секунд, но затем снова увеличивается до 100%.

Я не могу этого объяснить, потому что если бы это был ионкуб, у меня была бы проблема с пунктом 2), но у меня ее нет.

Я действительно потеряла волосы, пытаясь найти истинную причину этого, и это сводит меня с ума, потому что это произошло, хотя я ничего не меняла.

Мой файл sysctl выглядит следующим образом:

net.core.wmem_max= 1677721600
net.core.rmem_max= 1677721600
net.ipv4.tcp_rmem= 1024000 8738000 1677721600
net.ipv4.tcp_wmem= 1024000 8738000 1677721600
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 8000
net.ipv4.route.flush=1
fs.file-max=265536
net.core.somaxconn = 65535
vm.max_map_count=655300

Связанный контент