se usa el sistema Linux, la computadora se vuelve muy buena, encontró que el proceso php-cgi está ocupando cpu, la tasa de ocupación ha alcanzado el 100%, ¿qué es? ¿Qué causa esta situación? La siguiente pequeña serie le presentará el sistema Linux php-cgi ocupa el 100% de la solución.
Directorio Web logs /home /hosts_log
archivo de registro tiene un sitio web correspondiente ID
directorio de registro de php-cgi /usr ///php_fcgi registros locales
php-fpm.log
slow.log
Ver el archivo de registro básicamente resuelve el problema, el sitio web es pirateado y subió un archivo php ddos, por supuesto, si este no es el problema Puede verificar si es un problema del programa. A veces, el uso de la función file_get_contents también puede hacer que la CPU sea del 100%.
En php.ini, hay un parámetro max_execution_time que establece el tiempo máximo de ejecución de un script PHP, pero en php-cgi (php-fpm) este parámetro no funcionará. Los parámetros reales que pueden controlar el tiempo máximo de ejecución de un script PHP son los siguientes parámetros en el archivo de configuración php-fpm.conf:
El tiempo de espera (en segundos) para atender una única solicitud después de la cual se terminará el proceso de trabajo
Se debe utilizar cuando la opción ‘ max_execution_time ’ ini no detiene la ejecución del script por algún motivo
‘ 0s ’ significa ‘ off ’
"value name = " request_terminate_timeout " 》 0s "/value"
El valor predeterminado es 0 segundos, lo que significa que el script PHP continuará ejecutándose. Por lo tanto, cuando todos los procesos php-cgi están bloqueados en la función file_get_contents (), el servidor web Nginx + PHP ya no puede procesar nuevas solicitudes de PHP, y Nginx devolverá "502 Bad Gateway" al usuario. Es necesario modificar este parámetro y establecer un tiempo máximo de ejecución para un script PHP, pero el paliativo no es una cura. Por ejemplo, cambie a "nombre de valor = " request_terminate_timeout "" 30s "/value". Si file_get_contents () ocurre para obtener contenido web más lento, esto significa 150 procesos php-cgi, que solo pueden procesar 5 por segundo. Las solicitudes, WebServer también son difíciles de evitar < 502 Bad Gateway ".
Para resolverlo completamente, solo puede cambiar el hábito de usar directamente file_get_contents, pero modifíquelo un poco, agregue un tiempo de espera e implemente la solicitud HTTP GET de la siguiente manera. Si tiene problemas, puede empaquetar el siguiente código en una función.
"? Php
$ ctx = stream_context_create (array (
‘ http ’ => array (
‘ timeout ’ = "1 //Establecer un tiempo de espera en Segundos
)
)
);
file_get_contents (" http: //www.111cn.net/", 0, $ ctx );;
? 》
Por supuesto, si la página html se genera como dedecms, la CPU también será 100%.
El proceso php-cgi de Linux ocupa el 100% de la solución a la CPU que se presenta aquí, existe la posibilidad de envenenamiento, lo que requiere un tratamiento antivirus.
Ubuntu instalar el controlador de gráficos y, a veces no tan bien, mostrará un erro
Si no entiende el archivo de reemplazo de la operación en línea del sistema Linux, es fácil provocar
Node.js es un script de uso común en sistemas Linux y tiene una amplia gama de apli
Los usuarios de Linux tienen muchas personas que usan svn, pero ahora muchos usuarios han cambiado a
Linux restaura el archivo por error con el comando lsof.
Cómo resolver el problema del sistema Linux Swap agotamiento
Cómo incorporar el decodificador en el sistema Debian nativo
¿Cómo configurar los permisos del comando sudo del sistema Linux?
Resumen de métodos para restringir los su-permisos de usuario en sistemas Linux
Cómo proteger permisos en archivos bajo Linux
Cómo instalar diferentes versiones de Linux en la misma computadora
El sistema Linux utiliza el método FTP mediante el comando
Guía del método de extensión xfs de Linux
El comando df de Linux usa el resumen de la instancia
Ejemplo de operación de tamaño de imagen de compresión por lotes de CentOS
Solicitud de solicitud de compra en la tienda Win10 "Inténtelo de nuevo más tarde" Cómo hacer
Windows 8 establece la conexión vpn tutorial detallado
Cambie la ubicación de almacenamiento de la carpeta temporal para que esté en línea más rápido
El sistema VISTA no puede obtener una vista previa de la solución de protector de pantalla
Asignación de máscara de subred del servicio DHCP
Al instalar win7, "Windows no se puede instalar ... con el formulario de partición GPT"
Cómo implementar la seguridad de comunicación SNMP en Win2K
Versión o se ha determinado para iniciar la compilación de Windows 8.1 RTM