콘텐츠로 이동

성능 측정

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 구현에 따라 달라집니다.

방법론, 설정 파일, 부하 생성 도구, 전체 결과 표는 서버 저장소에 있습니다.

원시 실행 증거는 메인테이너가 로컬에 보관하며 의도적으로 공개하지 않습니다.