Optimizando el rendimiento de sistemas informáticos distribuidos: ¡Aprovecha al máximo el análisis de desempeño!

En este artículo, discutiremos los procedimientos para analizar el rendimiento de un sistema informático distribuido en varias capas. En la primera parte, examinaremos los componentes de un entorno de prueba y te mostraremos cómo crear una matriz de pruebas. El artículo siguiente detallará los procedimientos de prueba, el análisis de cuellos de botella y cómo establecer puntos de referencia del sistema para comparar su rendimiento.

Es importante darse cuenta de que las pruebas de rendimiento de software son un conjunto de tareas que requieren dedicación, y cuanto más tiempo dediques a una configuración adecuada, mayores serán las posibilidades de obtener datos significativos que sean esenciales para el diseño del sistema y la escalabilidad arquitectónica.

Índice de Contenido
  1. Conoce tu entorno de prueba
  2. Lo que necesitarás
  3. Crear una matriz de pruebas

Conoce tu entorno de prueba

En las pruebas, es crucial que simules tu sistema de producción. Por ejemplo, si estás intentando recopilar datos de rendimiento en una máquina donde los desarrolladores están ejecutando grandes compilaciones varias veces por hora, es probable que los datos que recopiles sean irrelevantes. Lo mismo puede decirse si las máquinas de prueba están conectadas a una red donde alguien está alojando una colección pública de MP3.

Sin embargo, la replicación exacta de tu entorno de producción, incluyendo toda la infraestructura de hardware y software, puede ser costosa. Dentro de las limitaciones de tu presupuesto, intenta recrear el entorno "en vivo" tanto como sea posible.

Un entorno de prueba bien diseñado facilitará la detección de problemas específicos, como aplicaciones mal configuradas y travésput no aceptable. Más importante aún, un sistema de prueba que imite un entorno de producción proporciona una base para obtener datos de prueba de calidad. Estos datos serán utilizados para establecer puntos de referencia de rendimiento y planificación de capacidad. La segunda parte de esta serie abordará estos temas en detalle.

Lo que necesitarás

Para configurar tu entorno de prueba, necesitarás los siguientes componentes:

Cómo realizar un análisis de rendimiento para sistemas informáticos distribuidos
  1. Un switch de red: Es muy importante aislar el entorno de prueba del "ruido" que suele haber en una red de desarrollo. Si no lo haces, te encontrarás con latencias de aplicación que normalmente no existirían en el entorno de producción.
  2. Máquinas clientes de prueba: Esto dependerá del nivel de carga que desees aplicar a tu sistema, pero intenta tener al menos dos máquinas: una para generar carga y otra para tomar mediciones de tiempo. A veces, las latencias medidas por una máquina cliente que genera carga con procesos concurrentes incluirán las latencias de la sobrecarga de gestionar esos procesos concurrentes. La segunda máquina monitorea las mediciones de latencia desde un solo hilo mientras que la primera máquina genera carga concurrentemente, lo que permite una visión más precisa de la latencia del sistema. Por supuesto, el número de máquinas necesarias para generar suficiente carga y determinar el rendimiento máximo de tu sistema distribuido dependerá tanto de la complejidad del perfil de carga como de las capacidades del sistema probado.
  3. Servidores: Dado que se tomarán decisiones arquitectónicas en función de los datos recopilados, utiliza una arquitectura de servidor similar a la del entorno de producción. Por ejemplo, utilizar un grupo de máquinas Solaris x86 para modelar el rendimiento de un sistema de producción en ejecución en servidores Solaris SPARC no proporcionará resultados válidos.
  4. Servicio de sincronización horaria: Si estás midiendo la latencia entre dos máquinas, tus mediciones solo serán precisas hasta la diferencia horaria entre los relojes de ambas máquinas. Para mantener los relojes sincronizados lo más cercano posible, se requiere algún tipo de servicio de sincronización horaria. El Protocolo de Tiempo de Red (NTP) ofrece a los sistemas UNIX un servicio de sincronización horaria con una precisión de submilisegundo, lo cual es bastante adecuado para la mayoría de los análisis. El Protocolo Simple de Tiempo de Red (SNTP), el protocolo que se utiliza en el Servicio de Hora de Windows que se encuentra en la mayoría de las redes Windows, es menos preciso, a veces con un error de medio segundo, según la instalación. Consulta con tu administrador de red las opciones disponibles para ti.
  5. Software de pruebas: Existen numerosas empresas que ofrecen software de pruebas de carga, como Mercury Interactive, Rational y Empirix, así como algunas opciones de código abierto. Si tienes tiempo y habilidades de programación, podrías desarrollar tu propia solución. Independientemente de la herramienta que elijas, cada producto tiene un conjunto de características y una curva de aprendizaje específica. El mejor consejo es entender tus requisitos antes de tomar una decisión. Por ejemplo, casi todas las suites de pruebas pueden generar carga HTTP, pero pocas son capaces de generar declaraciones SQL para probar de forma directa un servidor de bases de datos. Las capacidades de monitorización del servidor también son muy importantes. No te dejes engañar pensando que el soporte de Simple Network Management Protocol (SNMP) será suficiente para capturar los niveles de carga de tu sistema a menos que ya hayas invertido en un conjunto completo de agentes SNMP.

