Inicio Rápido de Bencher Bare Metal
¿Qué es Bencher?
Bencher es un conjunto de herramientas de benchmarking continuo. ¿Alguna vez has tenido un impacto de regresión de rendimiento en tus usuarios? Bencher podría haber evitado que eso sucediera. Bencher te permite detectar y prevenir las regresiones de rendimiento antes de que se fusionen.
- Ejecutar: Ejecute sus benchmarks localmente o en CI usando exactamente los mismos runners bare metal y sus herramientas de benchmarking favoritas. La CLI
bencherorquesta la ejecución de sus benchmarks en bare metal y almacena sus resultados. - Seguir: Sigue los resultados de tus benchmarks con el tiempo. Monitoriza, realiza consultas y representa gráficamente los resultados utilizando la consola web de Bencher basándose en la rama de origen, el banco de pruebas y la medida.
- Capturar: Captura las regresiones de rendimiento localmente o en CI usando exactamente el mismo hardware bare metal. Bencher utiliza analíticas de vanguardia y personalizables para detectar regresiones de rendimiento antes de que se fusionen.
Por las mismas razones que las pruebas unitarias se ejecutan para prevenir regresiones funcionales, los benchmarks deberían ejecutarse con Bencher para prevenir regresiones de rendimiento. ¡Los errores de rendimiento son errores!
Instalar la CLI de bencher
Selecciona tu sistema operativo y ejecuta el comando proporcionado para instalar la CLI de bencher.
Para más detalles, consulta la documentación de instalación de la CLI de bencher.
⠀curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | shcurl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | shcargo install --git https://github.com/bencherdev/bencher --branch main --locked --force bencher_clipowershell -c "irm https://bencher.dev/download/install-cli.ps1 | iex"⠀Ahora, verifiquemos que tienes instalada la CLI de bencher. Ejecuta:
bencher --versionbencher --versionbencher --versionbencher --versionDeberías ver:
bencher 0.6.2Crear un Proyecto
Antes de poder subir una imagen de benchmark, necesitas un proyecto de Bencher.
La forma más fácil de crear uno es ejecutar el subcomando CLI bencher run
con el subcomando bencher mock. Ejecuta:
bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"Esto crea un nuevo proyecto en Bencher Cloud.
Observa la URL de View report en la salida.
Tu slug de proyecto es el segmento de ruta después de /perf/ en la URL.
Por ejemplo, si la URL es:
https://bencher.dev/perf/my-project-abc1234/reports/709d3476-51a4-4939-9584-75d9a2c04c54entonces tu slug de proyecto es my-project-abc1234.
Necesitarás este slug de proyecto en los siguientes pasos.
Sube tu Imagen de Benchmark
Bencher Bare Metal ejecuta benchmarks empaquetados como imágenes de contenedor OCI en hardware dedicado.
Para este inicio rápido, usaremos la imagen Docker de la CLI de bencher como nuestra imagen de benchmark.
No se necesita una imagen personalizada.
Primero, descarga la imagen de la CLI de bencher desde GitHub Container Registry.
Ejecuta:
docker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestA continuación, reetiqueta la imagen para el registro OCI de Bencher.
Reemplaza YOUR_PROJECT_SLUG con el slug de proyecto del paso anterior:
docker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestLuego, inicia sesión en el registro OCI de Bencher y sube la imagen:
docker login registry.bencher.devdocker login registry.bencher.devdocker login registry.bencher.devdocker login registry.bencher.devdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestPara más detalles sobre cómo crear tu propia imagen personalizada, consulta la documentación de Imagen.
Rastrea tus Benchmarks en Bare Metal
¡Ya estás listo para rastrear los resultados de tus benchmarks en hardware dedicado!
Para hacerlo, usarás el subcomando CLI bencher run
para ejecutar tus benchmarks y recopilar los resultados.
Reemplaza YOUR_PROJECT_SLUG con el slug de proyecto de los pasos anteriores y ejecuta:
bencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonEstamos usando el subcomando bencher noise como nuestro comando de benchmark para generar algunos datos de muestra.
Mide qué tan ruidoso es tu entorno de benchmark.
Cuando usamos la opción --format json, los resultados se generan en Bencher Metric Format (BMF).
Si todo funciona como se espera, el final de la salida debería verse algo así:
View report: https://bencher.dev/perf/project-abc4567-wxyz123456789/reports/29d61b7c-5d80-4ac2-a118-f80bc5de431b
View results:- bencher::noise::cache_jitter (Cache Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=6bed122a-b0d1-42e6-93c1-8736a910ec9c&measures=fdee350f-f53a-44bc-af7c-2f4c51415ea8&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::composite (Noise Score): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=a5d0aea8-666f-4554-958a-9ad8acf1a20d&measures=995e8a26-58ee-46c4-8ce7-d0162b7d9d86&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::compute_jitter (Compute Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=489b1d60-5dbd-43cd-bb96-ba50bcba648a&measures=8b715d47-ed42-4ac5-a380-4fe4143aa159&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::io_jitter (I/O Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=0a3da391-2fe3-40ec-8a10-983e81231af8&measures=b34f6fd4-60ff-4866-a7a4-60396aab976a&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
Claim this project: https://bencher.dev/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4Ahora puedes ver los resultados de cada uno de tus benchmarks en el navegador.
Haz clic o copia y pega los enlaces de View results.
Para reclamar estos resultados, haz clic o copia y pega el enlace Claim this project en tu navegador.
🐰 ¡Felicidades! ¡Has rastreado tus primeros resultados de benchmark en Bare Metal! 🎉