* MPM : Multi-Processing Module
=> apache 가 받아들인 요청을 처리하기 위해 "자식 process" 에게 분배하는 방식
* 종류 : 여러가지 종류가 있으나 대표적인 prefork 방식과 Worker 방식만 소개 하겠습니다.
1) Prefork
실행중인 프로세스 복제하여 실행 ( 메모리 영역까지 같이 복제)
프로세스가 소비하는 메모리가 많음.
2) Worker
요청을 thread 단위로 처리 ( 최대 64개의 thread 처리 가능 )
* Prefork 방식과 Worker 방식의 차이점
1) Worker가 Prefork에 비해 적은 메모리 사용
2) Worker : 통신량이 많은 서버에 적절한 형태
3) Prefork : 안전하지 않은 제 3자가 만든 모듈 사용가능
4) Prefork : 디버깅이 빈약한 플랫폼에서 쉬운 디버깅 가능
5) apache MaxClient : Prefork 방식일 경우 최대 256 까지 변경 가능
* 최근의 추세
성능에 주안점을 둔 worker 방식으로 많이 설치
* 참고사항
Maxclient 를 늘리기 위한 설정 ( Prefork 방식일 경우 )
1) apache 1.x 버전
Apache 소스 디렉토리/src/include/httpd.h 파일을 편집기로 open
define HARD_SERVER_LIMIT 256 => 512 혹은 1024 등으로 변경 저장후 컴파일
2) apache 2.x~ 2.2.x 버전
apache소스디렉토리/server/mpm/prefork/prefork.c 파일을 편집기로 open
define DEFAULT_SERVER_LIMIT 256 => 512 혹은 1024 등으로 변경
Maxclient 를 늘리기 위한 설정 ( Worker 방식일 경우 - 2.x버전에 한정됨)
1) Maxclient 는 StartServers * ThreadsPerChild 로 정해짐
( MaxClient = StartServer * ThreadsPerChild )
=> worker 방식은 각각의 자식프로세스별로 여러개의 thread를 생성해서 요청을
처리하기 때문
2) Maxclient 를 늘리기 위한 설정
apache소스디렉토리/server/mpm/worker/worker.c 파일 을 수정
( define DEFAULT_SERVER_LIMIT 16 을 변경 )
'프로그램개발 > Linux(Apache.vim)' 카테고리의 다른 글
아파치 튜닝 - MPM (mulity processing module) (0) | 2014.01.14 |
---|---|
도대체 KeepAlive란 무엇인가? (0) | 2014.01.14 |
ping 체크로 서버 생존여부 판별해서 sms 전송하는 쉘스크립트 (0) | 2014.01.08 |
일워(ilwar.com) 오픈기록이 완전 사이트 관리자 필독서 수준 (0) | 2014.01.06 |
다른분이 리눅스 최신버전으로 셋팅한거 참고 (0) | 2013.12.30 |