Crear una matriz de pruebas

Cuando te sumerges en una aplicación distribuida, necesitas un método sistemático para organizar la gran cantidad de parámetros que afectan al rendimiento. Las opciones de protocolo, los tamaños de transacción, los parámetros pasados a la aplicación e incluso la configuración de la aplicación, todos pueden afectar el rendimiento. ¿Cómo puedes llevar un registro de todo esto?

Quizás el paso más importante en el análisis de rendimiento es construir una matriz de pruebas para capturar todas las dimensiones que impactan en el rendimiento de tu sistema. Comienza creando dos columnas, una para las dimensiones y otra para los valores. Luego, lista todas las dimensiones que afectan al rendimiento del sistema en su conjunto, cada función del sistema, cada subfunción, y así sucesivamente. En última instancia, esta matriz te servirá como una visión general a nivel superior del sistema y te permitirá desarrollar matrices más pequeñas para los planes de prueba y la documentación del sistema.

La Figura A muestra una matriz de pruebas simplificada para un servicio web de traducción de documentos que convierte un documento de Word a XML y viceversa.
Figura A

Dimensiones globales Valores
Tamaño del documento 1K-1Meg
Tipo de conversión DOC -> XML, XML -> DOC
Protocolo de conexión HTTP, HTTPS
Autenticación UserPass, Certificate

Matriz de pruebas para un servicio web de traducción de documentos

En la Figura A, se enumeran ocho dimensiones. Cada dimensión tiene una amplia gama de valores. El siguiente paso es ampliar esta matriz determinando qué dimensiones deben ser probadas entre sí. En nuestro ejemplo, la autenticación y el tipo de conversión no están relacionados, pero el tamaño del mensaje y el tipo de conversión sí lo están. (Ver Figura B.)
Figura B

d 1K 10K 100K 1Meg
DOC -> XML a a a a
XML -> DOC a a a a

Tamaño del mensaje y tipo de conversión

Micropagos: La solución para comprar artículos baratos en línea

Obviamente, los sistemas complejos requerirán matrices de pruebas más intrincadas. Estas matrices pueden extenderse a varias páginas con 20 a 30 columnas, requiriendo un tiempo considerable de prueba. Utiliza la matriz para resaltar posibles problemas tanto a los desarrolladores como a la alta dirección.

Una planificación adecuada puede hacer la diferencia entre unos resultados de prueba significativos y una colección de datos inútiles. En este artículo, hemos analizado los componentes de un entorno de prueba de alta calidad y te hemos mostrado cómo implementar una matriz de pruebas. La siguiente entrega discute la creación de un plan de prueba exhaustivo, cómo decidir qué incluir en el proceso de pruebas y cómo establecer puntos de referencia de rendimiento.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre CXO, allí encontraras muchos artículos similares a Optimizando el rendimiento de sistemas informáticos distribuidos: ¡Aprovecha al máximo el análisis de desempeño! , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.