Uso de CPU muy extraño con PHP-FPM/MYSQL/NGINX

Uso de CPU muy extraño con PHP-FPM/MYSQL/NGINX

Tengo

  • php-fpm 7.0.11 - con ioncube
  • nginx 1.10.x
  • mariadb 10.1

Estoy usando PHP-FPM para estática, nunca tuve ningún problema con esto. El uso elevado de CPU se produjo de forma aleatoria y ahora es permanente. No hice ningún cambio.

En el momento en que hablamos, el uso de la CPU es del 100% y la mayoría de los procesos PHP-FPM están en estado R.

Aquí hay un resultado superior. Mi CPU tiene 16 subprocesos.

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 

Mi servidor web recibe más de 5000 solicitudes por segundo, pero con esta cantidad todo estaba bien antes.

Es muy extraño porque:

  • Si reemplazo el ioncubed con la fuente original del archivo PHP, la carga disminuye a 8, así como el uso de la CPU a solo el 15-20%.

  • Si MANTENGO el ioncube, pero detengo el mysql, el promedio de carga y la CPU también están disminuyendo.

  • A veces, cuando cambio la configuración de sysctl, la CPU disminuye durante 10 segundos pero luego vuelve a funcionar al 100%.

No puedo explicar esto, porque si fuera el ioncube, tendría el problema con el 2) pero no lo tengo.

Realmente se me ha caído el cabello tratando de encontrar la verdadera causa y me vuelve loca porque eso pasó cuando no cambié nada.

Mi archivo sysctl es el siguiente:

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

información relacionada