¿Es un analizador de sesión una buena herramienta para simular tráfico real?

Comenzamos hace mucho tiempo, queríamos replicar la carga de trabajo en un entorno que no fuera de producción, y ha habido varios intentos para lograr ese objetivo (Reproducción de la demanda es solo uno de ellos). Pero hay otro punto de vista, en el que debe anotar su carga de trabajo para hacerlo.

Ambos tienen pros y contras

Reproduce la carga de trabajo:

Ventajas:

  • Simplemente para implementar
  • Listo para ir

Contras:

  • Necesitamos reconstruir el medio ambiente cada vez

Guiones personalizados:

Ventajas:

  • Posiblemente tenga una carga de trabajo más realista
  • Puedes reutilizar el medio ambiente.
  • Puede usar Sysbench, que le permite cambiar muchas opciones en su prueba, como aumentar los cables o limitar el rendimiento.

Contras:

  • Debe invertir mucho tiempo para crear los scripts para tener una carga de trabajo realista

¿Es posible tener lo mejor de ambos mundos?

Mi idea es simple; Utilice el registro de consultas lentas para obtener un script de plantilla de carga de trabajo utilizable. Esto puede parecer simple, pero es necesario definir los pasos necesarios:

  • Necesitamos un lector de consultas lento
  • Necesitamos identificar cada modelo de demanda
  • Necesitamos hacer un seguimiento de las preguntas que se hacen por sesión, cómo queremos simular las sesiones.

Otros dos aspectos importantes serán recopilar los datos en las consultas para crear variables que se llenarán de funciones válidas y cada sesión tiene “variables” que se repiten a lo largo de la ejecución.

Lector lento de consultas

No es complicado, pero necesitamos dividir la pregunta en tres partes, así que una pregunta como esta:

Tendrás esta plantilla de aplicación:

Este modelo de datos:

Y los datos reales son:

Analizar datos para consulta

Como vamos a tener preguntas que ejecutan el mismo modelo de aplicación con el mismo modelo de datos, podemos recopilar los datos reales por posición y proceso. Por ejemplo, si tenemos todas estas preguntas hechas:

Necesitamos extraer todo este valor entero para establecer que en la columna 1, los valores estarán entre 2004 y 2005, los valores en la columna 2 entre 01 y 12, y para la columna 3, entre 01 y 27.

El mismo análisis debe hacerse para considerar:

  • Números enteros y si tienen una distribución específica
  • Valor alfa o alfanumérico y duración
  • hexadecimal

Analizar la carga de trabajo

Como queremos reproducir la carga de trabajo real, las solicitudes deben enviarse en el mismo orden en que fueron ejecutadas por la aplicación y necesitamos procesar las variables. Por ejemplo, si tenemos una sesión en ejecución:

Necesitamos identificar el 10 como una variable de nivel de aplicación para la sesión que podría estar en otros valores y cadenas. Con esta información, podemos desarrollar un modelo de sesión y necesitamos sintetizar esta información ya que la mayoría de las veces las aplicaciones ejecutan las mismas consultas en el mismo orden pero con datos diferentes.

Combina la información de la colección

Una vez que tenemos las funciones que generan los valores para llenar las plantillas de solicitud y la plantilla de sesión, podemos simular la carga de trabajo. Sysbench podrá obtener los datos en archivos que se generan dinámicamente y se envían a la base de datos.

¿Que sigue?

Estaba trabajando en una herramienta que lo hace, pero perl y bash no eran las mejores opciones, así que ahora ya estoy trabajando en una herramienta escrita en C y usando GLib. Espero que se publique pronto.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario