Apache - Parameters

1 분 소요

apache 주요 파라미터

  • MPM prefork 방식
- StartServers 2 // 시작시 작성된 하위 서버 프로세스 수 설정 
- MaxSpareServers 10 //최대 유휴 하위 서버 프로세스 수 설정 
- MinSpareServers 5 //최소 유휴 하위 서버 프로세스 수 설정 
  • MPM worker 방식
- ServerLimit        16  //활성 자식 프로세스 수에 대한 하드 제한 
- StartServers       2   //처음 시작할 프로세스 수
- MaxRequestWorkers  150 //동시에 제공 될 수 있는 최대 클라이언트 수 
- MinSpareThreads    25  //유휴 쓰레드 최소값
- MaxSpareThreads    75  //유휴 쓰레드 최대값 
- ThreadsPerChild    25  
- ThreadLimit        25  //서버 쓰레드 수의 하드 한계 
  • MPM event 방식

Primary Notice: 이 MPM은 HTTP에서 ‘keep alive problem’을 수정하려고합니다. 클라이언트가 첫 번째 요청을 완료 한 후에는 연결을 열어두고 동일한 소켓을 사용하여 추가 요청을 보내고 TCP 연결을 만드는 데 상당한 오버 헤드를 줄일 수 있습니다. 그러나 Apache HTTP Server는 전통적으로 클라이언트에서 데이터를 기다리는 전체 하위 프로세스 / 스레드를 유지하므로 자체 단점이 있습니다. 이 문제를 해결하기 위해이 MPM은 각 프로세스에 전용 리스너 스레드를 사용하여 청취 소켓, 연결 유지 상태에있는 모든 소켓, 처리기 및 프로토콜 필터가 작업을 수행 한 소켓 및 나머지 만 처리하는 소켓을 모두 처리합니다. 해야 할 일은 클라이언트에 데이터를 보내는 것입니다. 비 차단 소켓과 APR에 의해 노출 된 최신 커널 기능 (Linux의 epoll과 같은)을 활용하는이 새로운 아키텍처는 더 이상 천둥 무리 문제를 피하도록 구성된 mpm-accept Mutex를 필요로하지 않습니다. 단일 프로세스 / 스레드 블록이 처리 할 수있는 총 연결 량은 AsyncRequestWorkerFactor 지시문에 의해 조정됩니다.

ThreadsPerChild = 10
ServerLimit     = 4
AsyncRequestWorkerFactor = 2
MaxRequestWorkers = 40

idle_workers = 4 (average for all the processes to keep it simple)

max_connections = (ThreadsPerChild + (AsyncRequestWorkerFactor * idle_workers)) * ServerLimit
                = (10 + (2 * 4)) * 4 = 72
ThreadsPerChild   = 10
ServerLimit       = 4
MaxRequestWorkers = 40
AsyncRequestWorkerFactor = 2

If all the processes have all threads idle then:

idle_workers = 10

We can calculate the absolute maximum numbers of concurrent connections in two ways:

max_connections = (ThreadsPerChild + (AsyncRequestWorkerFactor * idle_workers)) * ServerLimit
                = (10 + (2 * 10)) * 4 = 120

max_connections = (AsyncRequestWorkerFactor + 1) * MaxRequestWorkers
                = (2 + 1) * 40 = 120

카테고리:

업데이트:

댓글남기기