피드로 돌아가기
Actix-web: #1 in 15 Out of 22 Tests — Dissecting the Benchmark King (HttpArena Deep Dive)
Dev.toDev.to
Backend

Actix-web: #1 in 15 Out of 22 Tests — Dissecting the Benchmark King (HttpArena Deep Dive)

Actix-web이 HttpArena 벤치마크에서 47개 프레임워크 중 22개 테스트 중 15개에서 1위를 기록하며 23M rps 처리량 달성

Benny2026년 3월 25일9intermediate

Context

Rust 웹 프레임워크 선택 시 성능과 개발 편의성 사이의 트레이드오프를 평가할 기준이 필요했다. 기존 벤치마크는 특정 프로토콜이나 워크로드만 측정하여 실제 프로덕션 환경 의사결정에 불충분했다.

Technical Solution

  • Tokio 기반 비동기 런타임 활용: Actix-web을 Tokio 위에 구축하여 메모리 효율성과 처리량 최적화
  • TLS 스택 선택: OpenSSL 대신 rustls를 기본 제공으로 설정하여 의존성 관리 단순화
  • 컴파일 최적화: thin LTO와 -O3 플래그, 네이티브 CPU 명령어 타겟팅 적용
  • 워커 모델 구성: CPU 코어당 1개 워커 + 4096 크기의 백로그 설정
  • 미들웨어 및 추출자 제공: 라우팅, 타입 안전 요청 추출, 컴프레션 등 프레임워크 기능 내장

Impact

  • HTTP/1.1 기선 성능: 4,096 연결에서 2.61M rps, 1.57ms 평균 레이턴시, 158MB 메모리 (47개 프레임워크 중 6위)
  • HTTP 파이프라이닝: 4,096 연결에서 23.0M rps, 2.84ms 레이턴시, 220MB 메모리 (47개 중 3위, Hyper 16.3M rps 초과)
  • JSON 직렬화: 4,096 연결에서 1.13M rps, 8.92 GB/s 대역폭 (47개 중 3위)
  • 혼합 워크로드: 4,096 연결에서 75,948 rps (go-fasthttp는 87,964 rps이나 10.2GB 메모리 사용 vs Actix 2.1GB)
  • 16,384 연결에서 혼합 워크로드: 157,549 rps (go-fasthttp 초과)
  • HTTP/2 기선: 256 연결에서 3.05M rps (21개 HTTP/2 가능 프레임워크 중 8위)
  • 메모리 효율성: 혼합 워크로드에서 2.1GB로 go-fasthttp 10.2GB, bun 5.4GB 대비 4.8배, 2.5배 절감

Key Takeaway

Actix-web은 C/Zig 기반 전문 시스템 수준의 처리량(23M rps)을 제공하면서도 라우팅, 미들웨어, 타입 추출자 등 풀 프레임워크 기능을 지원하며, 특히 메모리 제약이 있는 환경에서 고처리량을 유지하는 설계 가치를 보여준다.


Rust로 고성능 웹 API를 구축하는 팀이라면 bare HTTP 라이브러리 대신 Actix-web을 기본 선택으로 삼되, 압축(14,220 rps로 제한적)이나 파일 업로드(559 rps로 약함) 같은 특화 기능이 핵심 요구사항이면 사전에 벤치마킹하여 검증해야 한다.

원문 읽기