Bencher 베어 메탈 빠른 시작
Bencher란?
Bencher는 지속적인 벤치마킹 도구 모음입니다. 성능 회귀가 사용자에게 영향을 미친 경험이 있나요? Bencher가 그런 일이 일어나는 것을 막을 수 있었습니다. Bencher를 이용하면 성능 회귀를 병합되기 전에 탐지하고 예방할 수 있습니다.
- 실행: 완전히 동일한 베어 메탈 러너와 즐겨 사용하는 벤치마킹 도구를 사용하여 로컬 또는 CI에서 벤치마크를 실행합니다.
bencherCLI는 베어 메탈에서 벤치마크 실행을 조율하고 결과를 저장합니다. - 추적: 벤치마크 결과를 시간이 지남에 따라 추적합니다. 소스 브랜치, 테스트 베드, 측정 기반의 Bencher 웹 콘솔을 사용하여 결과를 모니터링, 쿼리, 그래프로 만듭니다.
- 캐치: 완전히 동일한 베어 메탈 하드웨어를 사용하여 로컬 또는 CI에서 성능 회귀를 잡아냅니다. Bencher는 최첨단, 사용자 정의 가능한 분석을 사용하여 병합되기 전에 성능 회귀를 탐지합니다.
단위 테스트가 기능 회귀를 방지하기 위해 실행되는 것처럼, 벤치마크는 Bencher와 함께 실행되어 성능 회귀를 방지해야 합니다. 성능 버그도 버그입니다!
bencher CLI 설치
운영 체제를 선택하고 제공된 명령을 실행하여 bencher CLI를 설치하세요.
자세한 내용은 bencher CLI 설치 문서를 참조하세요.
⠀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"⠀이제 bencher CLI가 설치되어 있는지 확인해 봅시다. 다음을 실행하세요:
bencher --versionbencher --versionbencher --versionbencher --version다음과 같은 출력이 보여야 합니다:
bencher 0.6.2프로젝트 생성
벤치마크 이미지를 푸시하려면 먼저 Bencher 프로젝트가 필요합니다.
가장 쉬운 방법은 bencher run CLI 서브커맨드를
bencher mock 서브커맨드와 함께 실행하는 것입니다. 다음을 실행하세요:
bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"이렇게 하면 Bencher Cloud에 새 프로젝트가 생성됩니다.
출력에서 View report URL을 확인하세요.
프로젝트 슬러그는 URL에서 /perf/ 다음에 오는 경로 세그먼트입니다.
예를 들어, URL이 다음과 같다면:
https://bencher.dev/perf/my-project-abc1234/reports/709d3476-51a4-4939-9584-75d9a2c04c54프로젝트 슬러그는 my-project-abc1234입니다.
다음 단계에서 이 프로젝트 슬러그가 필요합니다.
벤치마크 이미지 푸시
Bencher 베어 메탈은 전용 하드웨어에서 OCI 컨테이너 이미지로 패키징된 벤치마크를 실행합니다.
이 빠른 시작에서는 bencher CLI Docker 이미지를 벤치마크 이미지로 사용합니다.
커스텀 이미지는 필요하지 않습니다.
먼저, GitHub Container Registry에서 bencher CLI 이미지를 풀합니다.
다음을 실행하세요:
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:latest다음으로, Bencher OCI 레지스트리용으로 이미지를 리태깅합니다.
YOUR_PROJECT_SLUG를 이전 단계의 프로젝트 슬러그로 교체하세요:
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:latest그런 다음, Bencher OCI 레지스트리에 로그인하고 이미지를 푸시합니다:
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:latest커스텀 이미지를 직접 만드는 방법에 대한 자세한 내용은 이미지 문서를 참조하세요.
베어 메탈 벤치마크 추적
이제 전용 하드웨어에서 벤치마크 결과를 추적할 준비가 되었습니다!
이를 위해 bencher run CLI 서브커맨드를 사용하여
벤치마크를 실행하고 결과를 수집합니다.
YOUR_PROJECT_SLUG를 이전 단계의 프로젝트 슬러그로 교체하고 다음을 실행하세요:
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 json샘플 데이터를 생성하기 위한 벤치마크 커맨드로 bencher noise 서브커맨드를 사용합니다.
이는 벤치마크 환경의 노이즈가 얼마나 되는지를 측정합니다.
--format json 옵션을 사용하면 결과가 Bencher Metric Format (BMF)로 출력됩니다.
모든 것이 예상대로 동작하면, 출력의 마지막 부분은 다음과 같이 표시되어야 합니다:
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-8e18d5d062c4이제 브라우저에서 각 벤치마크의 결과를 볼 수 있습니다.
View results의 링크를 클릭하거나 복사하여 붙여넣으세요.
이 결과를 청구하려면, Claim this project 링크를 클릭하거나 브라우저에 복사하여 붙여넣으세요.
🐰 축하합니다! 첫 번째 베어 메탈 벤치마크 결과를 추적했습니다! 🎉