PAGI::Server 성능 및 하드닝

발행: (2025년 12월 16일 오전 01:52 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

성능 테스트

PAGI::Server는 PAGI 사양의 레퍼런스 구현입니다. 아래는 기본 “Hello world” 애플리케이션에 대한 고동시성 테스트 결과입니다:

https://github.com/jjn1056/pagi/blob/main/examples/01-hello-http/app.pl

테스트는 다음 명령어를 사용해 MacBook Pro (2.4 GHz 8‑Core Intel Core i9)에서 실행되었습니다:

LIBEV_FLAGS=8 ./bin/pagi-server --workers 16 --quiet --no-access-log --loop EV ./examples/01-hello-http/app.pl

결과

% hey -z 30s -c 500 http://localhost:5000/

Summary:
  Total:    30.0217 secs
  Slowest:  0.1110 secs
  Fastest:  0.0097 secs
  Average:  0.0312 secs
  Requests/sec: 16010.2544

Response time histogram:
  0.010 [1] |
  0.020 [376]   |
  0.030 [222649]    |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.040 [226482]    |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.050 [26058] |■■■■■
  0.060 [4279]  |■
  0.070 [492]   |
  0.081 [123]   |
  0.091 [173]   |
  0.101 [20]    |
  0.111 [2] |

Latency distribution:
  10% in 0.0249 secs
  25% in 0.0273 secs
  50% in 0.0304 secs
  75% in 0.0340 secs
  90% in 0.0381 secs
  95% in 0.0414 secs
  99% in 0.0505 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0097 secs, 0.1110 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0193 secs
  req write:    0.0000 secs, 0.0000 secs, 0.0091 secs
  resp wait:    0.0311 secs, 0.0096 secs, 0.1110 secs
  resp read:    0.0000 secs, 0.0000 secs, 0.0035 secs

Status code distribution:
  [200] 480655 responses

PAGI::Server는 모든 요청을 처리했으며, Starman에서 실행되는 유사한 PSGI “Hello world”에 비해 약 30 % 높은 처리량을 보였습니다. 반면 Starman은 동일한 하드웨어와 부하에서 약 80 %의 요청을 놓쳐, 일반적으로 Nginx와 같은 엣지 서버 뒤에 배치되는 이유를 보여줍니다.

준수 및 보안 테스트

PAGI::Server에 대한 지속적인 HTTP/WebSocket 준수 및 보안 테스트는 작업 초안에서 확인할 수 있습니다:

https://github.com/jjn1056/pagi/blob/main/lib/PAGI/Server/Compliance.pod

서버 스트레스 테스트 경험이 있는 자원봉사자를 환영합니다. 실제 운영 환경에서는 여전히 PAGI::Server를 프록시나 엣지 서버(예: Nginx) 뒤에 두는 것이 일반적이지만, 자체적으로 더 견고할수록 좋습니다.

Back to Blog

관련 글

더 보기 »