marzo 28, 2024

Herramienta para stress test de bases de datos.

0
Voiced by Amazon Polly
Comparte en redes sociales

Dentro de la seguridad informática, la disponibilidad es un factor muy importante que normalmente se le suele menospreciar. Entendemos por disponibilidad, a la garantía de que los usuarios autorizados puedan acceder a la información y recursos de red, cuando los necesiten. La disponibilidad es un factor imprescindible un servidor de bases de datos.


Dbstress es una herramienta de stress test y rendimiento de base de datos de código abierto escrita en Scala y Akka. Esta herramienta, ejecuta una consulta de base de datos (utilizando un controlador JDBC específico de la base de datos) cierto número de veces en paralelo (posiblemente en varios hosts de bases de datos) y genera un archivo CSV con resultados resumidos.

El elemento de configuración de nivel superior es un escenario, que consiste en al menos una unidad. Una unidad representa una operación de base de datos particular, junto con su configuración. Todas las unidades configuradas dentro de un escenario se ejecutan en paralelo, independientemente unas de otras y sus resultados también se informan por separado. A menos que se necesite hacer algunas pruebas más avanzadas, como conectarse a la base de datos con diferentes usuarios a diferentes esquemas, está bien tener un escenario con una sola unidad.

La configuración de la unidad consiste en:

  • Nombre de la unidad: debe ser una cadena alfanumérica.
  • Descripción (opcional).
  • Consulta de base.
  • URI de conexión.
  • Nombre de clase de controlador JDBC: opcional, solo se especifica si no se puede detectar automáticamente
  • Nombre de usuario.
  • Contraseña de la base de datos: opcional si se proporciona en la línea de comando
  • Número de conexiones de bases de datos paralelas: más conocido como “PAR”.
  • Cuántas veces se debe repetir la consulta, más conocido como “REP”.
  • Tiempo de espera de inicialización de la conexión(opcional). 

La ejecución de la prueba consta de dos fases básicas: fase de inicialización de la conexión y fase de ejecución de la consulta . En la fase de inicialización de la conexión , cada unidad genera una llamada unidad de ejecución (PAR) . Cada ejecución de unidad abre una conexión de base de datos. En la fase de ejecución de consultas , cada ejecución de unidad envía la consulta configurada (REP) secuencialmente a la base de datos. Por lo tanto, cada unidad envía la consulta a la base de datos es el resultado de PAR*REP.

Varios tipos de errores pueden ocurrir durante la ejecución del escenario, dos categorías más importantes de errores son los errores de inicialización de conexión y de consulta . Cuando falla la inicialización de una conexión (debido a una excepción o a exceder el tiempo de espera), dbstress no procede a la fase de ejecución de la consulta y finaliza inmediatamente. Los errores de consulta, por otro lado, no detienen el escenario, pero se informan como fallas en el CSV resultante.

La siguiente lista resume los diversos códigos de estado de salida:

  • 0: éxito, salida CSV generada. Las consultas individuales aún pueden haber fallado.
  • 1: error, argumentos incorrectos en la línea de comando.
  • 2: Error al analizar el archivo de configuración YAML.
  • 3: Algunas conexiones a la base de datos no pudieron ser inicializadas.
  • 4: tiempo de espera del escenario.
  • 10+: errores inesperados de la aplicación, se deben informar como errores.

Más información y descarga de dbstress:
https://github.com/semberal/dbstress

Deja un comentario