성능 측정
Pingclair는 nginx, Caddy와 같은 호스트에서 측정합니다. 각 후보는 2개 CPU로 제한한 컨테이너에서 동작하고 워커 수와 1 KiB 페이로드도 같습니다. 리버스 프록시 백엔드는 같은 Docker 네트워크의 별도 컨테이너에서, 부하 생성 도구는 네이티브로 실행합니다.
📊 결과
섹션 제목: “📊 결과”각 값은 3회 교차 실행(각 50,000 요청)의 중앙값입니다. 모든 요청이 성공한 행만 집계합니다.
| 시나리오 | Pingclair | nginx 1.31.6 | Caddy 2.11.4 |
|---|---|---|---|
| HTTP/1.1 정적 | 46,125 | 39,478 | 18,266 |
| HTTPS/1.1 정적 | 40,721 | 31,508 | 19,978 |
| HTTP/2 정적 | 92,369 | 41,972 | 17,424 |
| HTTP/3 정적 | 56,180 | 55,638 | 22,912 |
| HTTP/1.1 리버스 프록시 | 20,856 | 22,584 | 17,117 |
| HTTPS/1.1 리버스 프록시 | 20,297 | 21,944 | 16,660 |
| HTTP/2 리버스 프록시 | 23,181 | 20,396 | 미완료 |
| HTTP/3 리버스 프록시 | 28,078 | 22,213 | 미완료 |
단위는 초당 요청 수입니다. nginx와 비교하면 정적 제공에서 HTTP/1.1, HTTPS/1.1, HTTP/2는 Pingclair가 앞서고(각각 1.2배, 1.3배, 2.2배), HTTP/3는 사실상 동일합니다. 리버스 프록시에서는 HTTP/2가 14%, HTTP/3가 26% 앞서며, HTTP/1.1과 HTTPS/1.1은 nginx에 약 8% 뒤처집니다.
📐 이 숫자를 제한하는 조건
섹션 제목: “📐 이 숫자를 제한하는 조건”- 호스트는 노트북입니다. 측정은 Apple M2와 OrbStack에서 했습니다. 절대 처리량은 용량 주장이 아니며, 비율도 이 통제된 부하에서의 상대 성능을 말합니다.
- 행 비교는 같은 프로토콜 안에서만. HTTP/3는 다른 행과 다른 부하 생성 도구를 쓰므로 절대 처리량을 프로토콜 간에 비교하지 말고, 같은 행 안에서 서버끼리 비교하십시오.
- 미완료 칸은 비교가 아닙니다. 이 호스트와 이 측정 도구에서 Caddy는 리버스 프록시의 HTTP/2와 HTTP/3 행을 완료하지 못했습니다. 시험한 동시성에서 업스트림 연결 생성이 잦아 컨테이너가 쓸 수 있는 임시 포트가 고갈되었기 때문입니다. 이 칸은 다른 부하로 측정한 값이 아니라 “미완료”로 적습니다.
- 결과는 호스트에 의존합니다. 서버 간 상대 순위는 CPU 아키텍처, 커널, 워커 수, TLS 구현에 따라 달라집니다.
🧾 출처
섹션 제목: “🧾 출처”방법론, 설정 파일, 부하 생성 도구, 전체 결과 표는 서버 저장소에 있습니다.
원시 실행 증거는 메인테이너가 로컬에 보관하며 의도적으로 공개하지 않습니다.
