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

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

OSSW(Open Source System SoftWare 2014. 10. 13. 17:10

 

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

 

 

o 정의

- 하나의 자식 프로세스가 하나의 스레드를 갖는 구조.

- 하나의 자식 프로세스는 하나의 연결을 담당.

- 프로세스 생성이므로 메모리 사용량이 높음.

- 프로세스 간 메모리를 직접 공유하지 않으므로, 메모리 공간이 독립적이어서 안정적.

 

o 설정 및 지시어 설명

<IfModule mpm_prefork_module>

 

  StartServers 5

  MinSpareServers 5

  MaxSpareServers 10

  MaxClients 150

  MaxRequestsPerChild 0

</IfModule>

 

- StartServer : 아파치 서버의 자식 프로세스 수

- MinSpareServers, MaxSpareServers :

  부하가 적을 경우, MinSpareServers 값을 유지하려고 노력

  부하가 많을 경우, MaxSpareServers 값 이하를 유지하려고 노력

  즉, 절대적인 수치가 아니다.

- MaxClient : 초기 시작 시 실행 가능한 최대 아파치 자식 프로세스의 수

  worker방식의 MaxClient와는 전혀 다른 의미로 결국 클라이언트의 요청을 처리하는 용량을 말하므로 사실상 유사.

- MaxReqeustPerChild :클라이언트가 최대 요청 가능한 수 (0 인 경우 무한대)

 

o 참고

Prefork방식일 경우 Maxclient 를 늘리기 위한 설정

1) apache 1.x 버전

   Apache 소스 디렉토리/src/include/httpd.h에서

   define HARD_SERVER_LIMIT 256 ----> 512혹은 1024 등으로 변경 저장후 컴파일

2) apache 2.x~ 2.2.x 버전

   Apache 소스 디렉토리/server/mpm/prefork/prefork.c에서

   define DEFAULT_SERVER_LIMIT 256 ----> 512혹은 1024 등으로 변경후 재부팅

 

 

by. 현주희 (8월)