Aplicaciones con Problemas y Windows 2003
Una aplicación con problemas era hasta ahora algo dificil de resolver y que probablemente no tuviese otra forma de arreglarse que no sea recodificando partes de la aplicación. Los problemas más comunes en aplicaciones distribuidas suelen ser de 2 tipos:
- Perdidas de memoria
- Cuelgues o tiempos altos de respuesta
En ambos casos hablamos de una mala gestión de recursos del sistema operativo y suelen impactar directamente al usuario. La solución final sigue siendo arreglar el código, pero el tiempo que puede requerir arreglar la aplicación puede ser elevado, y mientras tanto la aplicación debe estar operativa. Haciendo uso de Windows 2003 podemos hacer que la convivencia no sea un calvario de incidencias, quejas del usuario, etc.
Windows 2003 nos proporciona como Servidor de Aplicaciones hacer uso de IIS 6.0 para aplicaciones Web, Servicios Web, etc, y los servicios de componentes COM+ para crear nuestrar aplicaciones. En ambos casos el sistema nos ofrece multitud de opciones para configurar como debe funcionar cada una de las partes de la aplicación:
- Seguridad, Identidad, etc
- Modo de Ejecución
- Ciclo de Vida.
Es en este último punto en donde disponemos de la opción de paliar los problemas de nuestra aplicación. En Windows 2003 disponemos de una nueva caracteristica de la que podemos hacer uso de manera transparente desde IIS 6.0 y COM+ 1.5: El Reciclado. Gracias a ella podemos configurar el ciclo de vida de nuestras aplicaciones y/o servicios.
El Reciclado nos permite especificar los criterios bajo los que se produce un efecto de limpieza de los procesos del sistema operativo que alojan nuestras aplicaciones. Este efecto de limpieza consiste en:
- El sistema verifica que los recursos de la aplicación no hayan superado los limites establecidos (Memoria, CPU, Tiempo de Espera, etc)
- En el momento que se supera algún criterio el sistema activa el proceso de reciclado.
- El reciclado levanta un proceso nuevo para atender las nuevas peticiones a ejecutar, mientras que el proceso antiguo termina de atender las últimas peticiones (de esta manera es posible que el sistema no deje de atender peticiones).
En cada uno de los sistemas podemos configurar distintas opciones que se adaptan a la tecnologia subyacente. En el caso de IIS 6.0 disponemos de estas opciones en las configuraciones de los Application Pool.
Las opciones de activación del Reciclado que nos ofrece se basan en el consumo de memoria de la aplicación, el tiempo de vida, el reciclado en momentos puntuales, etc. En otra de las pestañas de configuración disponemos de opciones para controlar la salud del sistema en donde podemos configurar acciones complementarias adicionales que aseguren el funcionamiento del sistema en unas condiciones adecuadas para evitar la perdida de información, monitorizar el inicio del sistema, caidas inesperadas, etc.
Por último, disponemos de la posibilidad de activar la opción de Web Garden (siempre haciendo las pertinentes pruebas) para aprovechar los sistemas basados en Dual Core o con varios procesadores. Esta opción habilita que tengas varios procesos gemelos (con Reclado disponible en cada uno) ejecutandose en cada uno de los procesadores disponibles, dotando al sistema de una mayor capacidad. El uso de la capacidad de Web Garden debe hacerse con cuidado, puesto que una de las cosas que hay que revisar es el dimensionamiento de todos los elementos del sistema (ejemplo: si activamos el Web Garden en un sistema Dual Core para que nuestro uno de nuestros servicios Web más usados pueda aprovecharse al máximo, debemos revisar que la Base de Datos que hay por detras esté preparada para admitir el doble de conexiones. Si no lo tenemos en cuenta podemos afectar al servidor de Base de Datos).
En el caso de COM+ disponemos de opciones similares que en el IIS, pero los criterios están adaptados a las posibilidades de los Servicios de Componentes. En este caso la configuración de COM+ nos permite:
- Configuración del Reciclado basandonos en la Memoria en uso, Tiempo de Expiración, Tiempo de Activación, etc.
- Configuración de Application Pool (similar al Web Garden de IIS 6).
Estas opciones nos permiten controlar situaciones anómalas de la ejecución de nuestras aplicaciones en situaciones donde el uso de los recursos del sistema afectan al rendimiento, o cuando queremos sacarle más partido al sistema haciendo uso de multiples procesos (En este último caso es importante que nos aseguremos de que el sistema está correctamente dimensionado en todas las piezas que lo componen evitando que en algún punto aceptemos más peticiones que lo que puede soportar otra parte del sistema y pueda provocar una saturación de recursos, encolamiento excesivo, etc).
Comments
- Anonymous
August 21, 2008
Gracias por el Blog, es de gran utilidada