{"id":12561,"date":"2021-12-13T08:00:12","date_gmt":"2021-12-13T16:00:12","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=12561"},"modified":"2025-06-13T21:49:43","modified_gmt":"2025-06-14T04:49:43","slug":"durability-performance-testing-with-sdk-3-0","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/durability-performance-testing-with-sdk-3-0\/","title":{"rendered":"Pruebas de rendimiento de durabilidad con SDK 3.0+"},"content":{"rendered":"<p><em><span style=\"font-weight: 400;\">Aprende sobre pruebas de rendimiento para escrituras duraderas con SDK 3.0+ y c\u00f3mo configurar la infraestructura usando cbc-pillowfight de Couchbase.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">Las pruebas de rendimiento de la durabilidad con cualquier base de datos pueden ser subjetivas y complicadas porque hay otros factores que influyen en el rendimiento. La durabilidad es la capacidad de escribir en copias activas, r\u00e9plicas y persistentes de los datos. Couchbase tiene diferentes niveles de durabilidad basados en el caso de uso y SLA. Pero en \u00faltima instancia, la velocidad de la red, la velocidad de escritura del disco y los recursos de CPU disponibles son tan sensibles al rendimiento como la propia base de datos.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfQu\u00e9 define el rendimiento (o alto rendimiento) de las escrituras duraderas? \u00bfEs la latencia de la operaci\u00f3n? \u00bfEs el rendimiento (operaciones por segundo)? Depende del caso de uso. La respuesta popular suele ser... \u00a1AMBAS!<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Actualizaciones de durabilidad en el SDK de Couchbase<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Las versiones anteriores del SDK de Couchbase (Pre-3.0) tienen escrituras duraderas con los par\u00e1metros <\/span><i><span style=\"font-weight: 400;\">replicateTo <\/span><\/i><span style=\"font-weight: 400;\">y <\/span><i><span style=\"font-weight: 400;\">persistTo<\/span><\/i><span style=\"font-weight: 400;\">. <\/span><i><span style=\"font-weight: 400;\">ReplicateTo <\/span><\/i><span style=\"font-weight: 400;\">espera a que se complete la escritura de 1 a 3 r\u00e9plicas. <\/span><i><span style=\"font-weight: 400;\">PersistTo <\/span><\/i><span style=\"font-weight: 400;\">espera a que tambi\u00e9n se escriba en la copia activa en disco. Los desarrolladores quer\u00edan un control m\u00e1s preciso y un mayor rendimiento con escrituras duraderas en las r\u00e9plicas y el disco.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Couchbase SDK 3.0 fue lanzado hace aproximadamente un a\u00f1o. Una actualizaci\u00f3n fundamental de la nueva versi\u00f3n del SDK es la durabilidad, teniendo en cuenta tanto la latencia como el rendimiento.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">V\u00e9anse las definiciones en la documentaci\u00f3n:\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/data\/durability.html\"><span style=\"font-weight: 400;\">Durabilidad en Couchbase<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/java-sdk\/current\/concept-docs\/durability-replication-failure-considerations.html\"><span style=\"font-weight: 400;\">Consideraciones sobre durabilidad y fallos de replicaci\u00f3n<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Hay tres niveles de durabilidad:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mayor\u00eda <\/b><span style=\"font-weight: 400;\">- El servidor se asegurar\u00e1 de que el cambio est\u00e9 disponible en memoria en la mayor\u00eda de las r\u00e9plicas configuradas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mayor\u00edaYPersistenciaActiva <\/b><span style=\"font-weight: 400;\">- Nivel mayoritario, m\u00e1s persistencia en disco en el nodo activo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>PersistToMajority <\/b><span style=\"font-weight: 400;\">- Nivel mayoritario, m\u00e1s persistencia en disco en la mayor\u00eda de las r\u00e9plicas configuradas.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Cada nivel de durabilidad tiene un impacto en el rendimiento, ya que el SDK esperar\u00e1 a que se complete la escritura utilizando <\/span><i><span style=\"font-weight: 400;\">mayor\u00eda<\/span><\/i><span style=\"font-weight: 400;\">, <\/span><i><span style=\"font-weight: 400;\">persistTo<\/span><\/i><span style=\"font-weight: 400;\">o ambos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En mi experiencia de trabajo con clientes con experiencia en bases de datos relacionales, la decisi\u00f3n instintiva es optar por el nivel de durabilidad m\u00e1s alto. Pero su experiencia es muy diferente, ya que los RDBMS tienen la durabilidad integrada en la arquitectura para no permitir las lecturas antes de que se realicen las escrituras.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mientras que Couchbase tiene un control m\u00e1s detallado sobre los ajustes de durabilidad de lo que los usuarios de RDBMS tradicionales podr\u00edan haber esperado. Por ejemplo, Couchbase tambi\u00e9n tiene un <\/span><b>durabilidad del nivel del cubo<\/b><span style=\"font-weight: 400;\"> ajuste.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12562 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/12\/durability-and-performance-713x1024.png\" alt=\"\" width=\"713\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/durability-and-performance-713x1024.png 713w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/durability-and-performance-209x300.png 209w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/durability-and-performance-768x1103.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/durability-and-performance-300x431.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/durability-and-performance-14x20.png 14w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/durability-and-performance.png 1040w\" sizes=\"auto, (max-width: 713px) 100vw, 713px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Adem\u00e1s, la elecci\u00f3n de la durabilidad es espec\u00edfica del caso de uso, la aplicaci\u00f3n y los SLA. Si la durabilidad a nivel de bucket no es suficiente control, Couchbase soporta <\/span><b>durabilidad escritura a escritura <\/b><span style=\"font-weight: 400;\">- cada escritura individual puede configurarse para una durabilidad espec\u00edfica o puede establecerse a nivel de cubo, es decir, todas las escrituras seguir\u00e1n el mismo nivel de durabilidad.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Consideraciones sobre la configuraci\u00f3n del servidor para las pruebas<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A\u00fan m\u00e1s importante que el mecanismo de durabilidad dentro de la arquitectura de la base de datos son las especificaciones de la m\u00e1quina de alojamiento para probar el rendimiento de las escrituras duraderas. Couchbase nunca colocar\u00e1 una copia activa y una r\u00e9plica en el mismo disco; autoguardamos los datos y garantizamos que las r\u00e9plicas no residir\u00e1n con una activa estando as\u00ed en un nodo diferente.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esto significa que la escritura en las r\u00e9plicas se ve afectada por la velocidad y la latencia de la red. Cuanto m\u00e1s r\u00e1pida sea la red, m\u00e1s r\u00e1pida ser\u00e1 la escritura duradera a la r\u00e9plica, es decir, a la mayor\u00eda. <\/span><b>El factor m\u00e1s influyente de la m\u00e1quina de alojamiento para las escrituras duraderas es la latencia y el rendimiento del disco.<\/b><span style=\"font-weight: 400;\"> Couchbase recomienda SSDs locales para la persistencia, no s\u00f3lo por la velocidad sino por la recuperaci\u00f3n r\u00e1pida y eficiente de un nodo en caso de fallo.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Consideraciones sobre la nube p\u00fablica<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">En la actualidad, cada vez m\u00e1s clientes realizan pruebas y POC en entornos de nube p\u00fablica por motivos de rapidez, sencillez e inversi\u00f3n temporal de recursos.\u00a0<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Selecci\u00f3n de almacenamiento\/disco<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">En la nube p\u00fablica, todos los proveedores disponen de distintos niveles de almacenamiento en disco para las instancias de m\u00e1quina: desde el almacenamiento de tipo EBS, que suele ser el m\u00e1s lento, hasta las unidades SSD NVRAM de alto rendimiento.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cualquier tipo de almacenamiento funcionar\u00e1, pero la evaluaci\u00f3n debe tener en cuenta que el rendimiento de los tipos de volumen es, posiblemente, el factor m\u00e1s importante para las escrituras duraderas, independientemente de la base de datos que se est\u00e9 evaluando. Por ejemplo, <\/span><a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/ebs-volume-types.html\"><span style=\"font-weight: 400;\">este enlace de documentaci\u00f3n de AWS<\/span><\/a><span style=\"font-weight: 400;\"> muestra lo complicados que pueden ser los tipos de almacenamiento en la nube p\u00fablica.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Selecci\u00f3n del tipo de instancia<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Los clientes que han probado con \u00e9xito la durabilidad de Couchbase intentan hacer coincidir el entorno de pruebas con su entorno alojado de producci\u00f3n. Sin embargo, los clientes tambi\u00e9n despliegan <\/span><i><span style=\"font-weight: 400;\">t3.grande <\/span><\/i><span style=\"font-weight: 400;\">o <\/span><i><span style=\"font-weight: 400;\">t3.peque\u00f1o <\/span><\/i><span style=\"font-weight: 400;\">para probarlo y luego preguntar por qu\u00e9 no funciona.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Escenarios de red<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Aseg\u00farese de que el cliente est\u00e1 en la misma red que el entorno del servidor para obtener el mejor rendimiento. A menudo, las pruebas de baja calidad se ejecutan en un ordenador port\u00e1til a trav\u00e9s de la red inal\u00e1mbrica a un nombre de host expuesto p\u00fablicamente en una nube p\u00fablica. Hay tantos saltos de red desde la conexi\u00f3n inal\u00e1mbrica al router, la red p\u00fablica, la red alojada, etc. que las latencias son enormes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En resumen, con el manejo de eventos para escrituras duraderas, Couchbase tiene escrituras muy r\u00e1pidas. Las escrituras duraderas se realizan tan r\u00e1pido como el entorno de alojamiento lo permita y\/o est\u00e9 configurado para ello.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Pruebas de durabilidad de Couchbase<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">La durabilidad puede ser probada usando cualquier aplicaci\u00f3n que ya hayas creado con el SDK de Couchbase, sin embargo, para simplificar y estandarizar las pruebas, una de nuestras herramientas puede ayudar.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Couchbase Server incluye una herramienta de l\u00ednea de comandos de medici\u00f3n del rendimiento llamada <\/span><i><span style=\"font-weight: 400;\">cbc-pillowfight<\/span><\/i><span style=\"font-weight: 400;\">. Pillowfight ha sido parte de Couchbase durante a\u00f1os, por lo que es una roca s\u00f3lida para las pruebas de rendimiento. Pillowfight est\u00e1 basado en el C SDK de Couchbase por lo que es altamente eficiente. Es muy r\u00e1pido, \u00a1hasta el punto de ser demasiado r\u00e1pido! \u00bfQu\u00e9 quiero decir con \"demasiado r\u00e1pido\"? Voy a llegar a eso en un momento.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La informaci\u00f3n de instalaci\u00f3n y configuraci\u00f3n se presenta en <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/performance-testing-load-testing-couchbase-pillowfight\/\"><span style=\"font-weight: 400;\">este blog anterior<\/span><\/a><span style=\"font-weight: 400;\"> con respecto a las pruebas de Couchbase con pillowfight y algunos escenarios de ejemplo se presentan a continuaci\u00f3n.\u00a0<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Opciones para las pruebas de rendimiento con pillowfight<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Los ajustes por defecto de pillowfight pueden no ser \u00f3ptimos para el tipo de aplicaci\u00f3n que vas a utilizar con Couchbase. Hay muchas formas de ajustar pillowfight para que se adapte mejor a tus casos de uso. Para ver la lista completa de opciones, escribe <\/span><i><span style=\"font-weight: 400;\">cbc-pillowfight -help<\/span><\/i><span style=\"font-weight: 400;\"> en la l\u00ednea de comandos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">He aqu\u00ed algunas opciones notables que quiz\u00e1 quiera probar:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><em>-I<\/em> <\/span><span style=\"font-weight: 400;\">o <\/span><em><span style=\"font-weight: 400;\">-num-items <\/span><\/em><span style=\"font-weight: 400;\">con un n\u00famero, para especificar sobre cu\u00e1ntos documentos desea operar.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><em><span style=\"font-weight: 400;\">-json<\/span><\/em><span style=\"font-weight: 400;\"> para utilizar cargas JSON en los documentos. Por defecto, los documentos se crean con <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/using-couchbase-to-store-non-json-data\/\"><span style=\"font-weight: 400;\">cargas \u00fatiles no JSON<\/span><\/a><span style=\"font-weight: 400;\">pero es posible que desee disponer de documentos JSON reales para probar otros aspectos del rendimiento mientras se ejecuta la lucha de almohadas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><em><span style=\"font-weight: 400;\">-e<\/span><\/em><span style=\"font-weight: 400;\"> para que los documentos caduquen despu\u00e9s de un cierto periodo de tiempo. Si est\u00e1s usando Couchbase como cach\u00e9 o almacenamiento a corto plazo, querr\u00e1s usar esta configuraci\u00f3n para monitorizar el efecto de los documentos que caducan.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><em><span style=\"font-weight: 400;\">-subdoc<\/span><\/em><span style=\"font-weight: 400;\"> para utilizar la API de subdocumentos. No todas las operaciones tendr\u00e1n que realizarse en un documento entero.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><em>-M<\/em> <\/span><span style=\"font-weight: 400;\">o <\/span><em><span style=\"font-weight: 400;\">-tama\u00f1o m\u00e1ximo<\/span><\/em><span style=\"font-weight: 400;\"> para fijar un l\u00edmite al tama\u00f1o de los documentos. Es posible que desee ajustar esto para adaptar un tama\u00f1o de documento m\u00e1s realista para su sistema. Tambi\u00e9n existen los correspondientes -m y -min-size<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">He aqu\u00ed otro ejemplo utilizando las opciones anteriores:<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">cbc-pillowfight.exe -U couchbase:\/\/localhost\/pillow -u Administrador -P contrase\u00f1a -I 10000 -json -e 10 -subdoc -M 1024<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">Esto iniciar\u00e1 una pelea de almohadas usando 10000 documentos JSON, que expiran despu\u00e9s de 10 segundos, usan la API de sub-documento, y tiene un tama\u00f1o m\u00e1ximo de documento de 1024 bytes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nota: Existe un <\/span><em><span style=\"font-weight: 400;\">-t -num-threads<\/span><\/em><span style=\"font-weight: 400;\"> opci\u00f3n. Actualmente, si utiliza Windows (como yo), est\u00e1 limitado a un \u00fanico subproceso (v\u00e9ase <\/span><a href=\"https:\/\/github.com\/couchbase\/libcouchbase\/blob\/master\/tools\/cbc-pillowfight.cc#L874-L879\"><span style=\"font-weight: 400;\">este c\u00f3digo<\/span><\/a><span style=\"font-weight: 400;\">).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pillowfight puede ajustarse para operaciones espec\u00edficas, especialmente duraderas escribe pruebas de rendimiento.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Repasemos este comando de pelea de almohadas:<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">cbc-pillowfight -U \/ -u  -P  -I 2000 -set-pct=100 -min-size=100 -max-size=250 -t 10 -durability majority_and_persist_to_active -no-population<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfQu\u00e9 hace este comando?\u00a0<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-I 2000<\/span><\/em> <span style=\"font-weight: 400;\">es el n\u00famero de art\u00edculos, 2000.\u00a0<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-set-pct=100<\/span> <\/em><span style=\"font-weight: 400;\"><em>i<\/em>s 100% de las operaciones son escrituras. Si se establece en 50, entonces 50\/50 de escrituras a lecturas.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-tama\u00f1o-m\u00edn=100<\/span><\/em> <span style=\"font-weight: 400;\">es un documento de tama\u00f1o m\u00ednimo de 100 bytes.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-tama\u00f1o-m\u00e1x=250<\/span> <\/em><span style=\"font-weight: 400;\">es un documento de tama\u00f1o m\u00e1ximo de 250 bytes. Pillowfight aleatorizar\u00e1 los documentos de 100 a 250 bytes.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-t 10<\/span> <\/em><span style=\"font-weight: 400;\">es de 10 hilos<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-durabilidad mayor\u00eda_y_persistencia_a_actividad<\/span><\/em> <span style=\"font-weight: 400;\">es el ajuste de durabilidad<\/span><span style=\"font-weight: 400;\">. <\/span><span style=\"font-weight: 400;\">El SDK escribir\u00e1 en la mayor\u00eda de las r\u00e9plicas si hay m\u00e1s de una y esperar\u00e1 a que persista la copia activa en disco.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">-sin poblaci\u00f3n<\/span> <\/em><span style=\"font-weight: 400;\">consigna la escritura y luego la borra.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Gesti\u00f3n de hilos\/buffers<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Este comando seguir\u00e1 creando documentos y escribiendo en Couchbase tan r\u00e1pido como sea posible. Pillowfight crear\u00e1 una lista de claves como un array y escribir\u00e1 recursivamente. Una vez que llegue al final, volver\u00e1 al principio del array y comenzar\u00e1 a escribir las mismas claves de nuevo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfRecuerdas mi comentario anterior de \"demasiado r\u00e1pido\"? Al probar la durabilidad, especialmente en entornos de alojamiento lentos con redes lentas y almacenamiento masivo (EBS S3), pillowfight ser\u00e1 mucho m\u00e1s r\u00e1pido que la infraestructura. Esto significa que un hilo pillowfight todav\u00eda estar\u00e1 esperando para terminar mientras que otro hilo est\u00e1 esperando para hacer la siguiente escritura.<\/span><\/p>\n<p><b>\u00bfC\u00f3mo podemos crear una prueba que realmente compruebe la durabilidad?<\/b><span style=\"font-weight: 400;\"> Haz que el buffer de teclas sea grande y no vuelvas al principio.\u00a0<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">cbc-pillowfight -U \/ -u  -P  -I 2000000 -set-pct=100 -min-size=100 -max-size=250 -t 10 -durability majority_and_persist_to_active -batch-size 1 -no-population<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfCu\u00e1l es la diferencia entre estos comandos? El comando anterior crea una lista de 2 millones de claves y s\u00f3lo la recorre una vez. Esto garantizar\u00e1 que un hilo no estar\u00e1 esperando la escritura de un hilo anterior para completar el mismo documento. Esto est\u00e1 realmente probando la capacidad de Couchbase y del entorno de hospedaje de escrituras duraderas. Es posible eliminar <\/span><i><span style=\"font-weight: 400;\">tama\u00f1o del lote<\/span><\/i><span style=\"font-weight: 400;\">lo m\u00e1s probable es que no haya hilos esperando para escribir.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Incluso si la prueba no utiliza pillowfight, la aplicaci\u00f3n y los criterios de prueba deben ser conscientes de que si se va a utilizar recursivamente un b\u00fafer de documentos, existe la probabilidad con hilos de que una escritura pueda estar esperando a que se complete otra escritura.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Conclusiones<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Couchbase es bastante capaz de realizar escrituras de alto rendimiento, pero cada caso de uso y las condiciones son \u00fanicas para la prueba. Configurar el entorno de pruebas adecuado es fundamental para cualquier prueba de escritura duradera.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pillowfight es una gran herramienta para probar Couchbase con muchas de las caracter\u00edsticas ya incorporadas como el establecimiento de la proporci\u00f3n de lecturas a escrituras, hilos, tama\u00f1o del documento, y los niveles de durabilidad.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si se est\u00e1 creando la aplicaci\u00f3n de prueba, es importante realizar pruebas que pongan a prueba realmente la base de datos y la infraestructura. Los resultados son subjetivos no s\u00f3lo para la base de datos, sino tambi\u00e9n para el entorno en el que se ha probado.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si tiene alguna pregunta, p\u00f3ngase en contacto conmigo en <\/span><a href=\"mailto:james.powenski@couchbase.com\"><span style=\"font-weight: 400;\">james.powenski@couchbase.com<\/span><\/a><span style=\"font-weight: 400;\"> Estar\u00e9 encantado de ayudarle.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Learn about performance testing for durable writes with SDK 3.0+ and setting up infrastructure using Couchbase\u2019s cbc-pillowfight. Performance-testing durability with any database can be subjective and challenging because there are other factors that influence performance. Durability is the act of [&hellip;]<\/p>","protected":false},"author":77552,"featured_media":12577,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9986,9417,2201],"tags":[2194,2072],"ppma_author":[9217],"class_list":["post-12561","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c","category-performance","category-tools-sdks","tag-durability","tag-pillowfight"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Durability Performance Testing With SDK 3.0+ - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Learn about performance testing for durable writes with SDK 3.0+ and setting up infrastructure using Couchbase\u2019s cbc-pillowfight.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/durability-performance-testing-with-sdk-3-0\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Durability Performance Testing With SDK 3.0+\" \/>\n<meta property=\"og:description\" content=\"Learn about performance testing for durable writes with SDK 3.0+ and setting up infrastructure using Couchbase\u2019s cbc-pillowfight.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/durability-performance-testing-with-sdk-3-0\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-13T16:00:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:49:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1709\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"James Powenski, Couchbase Senior Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Powenski, Couchbase Senior Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/\"},\"author\":{\"name\":\"james.powenski\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f\"},\"headline\":\"Durability Performance Testing With SDK 3.0+\",\"datePublished\":\"2021-12-13T16:00:12+00:00\",\"dateModified\":\"2025-06-14T04:49:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/\"},\"wordCount\":1707,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg\",\"keywords\":[\"durability\",\"pillowfight\"],\"articleSection\":[\"C\/C++\",\"High Performance\",\"Tools &amp; SDKs\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/\",\"name\":\"Durability Performance Testing With SDK 3.0+ - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg\",\"datePublished\":\"2021-12-13T16:00:12+00:00\",\"dateModified\":\"2025-06-14T04:49:43+00:00\",\"description\":\"Learn about performance testing for durable writes with SDK 3.0+ and setting up infrastructure using Couchbase\u2019s cbc-pillowfight.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg\",\"width\":2560,\"height\":1709,\"caption\":\"women in tech\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Durability Performance Testing With SDK 3.0+\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f\",\"name\":\"james.powenski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e45dcba7caaaefe99434ad0a75964282\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg\",\"caption\":\"james.powenski\"},\"description\":\"Couchbase Senior Solutions Engineer\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/james-powenski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Durability Performance Testing With SDK 3.0+ - The Couchbase Blog","description":"Aprende sobre pruebas de rendimiento para escrituras duraderas con SDK 3.0+ y c\u00f3mo configurar la infraestructura usando cbc-pillowfight de Couchbase.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/durability-performance-testing-with-sdk-3-0\/","og_locale":"es_MX","og_type":"article","og_title":"Durability Performance Testing With SDK 3.0+","og_description":"Learn about performance testing for durable writes with SDK 3.0+ and setting up infrastructure using Couchbase\u2019s cbc-pillowfight.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/durability-performance-testing-with-sdk-3-0\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-12-13T16:00:12+00:00","article_modified_time":"2025-06-14T04:49:43+00:00","og_image":[{"width":2560,"height":1709,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"James Powenski, Couchbase Senior Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"James Powenski, Couchbase Senior Solutions Engineer","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/"},"author":{"name":"james.powenski","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f"},"headline":"Durability Performance Testing With SDK 3.0+","datePublished":"2021-12-13T16:00:12+00:00","dateModified":"2025-06-14T04:49:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/"},"wordCount":1707,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg","keywords":["durability","pillowfight"],"articleSection":["C\/C++","High Performance","Tools &amp; SDKs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/","url":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/","name":"Durability Performance Testing With SDK 3.0+ - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg","datePublished":"2021-12-13T16:00:12+00:00","dateModified":"2025-06-14T04:49:43+00:00","description":"Aprende sobre pruebas de rendimiento para escrituras duraderas con SDK 3.0+ y c\u00f3mo configurar la infraestructura usando cbc-pillowfight de Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/christina-wocintechchat-com-glRqyWJgUeY-unsplash-scaled.jpg","width":2560,"height":1709,"caption":"women in tech"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/durability-performance-testing-with-sdk-3-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Durability Performance Testing With SDK 3.0+"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f","name":"james.powenski","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e45dcba7caaaefe99434ad0a75964282","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg","caption":"james.powenski"},"description":"Ingeniero de soluciones senior de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/james-powenski\/"}]}},"authors":[{"term_id":9217,"user_id":77552,"is_guest":0,"slug":"james-powenski","display_name":"James Powenski, Couchbase Senior Solutions Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg"},"first_name":"James","last_name":"Powenski","user_url":"","author_category":"","description":"Ingeniero de soluciones senior de Couchbase"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/12561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/77552"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=12561"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/12561\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/12577"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=12561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=12561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=12561"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=12561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}