---
title: "Caliper: CI 러너 사이즈 벤치마킹 도구"
published: 2026-01-16T23:45:57.000Z
canonical: https://jeff.news/article/900
---
# Caliper: CI 러너 사이즈 벤치마킹 도구

Docker 컨테이너로 CPU/RAM 조합별 빌드 시간을 실측해서 CI 러너 최적 스펙을 찾아주는 CLI 도구. InfluxDB Rust 빌드 기준 4-8코어가 가성비 스위트스팟이고, RAM은 8GB 이상 올려봤자 의미 없다는 결과가 나옴.

CI 러너 스펙을 "감"으로 정하고 있었다면, 이제 실측 데이터로 결정할 수 있는 도구가 나옴. Caliper는 Docker 컨테이너에 리소스 제한을 걸어서 다양한 CPU/RAM 조합별 빌드 시간을 자동으로 측정해주는 CLI 도구임.

## 핵심 기능

- **매트릭스 모드**: CPU 값 목록과 RAM 값 목록을 주면 전체 조합을 자동으로 테스트함
- warm-up 실행 포함, 반복 실행 후 mean/median/P90/P95/stddev/성공률까지 계산해줌
- 설치는 curl 원라이너, 실행은 `caliper matrix all` 명령 하나로 끝

## 실측 결과: InfluxDB Rust 빌드

Hetzner 전용 서버에서 25개 설정 x 10회씩 돌린 결과가 꽤 흥미로움.

**CPU 스케일링 — 수확 체감이 확실함**
- 2코어 → 4코어: 빌드 시간 거의 반토막 (6분 → 3.5분)
- 4코어 → 8코어: 약 25% 추가 개선
- 8코어 → 16코어: 약 17% 개선
- 16코어 이상: 거의 차이 없음. 돈만 태우는 거임

**스위트스팟은 4~8코어**. 4코어 러너는 2코어 대비 비용 2배지만 속도가 1.7배라서, 시간 절약분 감안하면 비용 중립이면서 피드백은 훨씬 빨라짐.

**RAM은 8GB면 충분함**
- 4코어 기준 8GB: 3분 30초
- 4코어 기준 128GB: 3분 29초
- 차이가 1초임. 모든 CPU 설정에서 동일한 패턴. RAM에 돈 쓸 필요 없다는 거임

## 주의할 점

- 이건 Rust 빌드 기준 결과임
- JS 번들러, Python 테스트, Go 컴파일, Java 빌드는 전부 특성이 다름 — 메모리 바운드일 수도, I/O 바운드일 수도 있음
- 결국 자기 빌드는 직접 벤치마크해봐야 안다는 거임. 그래서 이 도구가 필요한 것이고

## 핵심 포인트

- 매트릭스 모드로 CPU x RAM 전 조합 자동 테스트, warm-up 포함 반복 실행 후 mean/median/P90/P95/stddev 산출
- InfluxDB Rust 빌드 25개 설정 x 10회 실측: 2→4코어 빌드 시간 절반(6분→3.5분), 4→8코어 25% 추가 개선, 16코어 이상은 거의 효과 없음
- RAM은 8GB든 128GB든 빌드 시간 차이 1초(3분30초 vs 3분29초)로 사실상 무의미
- 4코어 러너가 2코어 대비 2배 비용이지만 1.7배 빠르니 비용 중립에 피드백은 훨씬 빠름
- Rust 빌드 기준이라 JS/Python/Go/Java는 다를 수 있으니 직접 벤치마크 필요

## 인사이트

CI 비용 최적화를 감이 아닌 데이터로 할 수 있게 해주는 도구. 특히 RAM 과잉 프로비저닝이 흔한 실수라는 걸 수치로 보여줌.
