RadarURL

데이터베이스
2011.11.14 15:30

Apache MPM 방식 Prefork / Worker

조회 수 8968 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

원문 : http://www.camelrichard.org/apache-prefork-vs-worker
참고 : http://dakrink.tistory.com/45

 

Prefork는 일반적으로 Single CPU 또는 Dual CPU에서 성능이 좋고 Worker는 일반적으로 멀티 CPU 시스템에서 성능이 좋다.


•Prefork
<IfModule mpm_prefork_module>
      StartServers                   5
      MinSpareServers            5
      MaxSpareServers          10
      MaxClients                  150
      MaxRequestsPerChild     0
 </IfModule>
•Worker
<IfModule mpm_worker_module>
       StartServers                 2
       MaxClients               150
       MinSpareThreads       25
       MaxSpareThreads      75
       ThreadsPerChild         25
       MaxRequestsPerChild   0
</IfModule>


Apache MPM 이란?
MPM (Multi-Processing Module) : 다중 처리 모듈
☞ apache 가 받아들인 요청을 처리하기 위해 "자식 process" 에게 분배하는 방식이다.

종류 : 여러가지 종류가 있으나 대표적인 prefork 방식과 Worker 방식만 소개 하겠습니다.

Prefork
실행중인 프로세스 복제하여 실행 ( 메모리 영역까지 같이 복제)
프로세스가 소비하는 메모리가 많음.
응답프로세스를 미리 띄워놓고 클라이언트 요청시 자식 프로세스가 반응하게 되는 방식.

prefork MPM ( --with-mpm=profork) 컴파일
Prefork 방식은 일반적으로 single CPU 또는 Dual CPU에서 성능이 좋고


Worker
worker MPM ( --with-mpm=worker) 컴파일
Worker 방식은 일반적으로 멀티 CPU 시스템에서 성능이 좋다.
요청을 thread 단위로 처리 ( 최대 64개의 thread 처리 가능 )
지정된 만큼의 프로세스와 각 스레드를 준비하여 클라이언트의 요청을 받아들이는 설정


Prefork 방식과 Worker 방식의 차이점
(1)  Worker가 Prefork에 비해 적은 메모리 사용한다.
(2)  Worker : 통신량이 많은 서버에 적절한 형태를 가진다.
(3)  Prefork : 안전하지 않은 제 3자가 만든 모듈을 사용할 수 있다.
(4)  Prefork : 디버깅이 빈약한 플랫폼에서 쉽게 디버깅 할 수 있다.
(5)  ‘Worker‘ 와 ‘Prefork‘ 의 속도는 비슷하다.
(6)  apache MaxClient : Prefork 방식일 경우 최대 256 까지 변경 가능하다.

prefork 의 구동 방식은 child 프로세스를 똑같이 복사하면서 access를 처리하여, 이로인해 메모리도 똑같이 복사하게 되며 당연히 메모리를 많이 소비합니다.

이러한 단점을 극복하고자 나온게 httpd-2x.x 부터는 mpm 중에서 worker 가 추가되어 나왔으며, 모든 access 를 하나의 쓰레드로 처리하여, 결론적으로 메모리 소비에는 어느 정도 효과가 있으나, 하나의 쓰레드가 문제가 생기면 해당 쓰레드에 access 중인 모든 프로세스에 문제가 발생됩니다.

결론적으로 복제된 프로세스만 영향을 받는 prefork 에 비해서 굉장히 불안해 집니다.

대안으로 하나의 쓰레드가 처리하는 access 프로세스를 64개로 기본적으로 제한하고, 또는 수정할 수 있게되어 있으나, 이 부분도 더 개선이 되어야겠습니다.

 

출처 : http://umz.kr/04Hyb

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 928149
86 데이터베이스 [오라클] RAC(Real Application Cluster)이란? file JaeSoo 2023.05.01 96
85 데이터베이스 데이터베이스 튜닝 (DB Tuning) file JaeSoo 2023.04.27 346
84 데이터베이스 BCV (Business Continuance Volume) JaeSoo 2023.04.14 70
83 데이터베이스 MySQL Dump / Import (덤프 / 임포트) JaeSoo 2016.10.10 230
82 데이터베이스 mysql이 cpu를 많이 점유하고, DB와의 연결상태가 좋지 않을때 JaeSoo 2016.07.05 339
81 데이터베이스 [Oracle] Lock 확인 및 Lock 해제 JaeSoo 2016.03.28 642
80 데이터베이스 Mysql slow-query를 이용한 로그 분석 JaeSoo 2015.03.17 697
79 데이터베이스 Mysql 데몬 문제 해결 방안 (cpulimit) 2 JaeSoo 2015.03.17 911
78 데이터베이스 mysql 5.5.x my.cnf 참고 JaeSoo 2015.03.16 673
77 데이터베이스 Mysql Slow query log 등록 JaeSoo 2015.03.16 785
76 데이터베이스 MYSQL 성능 향상 정리 JaeSoo 2015.03.16 628
75 데이터베이스 MySQL Query Cache 사용법 JaeSoo 2015.03.16 708
74 데이터베이스 Mysql 에서 Got a packet bigger than 'max_allowed_packet' bytes 오류 JaeSoo 2014.12.25 925
73 데이터베이스 MySQL 내부 변수 max_allowed_packet JaeSoo 2014.12.25 585
72 데이터베이스 Mysql binary log 정리, 삭제 주기 설정 JaeSoo 2014.11.17 1158
71 데이터베이스 MySQL 로그 파일 관리 2 - 로그 파일 남기기 JaeSoo 2014.11.17 1238
70 데이터베이스 MySQL 로그 파일 관리 1 - 설정 JaeSoo 2014.11.17 1156
69 데이터베이스 MySQL Binary Log 지우는 방법 JaeSoo 2014.11.17 1222
68 데이터베이스 MySQL 설치/사용시 발생 에러 유형별 대처방법 JaeSoo 2014.11.17 6890
67 데이터베이스 Mysql 데이터 폴더의 mysql-bin.xxx 파일들 관련 삭제 및 초기화 방법 JaeSoo 2014.11.17 1116
Board Pagination Prev 1 2 3 4 5 Next
/ 5


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너