2009-01-21 15 views
12

Tal vez alguien puede arrojar algo de luz sobre esta simple pregunta:¿Por qué incluso reciclar un grupo de aplicaciones?

Tengo una aplicación web .NET que ha sido minuciosamente examinada. Carga una memoria caché por appdomain (proceso) cada vez que se inicia y no puede responder completamente a las solicitudes hasta que complete esta carga de caché.

He estado examinando la configuración de mis grupos de aplicaciones y he empezado a preguntarme por qué incluso reciclaba con tanta frecuencia (una vez cada 1,000,000 llamadas o 2 horas).

¿Qué me impediría establecer el reciclaje automático una vez cada 24 horas o incluso más? ¿Por qué no eliminar completamente la opción y simplemente reciclar si la memoria se sale de control para el dominio de aplicación?

Respuesta

4

La razón por la que lo hacen es que una aplicación puede "no funcionar" a pesar de que la CPU y la memoria están bien (piense en un punto muerto). El reciclaje de la aplicación es una medida final a prueba de fallas que puede proteger el código defectuoso de la muerte.

También cualquier código que no haya podido implementar IDisposable ejecutará finalizadores en el reciclaje que posiblemente liberará recursos retenidos.

6

Probablemente debería considerar el reciclaje desde el punto de vista de la fiabilidad. En función de los datos históricos, debe tener una idea de cuánta memoria, CPU y demás utiliza su aplicación, y los patrones históricos y cuándo se producen problemas. Sabiendo eso, puede configurar el reciclaje para contrarrestar esos problemas. Por ejemplo, si sabe que su aplicación tiene un patrón de uso de memoria * cada vez mayor que hace que la aplicación se quede sin memoria después de un período de varios días, puede configurarla para que se recicle antes de que eso ocurra.

* Obviamente, también se quiere resolver este error, si es posible, pero el reciclaje puede ser utilizado para aumentar la fiabilidad para el cliente

8

Si la aplicación se ejecuta de forma fiable durante más tiempo que el umbral establecido para el reciclaje grupo de aplicación, a continuación, por supuesto, aumentar el umbral. No hay inconvenientes si tu aplicación es estable.

Para nosotros, tenemos el reciclaje desactivado por completo, y en su lugar tenemos una tarea que carga una página de prueba por minuto y ejecuta un iisreset si no se carga cinco veces seguidas.

Cuestiones relacionadas