menu_superior

MAGNITUDES PARA EXPRESAR LA CARGA DE UN S.I. (2)

Este post es una continuación de “magnitudes para expresar la carga de trabajo de un S.I.“. Puedes pinchar en el enlace para acceder a la primera parte.

Decíamos en el post anterior que los usuarios virtuales no son una medida para valorar la carga de trabajo de un Sistema de información. A continuación vamos a detallar magnitudes más apropiadas para expresar la carga. La idea es explicar cómo se obtienen estas medidas y por qué son buena, así que si algo no queda claro, por favor, avisadme en los comentarios.

Hits por segundo (Hits/s)

Gráfico de hits/secEl número de hits por segundo es el número de peticiones HTTP (HTTP requests) que el servidor recibe en un segundo. Es decir, la aplicación genera una serie de llamadas al sistema y cada una de esas llamadas genera una pequeña carga de trabajo. El efecto acumulativo de esas llamadas será la carga total del sistema por segundo. Aquí no hay influencia de los tiempos de espera por que lo único que cuenta son cuantas llamadas al sistema coinciden en el mismo segundo.

Esta magnitud tiene como gran punto a favor que proporciona información en bruto ya que todas las llamadas cuentan por igual y no hay agrupamientos de acciones o de tipos de llamada, cuenta igual una consulta, que una petición de una imagen o de un fichero js, etc. Paradojicamente este también es su principal problema, porque al no haber agrupamientos no podemos estar seguros del “peso” que tiene cada llamada: No es lo mismo una llamada para pedir una página estática de confirmación que una llamada que dispara la generación de un report que cruza datos de varias tablas en base de datos.

Personalmete el dato de hits/s me parece muy adecuado para usarlo en las primeras pruebas para ver cuanta carga generan los scripts que hemos construido, para aplicaciones que son muy simples y, en general, en contextos donde no haya que distinguir qué tipo de carga de trabajo estamos inyectando en el sistema.

Transacciones por segundo (trx/s)

Gráfico de Trx/secEl número de transacciones por segundo es el número de acciones que se ejecutan en un segundo. Para considerar a la transacción como ejecutada, el sistema debe emitir respuesta y el cliente debe recibirla. Es una magnitud muy similar a la anterior, se diferencian en la escala, ya que un hit o petición es cualquier llamada y una transacción puede ser un intercambio de peticiones y respuestas continuado. A diferencia de los hits por segundo esta magnitud es configurable y  escalable, es decir, podemos definir la transacción tan grande o tan pequeña como mejor nos convenga para categorizar las llamadas.

Esta medida es especialmente útil si queremos conocer no solo la carga total si no como se reparten las operaciones que asignamos a cada transacción: operaciones de lectura y escritura, consultas, llamadas a sistemas externos, etc. Es importante tener en cuenta que para usar las transacciones por segundo para cuantificar la carga de trabajo, antes debemos definir qué es una transacción y eso requiere un tiempo de análisis.

El número de transacciones por segundo está indicado en aplicaciones que tienen operaciones complejas (con tiempos de respuesta que pueden ser significativamente diferentes) y en pruebas refinadas donde se busca aislar los valores por transacción para poder tomar medidas concretas en operaciones concretas.

Carga en picos y carga media

Independientemente de la magnitud utilizada, como podéis ver en los gráficos, el nivel de carga oscila muchisimo durante la ejecución de la prueba. Con la intención de no perder información y que los datos que se derivan de las pruebas sean los más precisos posible, lo más adecuado es indicar la carga media y añadir el pico máximo que se ha alcanzado, p.e.: La carga media es de 12,5 transacciones por segundo con picos de 30 trx/s. Esto nos dará una noción de la carag que puede soportar nuestro sistema tanto en picos como de manera continuada.

, , , , , ,

Comments are closed.