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

Я имею

  • php-fpm 7.0.11 - с ионным кубом
  • 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

0 ответов

Другие вопросы по тегам