jueves, 16 de julio de 2009

Que se debe tener en cuenta en los componentes y arquitectura involucrados en un LoadTest?

En la Internet, se habla mucho de TeamTest, hasta podemos encontrar imágenes y videos muy superficiales de cómo hacer pruebas unitarias y de carga, a nuestras aplicaciones WEB. Lo cierto es que en la actualidad nuestras aplicaciones WEB son cada vez más robustas y dinámicas. Por ello es que en los ambientes que disponemos para las pruebas, se deben hacer unas preparaciones previas en nuestra infraestructura y ambientes, para garantizar su éxito.

Consejos importantes para garantizar el éxito de tus pruebas: (De no hacerlo tus pruebas se van a ver frustradas y mal interpretadas).

Configuraciones en el Servidor WEB:

  • WEB.CONFIG: Validar que en el Web.config la opción de debug se encuentre apagada:
  • Se debe asegurar que los assemblies de la aplicación, se generen en release y no Debug
  • MACHINE.CONFIG: Para aprovechar el o los procesadores de tu servidor, debes cambiar la configuración predeterminada del FrameWork, realizando el siguiente cálculo matemático, por procesador con el fin de reducir contención, cuando se maneja mucha carga:
http://msdn.microsoft.com/en-us/library/ms998549.aspx

Configuraciones en la Base de Datos SQL 2005:

  • En SQL 2000 anteriormente para manejar los bloqueos o abrazos mortales, debíamos añadir a nuestras consultas, las conocidas sentencias sucias (NOLOCK). Con SQL 2005 ya no es necesario, basta con configurar adecuadamente el nivel de aislamiento (ISOLATION LEVEL) a SNAPSHOT y así nuestro motor funcionará similar a como lo hace ORACLE, manejando versionamiento de filas. En una instalación predeterminada el nivel de aislamiento de la transacción READ COMMITTED, vine por defecto. Para utilizar el aislamiento SNAPSHOT, debemos agregar el siguiente Transact-SQL: ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ONCon este otro no hay necesidad de hacer algo adicional en el código (Como colocar en las transacciones: SET TRANSACTION ISOLATION LEVEL SNAPSHOT;):ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON

http://msdn.microsoft.com/es-es/library/ms174269(SQL.90).aspx

No hay comentarios:

Publicar un comentario