Consideraciones sobre las pruebas de carga
En este tema, se proporcionan sugerencias para realizar pruebas de carga grandes en Visual Studio Ultimate. Se tratan los temas siguientes:
Elegir el modelo de carga adecuado
Elegir el modelo de conexión adecuado
Tasa de ejemplo y recolección de datos
Tiempo de reflexión
Establecer los objetivos de tiempos de respuesta para solicitudes de pruebas de rendimiento web
Incluir detalles de tiempo para recopilar datos como percentiles
Establecer el porcentaje de la propiedad Nuevos usuarios
Habilitar el generador de perfiles de ASP.NET
Habilitar el registro del usuario virtual
Habilitar la traza SQL
Mantener un número adecuado de equipos agente
Elegir el modelo de carga adecuado
Hay tres tipos de modelo de carga: constante, pasos y basado en objetivos. Para elegir el modelo de carga adecuado para su prueba de carga, debe conocer las ventajas de cada tipo. Para obtener más información, vea Modificar modelos de carga para modelar las actividades de usuarios virtuales.
Constante |
Un modelo de carga constante es útil si desea ejecutar la prueba de carga con la misma carga de usuario durante un período de tiempo largo. Si especifica una carga de usuario alta con un modelo de carga constante, se recomienda que también especifique un período de preparación para la prueba de carga. Al especificar este período, evita que se sobrecargue el sitio con cientos de nuevas sesiones de usuario que visitan el sitio a la vez. |
Paso |
Un modelo de pasos es uno de los modelos de carga más habituales y útiles, puesto que permite supervisar el rendimiento del sistema a medida que aumenta la carga de usuarios. Si supervisa el sistema a medida que aumenta la carga de usuarios, puede determinar el número de usuarios que se pueden admitir con tiempos de respuesta aceptables. O a la inversa, el número de usuarios con el que el rendimiento ya no es aceptable. Si cada paso suma un número grande de usuarios, por ejemplo, más de 50 usuarios, considere el uso de la propiedad Tiempo de rampa de paso para escalonar el inicio de los usuarios en el paso. Para obtener más información, vea Cómo: Especificar la propiedad Step Ramp Time para un modelo de carga por pasos. |
Basado en objetivos |
Un modelo de carga basado en objetivos se parece a un modelo de carga de pasos en tanto que la carga de usuario se suele incrementar a medida que pasa el tiempo, pero permite especificar que la carga debe dejar de aumentar cuando alguno de los contadores de rendimiento llegue a un nivel determinado. Por ejemplo, puede usar un modelo de carga basado en objetivos para seguir incrementando la carga hasta que uno de los servidores de destino esté ocupado en un 75% y, a continuación, se mantenga la carga estable. |
Si no hay ningún modelo de carga predefinido que satisfaga sus necesidades, se puede implementar un complemento de prueba de carga personalizado que controle la carga de usuarios a medida que se ejecuta la prueba de carga. Para obtener más información, vea Crear y usar complementos personalizados para las pruebas de carga y de rendimiento web.
Elegir el modelo adecuado de conexión de prueba de rendimiento web
Los parámetros de ejecución de las pruebas de carga admiten opciones diferentes para modelar las conexiones de usuario al servidor web utilizando la propiedad Modelo de conexión de prueba web. Hay tres tipos de modelo de conexión: conexión por usuario, conexión por iteración de prueba y grupo de conexiones. Para elegir el modelo de conexión adecuado para su prueba de carga, debe conocer las ventajas de cada tipo.
Conexión por usuario |
El modelo de conexión por usuario simula con mayor realismo el comportamiento de un explorador real. Cada usuario virtual que ejecuta una prueba de rendimiento web utiliza hasta seis conexiones con cada servidor web. La conexión se mantiene abierta para el servidor web que se dedica a ese usuario virtual. La primera conexión se establece cuando se emite la primera solicitud en la prueba de rendimiento web. Se pueden utilizar conexiones adicionales cuando una página contiene más de una solicitud dependiente; estas solicitudes se pueden emitir en paralelo mediante conexiones adicionales. Los exploradores más antiguos utilizan hasta dos conexiones por servidor web, pero Firefox 3 e Internet Explorer 8 usan hasta 6 conexiones por servidor web. Estas mismas conexiones se reutilizan para el usuario virtual a lo largo de la prueba de carga. La desventaja de este tipo de modelo es que el número de conexiones abiertas en el equipo agente puede llegar a ser seis veces más la carga de usuarios o incluso más si tiene como destino varios servidores web. Por consiguiente, los recursos necesarios para admitir este contador de conexiones alto puede limitar la carga de usuarios de un solo agente de prueba de carga. |
Grupo de conexiones |
El modelo de grupo de conexiones conserva los recursos del agente de prueba de carga haciendo que los distintos usuarios virtuales de la prueba de rendimiento web compartan las conexiones al servidor web. En el modelo del grupo de conexiones, el tamaño de este grupo especifica el número máximo de conexiones que se van a realizar entre el agente de la prueba de carga y el servidor Web. Si la carga de usuarios es mayor que el tamaño del grupo de conexiones, las pruebas de rendimiento web que se ejecuten en nombre de usuarios virtuales diferentes compartirán una conexión. Este es el mejor modelo para controlar la carga mayor en la capa de aplicación. Compartir una conexión significa que una prueba de rendimiento web quizá deba esperar antes de emitir una solicitud mientras otra prueba use la conexión. El contador de rendimiento de pruebas de carga Tiempo medio de espera de conexión lleva un seguimiento del tiempo medio que debe esperar una prueba de rendimiento web antes de enviar una solicitud. Este número debe ser menor que el tiempo medio de respuesta para una página. De lo contrario, puede que el tamaño del grupo de conexiones sea demasiado pequeño. |
Conexión por iteración de prueba |
La conexión por iteración de pruebas cierra la conexión después de cada iteración y abre una nueva en la iteración siguiente. Este valor colocará la mayor tensión en los inicios de sesión de red. A menos que sea un requisito, se recomienda que utilice una de las dos opciones anteriores. |
Tasa de ejemplo y recolección de datos
Elija una tasa de ejemplo adecuada basada en la duración de la prueba de carga. Una tasa de ejemplo pequeña, por ejemplo de cinco segundos, recopila más datos para cada contador de rendimiento que una tasa de ejemplo más larga. La recopilación de muchos datos durante un período de tiempo largo puede causar errores de espacio en disco. En pruebas de carga largas, puede incrementar la velocidad de muestra para reducir la cantidad de datos recopilados. El número de contadores de rendimiento también afecta a la cantidad de datos recopilados. En los equipos en los que ejecute la prueba, si se reduce el número de contadores, se reducirá la cantidad de datos recopilados.
Debe experimentar para determinar qué tasa de ejemplo funcionará mejor para su prueba de carga en concreto. Sin embargo, la tabla siguiente proporciona las tasas del ejemplo recomendadas que puede utilizar para empezar.
Duración de la prueba de carga |
Tasa del ejemplo recomendada |
---|---|
< 1 hora |
5 segundos |
De 1 a 8 horas |
15 segundos |
De 8 a 24 horas |
30 segundos |
> 24 horas |
60 segundos |
Tiempo de reflexión
El tiempo de reflexión de las solicitudes de prueba de rendimiento web tiene un efecto importante en el número de usuarios que se pueden admitir con tiempos de respuesta razonables. Si cambia los tiempos de reflexión de 2 a 10 segundos, podrá habilitar la simulación con el número de usuarios multiplicado por 5. Sin embargo, si su objetivo es simular el comportamiento de los usuarios reales, debe establecer el tiempo de reflexión basándose en el comportamiento previsible de los usuarios en el sitio Web. Si aumenta el tiempo de reflexión y el número de usuarios, no implica necesariamente que se sobrecargue más el servidor Web. Si se autentica el sitio Web, el tipo de esquema utilizado afectará al rendimiento.
Si deshabilita los tiempos de reflexión de una prueba de rendimiento web, quizá pueda generar una prueba de carga con un alto rendimiento en términos de solicitudes por segundo. Si deshabilita los tiempos de reflexión, también reducirá el número de usuarios a un número muy inferior que cuando están habilitados estos tiempos. Por ejemplo, si deshabilita los tiempos de reflexión e intenta ejecutar 1000, es muy probable que se vean desbordados tanto el servidor de destino como el agente de la prueba de carga.
Para obtener más información, vea Modificar los tiempos de reflexión para simular los retrasos de la interacción humana en un sitio web en escenarios de pruebas de carga.
Establecer los objetivos de tiempos de respuesta para solicitudes de pruebas de rendimiento web
Una de las propiedades de una solicitud de una prueba Web es el objetivo de tiempo de respuesta. Si define los objetivos de tiempo de respuesta para las solicitudes de pruebas de rendimiento web, cuando se ejecute la prueba de rendimiento web en una prueba de carga, el analizador de esta última informará del porcentaje de las pruebas de rendimiento web cuyo tiempo de respuesta no cumplió el objetivo. De forma predeterminada, no existen objetivos de tiempo de respuesta definidos para las solicitudes Web.
Además, si utiliza la regla de validación Objetivo de tiempo de respuesta, las páginas que no cumplen el tiempo de respuesta objetivo producirán un error en la prueba de carga. Si utiliza el registro de errores, puede ver lo que ese usuario virtual estaba haciendo cuando se produjo la página lenta.
Para obtener más información, vea Cómo: Establecer los objetivos de tiempo de respuesta de la página de una prueba de rendimiento web.
Incluir detalles de tiempo para recopilar datos de percentil y habilitar la vista Detalles
Los parámetros de ejecución incluyen una propiedad denominada Almacenamiento de detalles de sincronización. Si se habilita esta propiedad, el tiempo que tarda en ejecutarse cada prueba, cada transacción y cada página durante la prueba de carga se almacenará en el repositorio de resultados de la prueba de carga. Esto habilita el Diagrama de actividad del usuarios virtual en el Analizador de prueba de carga. También se pueden mostrar datos como percentiles 90, 95 y 99, y la desviación estándar en el analizador de la prueba de carga en las tablas Pruebas, Transacciones y Páginas.
De forma predeterminada, la propiedad Almacenamiento de detalles de sincronización está habilitada para admitir el Diagrama de actividad del usuario virtual en la vista Detalles en el resultado de la prueba de carga utilizando el Analizador de prueba de carga.
Debería considerar deshabilitar la propiedad Almacenamiento de detalles de sincronización en pruebas grandes. Hay dos razones importantes para ello.
La cantidad de espacio requerido en el repositorio de resultados de la prueba de carga para almacenar los detalles de tiempo puede ser muy grande, sobre todo si se trata de pruebas largas.
Se tarda mucho tiempo en almacenar estos datos en dicho repositorio al final de la prueba de carga, puesto que los datos se almacenan en los agentes de prueba de carga una vez finalizada la ejecución.
Si se dispone de espacio en disco suficiente en el repositorio de resultados de la prueba de carga, puede habilitar la opción Almacenamiento de detalles de tiempo para obtener los datos como percentiles. Dispone de dos opciones para habilitar Almacenamiento de detalles de tiempo: StatisticsOnly y AllIndividualDetails. Con cualquier opción, se cronometran todas las pruebas, páginas y transacciones individuales y se calculan los datos como percentiles a partir de los datos de tiempo individuales. Si elige StatisticsOnly, se eliminan los datos de tiempo individuales del repositorio después que se hayan calculado los datos como percentiles. Si se eliminan los datos, se reduce la cantidad de espacio necesario del repositorio. Sin embargo, si desea procesar datos detallados del control de tiempo directamente, en las herramientas de SQL o habilitando la vista de los detalles del usuario virtual en el Diagrama de actividad del usuario virtual, elija Todos los detalles individuales para que los datos detallados del control de tiempo se guarden en el repositorio.
Para obtener más información, vea Analizar la actividad de usuario virtual de prueba de carga en la vista Detalles del Analizador de prueba de carga y Cómo: Configurar los resultados de pruebas para recopilar información completa para habilitar la actividad de usuario virtual en los resultados de pruebas.
Establecer el porcentaje de la propiedad Nuevos usuarios
Cada escenario de una prueba de carga tiene una propiedad denominada Porcentaje de nuevos usuarios. Esta propiedad afecta a la forma en la que el motor de pruebas en tiempo de ejecución de la prueba de carga simula el almacenamiento en la memoria caché que realizaría un explorador web. El valor predeterminado de Porcentaje de nuevos usuarios es 0. Esto significa que cada usuario virtual mantiene una memoria caché virtual de solicitud dependientes y una lista de cookies entre las iteraciones. La memoria caché funciona como una memoria caché del explorador, no se realizarán solicitudes subsiguientes a la URL, lo que más se parece a los exploradores web reales.
Si el Porcentaje de nuevos usuarios se establece en 100%, cada usuario es efectivamente un "usuario de una vez" y nunca regresa al sitio. En este caso, cada iteración de prueba de rendimiento web que se ejecute en una prueba de carga se trata como si fuese la primera vez que el usuario visita el sitio web y, por lo tanto, no tiene contenido alguno del sitio web en la memoria caché del explorador de visitas previas. Por consiguiente, se descargan todas las solicitudes de la prueba de rendimiento web, incluidas todas las solicitudes dependientes, como las imágenes.
Nota
Una excepción es cuando una prueba de rendimiento web solicita varias veces el mismo recurso que se puede almacenar en la memoria caché.
Utilice el valor predeterminado de 0% de nuevos usuarios para controlar la carga mayor en la capa de aplicación del sitio web. No solo es más parecido a los usuarios reales, sino que también controlará más carga en la capa de aplicación, que es donde se producen la mayoría de los problemas de rendimiento. Para obtener más información, vea Cómo: Especificar el porcentaje de usuarios virtuales que usan datos de caché web.
Habilitar el generador de perfiles de ASP.NET
Una nueva característica de Microsoft Visual Studio 2010 es el adaptador de datos del generador de perfiles de diagnóstico de ASP.NET que permite recopilar los datos de generador de perfiles ASP.NET de la capa de aplicación mientras se ejecuta una prueba de carga. No debe ejecutar el generador de perfiles para pruebas de carga prolongadas, por ejemplo, pruebas de carga que tardan más de una hora en ejecutarse, porque el archivo del generador de perfiles puede llegar a ser grande, quizás de centenares de megabytes. En su lugar, ejecute pruebas de carga más cortas con el generador de perfiles de ASP.NET, que le dará la ventaja del diagnóstico de los problemas de rendimiento.
Para obtener más información, vea Cómo: Configurar el generador de perfiles de ASP.NET para pruebas de carga usando la configuración de pruebas.
Habilitar el registro del usuario virtual
Una nueva característica de Microsoft Visual Studio 2010 permite recopilar los registros completos de las pruebas no superadas o especificar una frecuencia para registrar las pruebas. El registro lo controlan las propiedades Guardar registro si la prueba no es correcta, Máximos registros de prueba y Frecuencia de guardado del registro para pruebas completadas. Los valores de la propiedad Máximos registros de prueba y Frecuencia de guardado del registro para pruebas completadas controlan el número de registros recopilados. La configuración predeterminada evita que se recopile un número grande de registros. Con pruebas de ejecución prolongada que generarán millones de solicitudes, no utilice el valor Frecuencia de guardado del registro para pruebas completadas o el número de registros se hará demasiado grande. También, mantenga la propiedad Máximos registros de prueba, que establece realmente el número máximo de registros por tipo de error, en un número razonable. Mantenga esta configuración para evitar recopilar decenas de miles de registros, ya que aumentará el tiempo al final de la prueba para recopilar los registros y ocupará espacio en la base de datos de prueba de carga.
Para obtener más información, vea Modificar la configuración de inicio de sesión de las pruebas de carga.
Habilitar la traza SQL
Los parámetros de ejecución incluyen una propiedad denominada Traza SQL habilitada. Esta propiedad permite habilitar la característica de traza de Microsoft SQL Server para la duración de una prueba de carga. Se trata de una alternativa a iniciar una sesión de SQL Server Profiler independiente mientras se ejecuta la prueba de carga con el fin de diagnosticar los problemas de rendimiento de SQL Server. Si se habilita la propiedad, se muestra la información de seguimiento de SQL en el Analizador de la prueba de carga. Puede verlo en la página Tablas de la tabla Seguimiento SQL.
Para habilitar esta característica, el usuario que ejecuta la prueba de carga debe tener los privilegios de SQL Server necesarios para realizar la traza SQL. Cuando se ejecuta una prueba de carga en una máquina remota, mediante un controlador de pruebas y un agente de prueba, el usuario del controlador debe tener los privilegios de SQL. Además, debe especificar un directorio, que suele ser un recurso compartido de red, donde se escribirá el archivo con la información de seguimiento. Al finalizar la prueba de carga, este archivo se importa al repositorio de la prueba de carga y se asocia a ésta para que se pueda ver más tarde mediante el Analizador de la prueba de carga.
Para obtener más información, vea Configurar los parámetros de ejecución de pruebas de carga y Cómo: Integrar los datos de seguimiento de SQL usando el Editor de prueba de carga.
Mantener un número adecuado de equipos agente
Si un equipo agente usa más del 75% de la CPU o tiene menos del 10% de memoria física disponible, se sobrecarga. Agregue más agentes al controlador de pruebas para garantizar que el equipo agente no se convierta en el cuello de botella de la prueba de carga.
Para obtener más información, vea Distribuir las pruebas de carga entre varias máquinas mediante controladores de prueba y agentes de prueba y Cómo: Especificar los agentes de prueba que se usarán en escenarios de prueba de carga.
Vea también
Tareas
Solución de problemas de pruebas de carga
Conceptos
Analizar los errores de las pruebas de carga con la tabla de errores
Otros recursos
Crear y editar pruebas de carga
Consideration for Load Tests that Contain Web Performance Tests