Windows2003 IIS ocupa el 100% de los recursos de la CPU Solución

  

El siguiente es el escenario 1:

Fenómeno: cuando la máquina está depurando o permitiendo IIS, se interrumpe de manera anormal (como un fallo de alimentación) y luego IIS ejecuta la página nuevamente. Los recursos de la CPU ocupan el 100%, incluso si se reinician. Causa: cuando se produce una interrupción, IIS escribirá un registro de excepciones, pero en este momento, los caracteres confusos se escriben, lo que hace que IIS escriba un bucle infinito de registros, agotando los recursos del sistema. Puede ver lo anterior encontrando el archivo de registro de errores para el día en la ruta del sistema \\ System32 \\ Logfiles \\ W3SVC1. Solución: elimine el archivo de registro de errores del día en la ruta del sistema \\ System32 \\ Logfiles \\ W3SVC1, como ex060904.log, y luego reinicie IIS.

El siguiente es el escenario 2:

Entorno: win2003server + IIs + ASP + MSSQL

Fenómeno: De vez en cuando (indefinido, a veces unos minutos, a veces media hora) Una vez que se abre un sitio web muy lentamente, ya veces hay un tiempo de espera para abrir el sitio. En este momento, se ve el proceso del servidor y el uso de la CPU alcanza el 100%, de los cuales w3wp ocupa el 70 ~ 80%, y el SQL toma el 20 ~ 30%. Todas las operaciones del lado del servidor se vuelven lentas. Solución inicial: Siempre que ocurra el fenómeno, inicie sesión en el servidor y finalice el proceso w3wp o reinicie el servicio IIS. La operación promedio es de aproximadamente diez veces al día. Dado que el servidor se almacena en la sala de computadoras remota, todas las operaciones se controlan de forma remota. En el caso del acceso remoto, a veces es imposible conectarse a la ubicación remota. El administrador del servidor solo puede ser notificado por teléfono para reiniciar el servidor. Este proceso hace que los usuarios se quejen de la información en Internet. La mayoría de estos fenómenos se deben a un código de la página web irrazonable. La situación conducirá a tales fenómenos:

1. Los cachés del servidor, como la aplicación y la visualización, se utilizan en múltiples lugares en el código, lo que resulta en un uso excesivo de los datos del servidor. 2. El código tiene una sintaxis irrazonable, un bucle infinito, etc .; , especialmente la base de datos ACCESS; 4, instaló demasiados software o complementos de terceros, está en conflicto con IIS o el código de función de la página web.

La primera etapa de la investigación: de acuerdo con los materiales de referencia que se consultan, se analiza artículo por elemento

1. Todo el código del sitio web en el servidor está escrito por los diseñadores de la compañía, lo que puede confirmar que no hay demasiada llamada al servidor de caché. Gramática (excluir) 2, el código tiene una gramática irrazonable (no seguro) 3, según la situación, cuando la tasa de ocupación del proceso IIS aumenta, la tasa de ocupación SQL aumenta al mismo tiempo, debe ser el sitio de la base de datos SQL, según el juicio de fenómenos, la biblioteca O la tabla debería ser normal, se estima que los datos pueden estar equivocados; (no está seguro) 4, el lado del servidor, además de los servicios esenciales del sistema básico, antivirus y operación del sitio web, no hay software redundante de terceros, la probabilidad no es grande (excluido ).

Después del análisis y el juicio anteriores, la conclusión de que los elementos inciertos están conectados es que una gramática irrazonable del código de la página web del sitio web que usa la base de datos SQL hace que el uso de la CPU de los procesos IIS y SQL sea demasiado alto.

Solución de problemas de la segunda fase:

Determine el rango, luego continúe reduciéndolo. Dado que no hay muchos sitios en el servidor que usen bases de datos SQL, es fácil establecer un ID de proceso independiente para observar. Configure un grupo de aplicaciones por separado en el administrador de IIS para todos los sitios que usan bases de datos SQL y luego ingréselos a través de la interfaz CMD: iisapp -a Ahora vea y registre el número de ID de proceso de cada grupo de IIS. A través de la observación de múltiples fenómenos que reaparecen, hay un ID de proceso de IIS que es el culpable de este problema.

El siguiente es el esquema 3:

En IIS6, la memoria y el uso de la CPU de w3wp.exe a menudo no pueden liberarse a tiempo, lo que resulta en una respuesta lenta del servidor. Para resolver demasiado el uso de la memoria, puede hacer la siguiente configuración: 1. Configure un grupo de aplicaciones por separado para cada sitio web en IIS. Es decir, no se afecta entre sí. 2, establezca el tiempo de reciclaje del grupo de aplicaciones, el valor predeterminado es 1720 horas, se puede modificar según la situación. Luego, establezca la cantidad de uso de memoria (como 500M), se recuperará automáticamente.

Resuelva demasiado el uso de la CPU: 1. Configure un grupo de aplicaciones por separado para cada sitio web en IIS. Es decir, no se afecta entre sí. 2. Establezca la supervisión de la CPU del grupo de aplicaciones en no más del 25% (el servidor es 4CPU), actualice cada minuto y cierre cuando se exceda el límite.

De acuerdo con w3wp es el grupo de una aplicación: 1. Agregue el campo de pantalla pid en el administrador de tareas. Puede ver el proceso que ocupa la memoria más alta o cpu. 2. Ejecute iisapp -a en el símbolo del sistema. Tenga en cuenta que la primera vez que ejecute, se le solicitará que no admita js, haga clic en Aceptar. Entonces ejecútalo de nuevo. Esto mostrará el grupo de aplicaciones correspondiente al pid.
(iisapp es en realidad un script VBS almacenado en el directorio C: \\ windows \\ system32, el nombre completo es iisapp.vbs. Si usted y yo también estamos excluidos del programa de asociación predeterminado de Vbs, primero debe ir al directorio manualmente, primero Seleccione el método abierto y luego seleccione "Microsoft (r) Windows Based Script Host" para ejecutar, puede obtener la correspondencia entre el PID y el grupo de aplicaciones.) 3, para ver el sitio correspondiente del grupo de aplicaciones en iis, ok , haga las restricciones de memoria o CPU anteriores, o revise el programa para ver si hay bucles muertos y otros problemas.

Copyright © Conocimiento de Windows All Rights Reserved