Servidor Couchbase

Pruebas de rendimiento y carga de Couchbase con Pillowfight

Las pruebas de rendimiento y de carga son procesos importantes para asegurarte de que estás preparado para la producción. Para probar clusters de Couchbase Server, existe una utilidad de línea de comandos de código abierto llamada "cbc-pillowfight". Forma parte de libcouchbase.

Antes de empezar

Necesitarás un clúster de Couchbase Server en funcionamiento. Puedes probarlo directamente en tu máquina local (descargar Couchbase para Linux, Windows y Mac) o en un Contenedor Docker.

Si sólo estás probando pillowfight, puede que quieras crear un bucket en tu cluster sólo para ese propósito. Yo he creado un bucket llamado "pillow".

Después de tener instalado Couchbase Server, necesitarás descargar e instalar libcouchbase:

  • Mac: brew install libcouchbase
  • Ventanas: descargar un archivo zip (la última en el momento de escribir este artículo es libcouchbase-2.8.1)

Para más información, incluidas las instrucciones para Linux, consulte la página Notas de la versión de libcouchbase.

Lucha de almohadas para las pruebas de rendimiento

Si utilizaste homebrew para instalar en un Mac, puedes escribir cbc-pillowfight --ayuda directamente para la pantalla de ayuda de la línea de comandos.

En Windows, descomprime el archivo zip libcouchbase donde quieras. Encontrará cbc-pillowfight.exe en el papelera carpeta.

Performance testing tools

La pelea de almohadas más simple que puedes hacer es:

.\cbc-pillowfight.exe -U couchbase://localhost/pillow -u Administrador -P contraseña

Esto es para una línea de comandos Powershell de Windows, pero será muy similar en otros sistemas operativos.

Se iniciará una lucha de almohadas para el clúster que se ejecuta en su máquina local (localhost), con el usuario "Administrador" que tiene una contraseña de "contraseña" (su nombre de usuario y contraseña pueden ser diferentes).

Starting pillowfight

Deberías ver un mensaje como "Thread 0 has finished populating".

¿Qué es una pelea de almohadas?

En este punto, el pillowfight va a empezar a crear, actualizar y leer documentos del cubo "pillow". Va a hacer todas estas operaciones ("ops") de acuerdo con la configuración de línea de comandos que especifique (o volver a los valores predeterminados).

Por ejemplo, con el -I puede especificar el número total de documentos sobre los que desea operar. El valor por defecto es 1000. Por lo tanto, si ejecutas el comando anterior, pronto verás que aparecen 1000 documentos en el cubo de la almohada.

No se limita a crear 1000 documentos y salir. Pillowfight seguirá "obteniendo" y "actualizando" esos documentos hasta que termines el proceso. Se llama "pillowfight" porque pondrá tu Couchbase Cluster en batalla (con esfuerzo real), pero en realidad es más una simulación de batalla.

Mientras tiene lugar la lucha, puede supervisar las estadísticas de los cubos para ver el rendimiento de su clúster bajo carga.

Performance testing monitoring

Mientras escribo esto, el ventilador de mi portátil está zumbando mientras pruebo el clúster Couchbase de un solo nodo que he instalado en él. (Sospecho que el escritorio de mi casa crearía un conjunto mucho más impresionante de gráficos, pero Estoy viajando mucho este mes).

Hay muchas estadísticas disponibles que puedes consultar a nivel de cubo. Consulte la Documentación de Couchbase Server sobre Estadísticas de monitorización para más detalles.

Opciones para las pruebas de rendimiento

Los ajustes por defecto de pillowfight pueden no ser óptimos para el tipo de aplicación que vas a utilizar con Couchbase. Hay muchas formas de ajustar tu lucha de almohadas para que se adapte mejor a tus casos de uso. Para ver la lista completa de opciones, escribe cbc-pillowfight --ayuda en la línea de comandos.

Pero he aquí algunas opciones notables que quizá quiera probar:

  • -I o --num-items con un número, para especificar sobre cuántos documentos desea operar.
  • --json para utilizar cargas JSON en los documentos. Por defecto, los documentos se crean con cargas útiles no JSONpero es posible que desee disponer de documentos JSON reales para probar otros aspectos del rendimiento mientras se ejecuta la lucha de almohadas.
  • -e para que los documentos expiren después de un cierto periodo de tiempo. Si estás usando Couchbase como caché o almacenamiento a corto plazo, querrás usar esta configuración para monitorizar el efecto de los documentos que caducan.
  • --subdoc para utilizar la API de subdocumentos. No todas las operaciones tendrán que realizarse en un documento entero.
  • -M o --max-size para fijar un límite al tamaño de los documentos. Es posible que desee ajustar esto para adaptar un tamaño de documento más realista para su sistema. Hay un -m y --min-size también.

He aquí otro ejemplo utilizando las opciones anteriores:

.\cbc-pillowfight.exe -U couchbase://localhost/pillow -u Administrador -P contraseña -I 10000 --json -e 10 --subdoc -M 1024

Esto iniciará una pelea de almohadas usando 10000 documentos JSON, que expiran después de 10 segundos, usa la API de sub-documento, y tiene un tamaño máximo de documento de 1024 bytes.

Nota: existe un -t --num-threads opción. Actualmente, si utiliza Windows (como yo), está limitado a un único subproceso (véase este código).

Resumen

Couchbase está comprometido con el rendimiento. Realizamos pruebas de rendimiento exhaustivas para asegurarnos de que ofrecemos la velocidad que usted espera. Echa un vistazo a las publicaciones recientes en nuestro blog Motor de almacenamiento de plasma y Mejoras en N1QL. Pero nadie conoce su caso de uso y su infraestructura mejor que usted. Con pillowfight, dispones de una herramienta que te ayuda a realizar pruebas de rendimiento, pruebas de carga y pruebas de estrés.

Gracias a Sergey Avseyev por ayudar con esta entrada del blog, y su contribuciones a libcouchbase.

Si tiene alguna pregunta sobre Couchbase, deje un comentario a continuación o póngase en contacto conmigo en Twitter @mgroves.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Matthew Groves

A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviará pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribió una aplicación de punto de venta en QuickBASIC para la pizzería de sus padres, allá por los años noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.

2 Comentarios

  1. No consigo que esto funcione. Estoy tratando el comando básico en un símbolo del sistema de Windows (administrador):
    cbc-pillowfight.exe -U couchbase://ar-sql-01 -u Cierto_Usuario -p Cierta_Contraseña

    La respuesta es:
    No se ha podido conectar: Ha fallado la autenticación. Es posible que haya introducido una combinación de nombre de usuario y contraseña no válida.

    Sin embargo, en mi proyecto de visual studio, usando "couchbase://ar-sql-01" como la primera y única entrada para servidores, y, y Some_User/Some_Password para UserName y Password respectivamente, mi conexión (y todas las funciones) funcionan bien, así que sé que el nombre de usuario y la contraseña son correctos. ¿Alguna idea?

    1. NM. Estaba usando -p para contraseña, en lugar de -P (nótese la diferencia entre mayúsculas y minúsculas). Además, tuve que añadir / a la cadena de conexión. ¿Quizás esto ayude a alguien más?

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.