오늘: 16|어제: 16|전체: 234,076|회원: 118 (+0)|문서: 56,040 (+0)|댓글: 8,019 (+0)|첨부파일: 1,389 (+0)


Apache
2012.06.26 07:42

Apache 2 prefork 와 worker 차이

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

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
Extra Form

요즘 메모리 적게 먹는다며 엔진엑스(nginx)쓰시는 분들이 많아지고 있죠. .. 전 아파치를 쓰다 엔진엑스를 쓰려니..

당최.. 어려움을 격다 포기했습니다. 훔.. 그렇다고 남에게 설명할 실력도 안되는데 몇가지 적어봅니다.


보통 아파치를 사용하시는 분들의 경우 Prefork 모드를 이용하여 설치를 많이 하십니다. 우분투의 경우도 11.10까지

apt-get 로 설치를 하게되면 이방식으로 설치되어 오다 12.04 부터 worker가 기본으로 변경되었습니다.


이 방식들을 Apache(아파치)에서 이 방식들을 뭐라 하느냐! 바로 MPM이라 합니다.

MPM -> Multi Processing Module 로 다중 처리 모듈이란 말이구요 리눅스에서 보면 부모 프로세스 , 자식 프로세스

라는 말이 있습니다. 즉 아파치 웹 서버가 받아들이는 요청을 처리하기 위해 자식 프로세스에게 분배하는 방식입니다.

자신의 웹서버 방식 확인은 httpd -v 해보시면 버전과 함께 사용된 모듈파일들이 나오는데 prefock.c 가 있다면 prefo

ck이고 worker.c가 있다면 worker입니다.


Prefork

실행중인 프로세스를 메모리 영역까지 복제하여 실행합니다. 프로세스가 소비하는 메모리가 많습니다. 이것 때문에

사람들이 엔진엑스보다 아파치가 메모리를 많이 먹는다 라고들 합니다. 

메모리는 많이 먹는 대신 응답 프로세스를 미리 띄어 놓고 클라이언트가 요청을 하면 자식 프로세스가 반응하게 됩

니다.


Worker

일반적으로 멀티 CPU인 서버에서의 성능이 뛰어납니다. 요즈음 쿼드 코어다 헥사코어다 해서 CPU들의 코어가 2개

이상인 시스템이 많죠 요청을 쓰레드(thread) 단위로 처리하며 최대 64개의 쓰레드로 할 수 있습니다.

지정된 만큼의 프로세스와 각 쓰레드를 준비하여 클라이언트의 요청을 받아 들이는 방식입니다. 대신 Prefork보다

아주 적은 메모리를 사용하게 됩니다. 


두 방식의 속도 차이는 없습니다. Worker이 Prefork에 비해 불안정적이다 라고 말하시는 분들도 재법 보았습니다.

국내에서는 대부분의 개인서버 또는 분들이 Prefork를 많이들 사용하십니다. 그런데 외국에서는 Prefork보다 Worker

을 더 많이 사용하는 추세입니다. 그리고 우분투 12.04의 경우도 기본 패키지 설치방식이 worker로 변경되었습니다.


훔.. 아파치를 고수하시는 분들에게는 한번 시도해봄직한 방식인데요 저도 제가 관리중인 서버들은 모두 worker로

운영하고 있습니다. 다들 불안정하다라고들 하시는데 뭐가 불안전한지는 모르겠네요^^;


똑같은 내용으로 xe공홈에 올렸습니다 :)


List of Articles
글쓴이 분류 제목 조회 수
Luatic™ XpressEngine .htaccess 파일 관련 팁(웹 사이트 퍼포먼스 향상 및 트래픽 절감 효과) file 2280
Luatic™ Apache .htaccess로 파일 업로드 방지하기 file 1798
루아틱 Apache Apache 2 prefork 와 worker 차이 23702
Omega3 Apache Apache 에서 최대 접속자 수 늘리기 1903
루아틱 Apache Apache의 rewrite Module 11774
Luatic™ ASP ASP.NET 란 file 2242
루아틱 Etc Byte(바이트) 와 bit(비트)의 차이 1 19783
Omega3 Linux CentOS 5.7& 6.2 에서 YUM으로 NGINX와 PHP5.3.10, PHP-FPM 설치하기 2153
Luatic™ Linux CentOS Yum 사용법 1 1748
Omega3 Linux centos에서 mysql 5.5로 업그레이드 4 2009
YJSoft™ XpressEngine Cloudflare Railgun 활성화 후 로그인이 몇초만에 풀린다면 3 1119
Luatic™ Apache cPanel MIME Types에 추가할 수 있는 것들 1852
Luatic™ PHP cPanel 에서 줌라(Joomra) 3.0 설치 후 한글 언어팩 설치방법. file 2167
YJSoft Etc DNSever 연결하기 2 file 2136
YJSoft™ PHP FastCGI 환경에서 PHP Digest 인증 사용 1 715
루아틱 Etc ftp에서 passive와 active 모드의 차이? 2 22601
YJSoft Etc Godaddy 도메인 루아틱에 연결하기 1 file 880
루아틱 Etc html 색상표 18479
Luatic™ WebServer HTTP Status Code 1169
루아틱 PHP KimsQ RB로 홈페이지+모바일홈피 5분만에 만들기 1 15624
Board Pagination ‹ Prev 1 2 3 4 5 6 Next ›
/ 6

처음