'httpd'에 해당되는 글 1건

  1. 2016.01.12 [아파치] mod_mpm 모듈

MPM(Multi Processing Module)은 아파치에 들어오는 요청을 프로세스/쓰레드 기반 방식으로 처리하며,

다음과 같이 Prefork, Worker 2가지 방식을 선택할 수 있다.


Prefork 방식


1. 기본 설정이며, 1개의 프로세스에 1개의 쓰레드가 요청을 처리한다. (프로세스:쓰레드=1:1)


2. 요청별로 프로세스가 생성되기 때문에 메모리 정보를 공유하지 않으므로 안정적인 장점이 있다.


3. 각 요청마다 하나의 프로세스가 소비되기 때문에, 메모리의 사용량이 높다.


4. 설정정보


<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers       10
    MaxClients            2048
    MaxRequestsPerChild   0
</IfModule> 


1) StartServers

- 웹서버 시작시 띄우게 되는 자식 프로세스 수. 디폴트값 3.

- 운영시 MinSpareServers, MaxSpareServers에 의해 프로세스가 변동되므로 설정시 큰 의미는 없다.


2) MinSpareServers

- 클라이언트 요청이 적을 경우 아파치는 이 값만큼 자식 프로세스를 유지하려 시도한다.

- 즉, 절대적인 값이 아니다.


3) MaxSpareServers

- 클라이언트 요청이 많을 경우 아파치는 이 값만큼 자식 프로세스를 줄이려고 시도한다.

- 역시 절대적인 값이 아니다.


4) MaxClients

- 클라이언트 요청을 동시에 처리될 수 있는 최대값. 이 값을 초과하면 ListenBackLog에 설정된 값만큼 큐잉 된다.

- 동시접속이 많을 경우 이 값을 증가시켜 준다.

- 이 값은 아파치+톰캣 연동시 톰캣의 maxThreads값과 맞춰주는 것이 좋다.


5) MaxRequestsPerChild

- 자식 프로세스에서 처리할 수 있는 요청갯수를 제한한다.

- 0으로 설정하면 무한대.

- 500이라는 값으로 설정을 하게 되면 자식 프로세스는 500번의 요청을 처리하고 프로세스는 다시 fork되어야 한다.



Worker 방식


1. 1개의 프로세스에서 여러개의 쓰레드가 요청을 처리한다. (프로세스:쓰레드=1:N)


2. Prefork보다 메모리를 적게 사용하는 장점이 있으나, 프로세스내 메모리 정보는 쓰레드간 공유된다.


3. 동시접속이 많을 경우, Prefork방식보다 유리하게 처리할 수 있다.


4. Worker방식을 사용하기 위해서는 컴파일시 --with-mpm=worker 옵션을 주어야 한다. 현재 아파치의 MPM방식을 확인하기 위해서는 httpd -V 또는 http -l 명령을 실행하면 된다.


5. 설정정보


<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>


1) StartServers

- Prefork방식과 동일


2) MaxClients

- 클라이언트 요청을 동시에 처리할 수 있는 최대값(프로세스 X 쓰레드)


3) MinSpareThreads

- 최소로 유지하려 하는 쓰레드 값


4) MaxSpareThreads

- 최대로 유지하려 하는 쓰레드 값


5) ThreadsPerChild

- 자식 프로세스가 가질 수 있는 쓰레드 최대값


6) MaxRequestsPerChild

Prefork방식과 동일



※ 참고자료

http://www.koreaidc.com/bbs/set_view.php?b_name=idcpds&w_no=153

http://mcpaint.tistory.com/151

http://www.isfull.com/bbs/board.php?bo_table=tb_xnux&wr_id=286

http://itnp.kr/roller/home/entry/아파치_동시_접속자_수_늘리기

http://jjosh.tistory.com/entry/최대-성능을-위한-아파치-환경설정


'서버 > 아파치' 카테고리의 다른 글

[아파치] mod_rewrite 모듈  (0) 2016.02.23
[아파치] mod_setenvif 모듈  (0) 2016.02.22
[아파치]VirtualHost 설정  (0) 2016.02.21
[아파치]httpd.conf 서버설정  (0) 2016.02.20
[아파치] httpd.conf 전역설정  (0) 2016.02.12
Posted by SungHoon, Park
,