1. 개요

Apache HTTP Server의 event 방식 MPM에 대한 내용이다.


2. worker 방식과의 관계

event 방식은 사실 worker 방식에 기반하고 있다. 따라서 MPM 설정 역시 worker 방식과 동일하다. 물론 AsyncRequestWorkerFactor와 같은 새로운 파라미터가 등장하기도 했다.


3. AsyncRequestWorkerFactor

  • 프로세스 당 동시 connection 제한에 대한 파라미터이다. default는 2다.
  • 하나의 프로세스는 현재 connection 수가 "ThreadsPerChild + (AsyncRequestWorkerFactor * number of idle workers)" 보다 작을 때만 새로운 connection을 받아들인다.

4. 매커니즘

4-1. 기존 방식의 문제점

Keepalive 시에, 클라이언트로부터 요청을 기다리고 있는 차일드 프로세스 혹은 차일드 스레드 전체를 keep하게 된다.

4-2. 해결책

event 방식의 경우 4-1의 문제를 해결하기 위하여 리스닝 소켓과 기타 모든 소켓을 처리하는 각 프로세스를 위한 전용 리스너 스레드를 사용한다.


5. mod_status

Async Connection을 위한 다음과 같은 status가 추가되었다.

  • Writing
  • Keep-alive
  • Closing