Cómo resolver los problemas de memoria y CPU de w3wp

  
En WINDOWS2003 IIS6, el uso de memoria de w3wp a menudo no se libera a tiempo, lo que provoca una respuesta lenta del servidor.
Caso actual
Configuración del servidor
Xeon 2.8G
Memoria 512M
Disco duro SCSI 2 (imagen flexible)
Windows 2003 del sistema
ahora cuelga un desarrollo asp.net El sitio web tiene una pequeña cantidad de tráfico, pero hay uno. El problema es que cada vez que el servidor se ejecuta durante 2 o 3 días, el acceso al sitio web es particularmente lento y es normal después de reiniciar el servidor.
Ver el proceso usando la memoria, se encontró que w3wp.exe y sqlservr.exe procesan la memoria es bastante grande a más de 170 M (cada uno), la memoria física disponible está casi agotada (la memoria utilizada por el reinicio del servidor es muy pequeña Solo 40 M cada uno), el sitio web anterior se colgó en una máquina virtual, la base de datos se colgó por separado y esto nunca sucedió.
Más tarde, la versión original se trasplantó al nuevo servidor. Este problema también es un problema. En el Administrador corporativo de SQL, se encuentra que el proceso SQL tiene muchos problemas. El proceso causado por .net está inactivo pero ocupa la memoria. Libere
Tome acción:
IIS Service Manager ---- "Grupo de aplicaciones ----" Agregue su aplicación y establezca la memoria máxima, se reiniciará automáticamente cuando el programa alcance la memoria máxima.
Actualice la memoria a 2G, el tráfico es relativamente alto, generalmente se reiniciará después de 24 horas de ejecución, la memoria no se agota, el proceso W3WP cuenta con 189 megabytes, las cuentas SQL para más de 200 megabytes Tienes que reiniciar, o todo el sitio quedará paralizado.
Solución 1:
w3wp.exe es su host de aplicación ASP.NET, si utiliza una gran cantidad de Session, Cache y otros recursos, y el supermercado Session es muy largo, entonces la huella de memoria es relativamente grande. Los grupos de aplicaciones son una característica para aumentar el rendimiento, pero también consumen mucha memoria. Además, desactive la mayoría de los servicios en Windows Server 2003 (el que se puede desactivar), también puede guardar una parte de la memoria
1. Se sospecha en la aplicación de CACHE,
2. CACHE tiene una gran cantidad de datos < BR> 3. Actualice con frecuencia CACHE
4. No hay manera de diseñar CACHE
Solución 2:
Haga un seguimiento del registro de llamadas SQL, registre la hora cada vez que escriba una gran cantidad de datos en CACHE o SESSION Vea si es demasiado frecuente
1. En win2003, el proceso asp.net es w3wp.exe
2.512M el uso personal de la memoria es suficiente, pero ponerlo en el servidor no es suficiente, especialmente win2003 Asp.net servidor sql. Especialmente el servidor sql, él está muy comiendo memoria, si no está controlado, ocupará toda la memoria física (solo decenas de M dejaron 100M). Win2003 ocupará alrededor de 150M. No queda nada.
3. Optimice el programa asp.net, como se dijo en la parte superior, use menos o ninguna aplicación de caché de sesión y así sucesivamente, y luego no hay lugar para pasar las páginas, el cambio de página no es bueno Toma mucha memoria.
4. Limita la memoria sql. Enterprise Manager - atributos de SQL (generalmente locales) - etiquetas de "memoria". Mire la configuración de memoria aquí y cambie el valor máximo a 100M.
Solución 3:
Investigado un poco, puede hacer la siguiente configuración:
1, en IIS para cada sitio para una configuración de grupo de aplicaciones por separado. 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. Al mismo tiempo, establezca el número de procesos w3wp que se ejecutan al mismo tiempo en 1. Luego, configure la memoria o la CPU ocupada más de cuánto, se recuperará automáticamente la memoria
En general, esto se puede resolver. Sin embargo, todavía habrá sitios web individuales que no se podrán publicar correctamente debido a problemas de procedimiento.
Entonces, ¿cómo puedo saber qué sitio web?
1, agregue el campo pid de visualización en el administrador de tareas. Puede ver el proceso pid
que ocupa la memoria más alta o cpu, y ejecutar 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. De esta manera, puede ver el grupo de aplicaciones correspondiente al pid
3 y ver el sitio web correspondiente al grupo de aplicaciones en el iis, está bien.
Solución 4:
El sistema Jianyi 2003 instaló al menos 1G de memoria.
w3wp.exe es un proceso iis en 2003, ya que sql ocupa la memoria, puede deberse a que su sql no está configurado para ocupar el límite de la memoria.
Bajo IIS6, a menudo la memoria w3wp.exe y el uso de CPU no pueden Se libera a tiempo, lo que hace que el servidor responda lentamente.
Resuelva demasiado el uso de memoria, puede hacer la siguiente configuración:
1, en IIS para cada sitio para una configuración de grupo de aplicaciones por separado. 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, en IIS para cada sitio para una configuración de grupo de aplicaciones por separado. Es decir, no se afecta entre sí.
2, configure la supervisión de la CPU del grupo de aplicaciones, no más del 25% (el servidor es 4CPU), actualice cada minuto, cierre cuando se exceda el límite.
Según w3wp para obtener ese grupo de aplicaciones:
1, agregue el campo pid de visualización en el administrador de tareas. Puede ver el proceso pid
que ocupa la memoria más alta o cpu, y ejecutar 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 Vbs, primero debe ir al directorio manualmente 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 web correspondiente al grupo de aplicaciones en iis, De acuerdo, haga las restricciones de CPU o memoria anteriores, o revise el programa para ver si hay bucles muertos o similares.
Copyright © Conocimiento de Windows All Rights Reserved