1. 미들웨어이야기/02. Apache

Apache Multi-Processing Modules(MPM, 다중처리모듈)의 Worker 방식

OSSW(Open Source System SoftWare 2014. 10. 13. 18:30

 

 

Apache Multi-Processing Modules(MPM, 다중처리모듈) Worker 방식

 

 

 

o 정의

- 자식 프로세스가 여러 개의 스레드를 갖는 구조.

- 하나의 스레드는 하나의 연결을 담당.
- prefork 방식에 비해 메모리 사용량이 적음.
- 스레드 간에 메모리를 공유함. 리소스 경합이 발생하지 않도록 주의 필요.

- 통신량이 많은 서버에 적절. 특히 PHP를 쓰는 경우 유의.
 

 o 설정 및 지시어 설명

<IfModule mpm_worker_module>

  StartServers 2

  MaxClients 150

  MinSpareThreads 25

  MaxSpareThreads 75

  ThreadsPerChild 25

  MaxRequestsPerChild 0

</IfModule>

 

 

- StartServers : 아파치 서버 기동 시 프로세스의 수

- MaxClient :

  . 동시에 처리될 최대 connection(request)의 수

  . MaxClients 수치를 초과한 후 온 요청들은 ListenBackLog에 의해 큐잉

  . ThreadsPerChild 옵션과 매우 긴밀하게 작용

  .  동접자가 많을 경우, MaxClient값을 상향적용

  . OS FD(File Descriptor)값을 증가 시켜 MaxClient의 상한 값을 증가

- MinSpareThreads : 최소 thread개수 (idle 스레드가 MinSpareThreads 보다 커질때까지 생성)

 

- MaxSpareThreads : 최대 스레드 수 (idle 스레드가 MaxSpareThreads 보다 작아질 때까지 감소)

- ThreadPerChild : 자식 프로세스가 지속적으로 가질 수 있는 스레드

- MaxRequestPerChild : 자식 프로세스가 서비스할 수 있는 최대 요청 수

 

 o 참고

Maxclient 를 늘리기 위한 설정 ( Worker방식일 경우 - 2.x버전에 한정됨)

1) MaxClient = StartServer * ThreadsPerChild

2) Maxclient 를 늘리기 위한 설정

    apache소스디렉토리/server/mpm/worker/worker.c파일 을 수정

    define DEFAULT_SERVER_LIMIT 16 값을 상향조정

 

 

by. 현주희 (8월)