youtubers tesis sobre sirve resumida que para investigaciones investigacion historia caracteristicas asp.net performance memory crash cpu

asp.net - tesis - Replicación de bloqueos relacionados con la carga en entornos que no son de producción



tesis sobre youtube pdf (3)

Estamos ejecutando una aplicación personalizada en nuestra intranet y hemos encontrado un problema después de actualizarlo recientemente, donde IIS se bloquea con un uso de CPU del 100%, lo que requiere un reinicio.

En lugar de someter a los usuarios a bloqueos, hemos retrocedido a la versión anterior mientras determinamos una solución. El primer paso es reproducir el problema, pero no podemos.

Aquí hay algunos antecedentes:

Prod tiene un único servidor web virtualizado (vmware) con dos CPU y 2 GB de RAM. El servidor de la base de datos también tiene 4GB y 2 CPUs. También está en VMWare, pero hardware físico separado.

Durante el uso normal, la aplicación funciona bien. El proceso w3wp.exe normalmente se usa entre 5-20% de CPU y alrededor de 200 MB de RAM. CPU y RAM fluctúan levemente bajo uso normal, pero nada inusual.

Sin embargo, cuando comenzamos a tener problemas, la RAM aumenta drásticamente y la CPU se fija al 98% (o tanto como pueda). El sitio deja de responder, necesitando un reinicio de IIS. Al restablecer el grupo de aplicaciones no se hace nada en esta situación, se requiere un reinicio completo de IIS.

No sucede durante la noche (sin uso). Sucede más cuando el sitio está bajo carga, pero también ha sucedido en períodos no pico.

El primer paso para resolver este problema es reproducirlo. Para simular la carga, comenzamos a usar JMeter para simular el uso. Nuestro script de carga se basa en el uso real en el momento del bloqueo. Usando JMeter, podemos incrementar el uso bastante rápido (2-3 veces la carga durante el bloqueo) pero el sitio se comporta bien. La CPU está muy alta y el sitio se vuelve lento, pero el uso de la memoria es razonable y no hay nada pendiente.

¿Alguien tiene consejos sobre cómo reproducir un problema como este en un entorno que no sea de producción? Realmente nos gustaría reproducir el error, determinar una solución, luego probar nuevamente para asegurarnos de haberlo resuelto. Durante el proceso, hemos encontrado varias cosas pequeñas que hemos mejorado que podrían resolver el problema, pero realmente me sentiría mucho más seguro si pudiéramos reproducir el problema y probar la versión mejorada.

¡Cualquier herramienta, técnica o teoría muy apreciada!


¿Su env de prueba es el mismo realmente que en vivo? es decir, 2 instancias de vm separadas en 2 servidores físicos: ¿con la conexión de red y los tipos de cuenta?

¿Hay otras instancias en la base de datos?

¿Hay alguna otra aplicación web en IIS?

¿Es la configuración .Net correcta?

¿La configuración del conjunto de aplicaciones es adecuada para las cuentas de servicio? Intente ver esto - Artículo MS sobre II6 Optmising para rendimiento

Muchos trucos.


Puede encontrar información sobre cómo solucionar este tipo de problema en esta entrada de blog . Su blog es generalmente un buen recurso de depuración.