apache httpd.conf MPM 설정

# MPM(Multi Processing Module)
# 아파치 요청 처리를 프로세스(prefork) or 쓰레드(worker) 기반으로 할것이냐의 차이로 설정은 비슷하다.


참고 https://httpd.apache.org/docs/trunk/ko/programs/httpd.html
# 빌드시 같이 컴파일된 모듈(.c 정적모듈) 확인
# 참고로 동적모듈(LoadModule ... .so)은 웹서버 시작시 에러 없으면 정상 작동
httpd -l

# 버전 및 컴파일 옵션 확인
httpd -V (대문자 V)


# worker
# - n 개의 워커 쓰레드로 두고 각 쓰레드마다 요청 처리
# - 많은 요청을 처리할수 있지만, 쓰레드 하나가 전체 웹서버를 죽게 만들 수 있는 위험
# - 사용하려면 설치시 --with-mpm=worker
# httpd.conf 설정
<ifModule worker.c>
# 처음 시작시 생성할 쓰레드 개수
StartServers         2

# 여유분으로 최소 유지하는 쓰레드 개수
MinSpareThreads     25

# 여유분으로 최대 유지하는 쓰레드 개수
MaxSpareThreads     75

# 요청을 동시에 처리할 수 있는 쓰레드 개수
MaxRequestWorkers  150

# MaxRequestWorkers 가 생성할 수 있는 최대 쓰레드 개수
ServerLimit         16

# 프로세스당 쓰레드 개수
ThreadsPerChild     25
</IfModule>

# prefork
# n 개의 아피치 자식 프로세스로 각 프로세스마다 요청 처리(1process = 1thread)
# 메모리소요가 많이 되지만 안정적
# 사용하려면 설치시 --with-mpm=prefork(디폴트)
# httpd.conf 설정
<IfModule prefork.c>
# 처음 시작할때 생성할 프로세스 개수
StartServers        15

# 여유분으로 최소 유지하는 프로세스 개수
# 부하가 없어도 이값 위로 프로세스 개수를 유지하려고 한다.
# 절대적인것은 아니다.
MinSpareServers     10

# 여유분으로 최대 유지하는 프로세스 개수
# 부하가 많아 이값을 넘어서면 최대한 이 값아래로 프로세스 개수를 유지하려고 한다.
# 절대적인것은 아니다.
MaxSpareServers     50

# 요청을 동시에 처리할 수 있는 프로세스 최대 개수
# 2.3.13이전에는 MaxClients 라는 이름 사용하며 계속 지원되고 있다.
MaxRequestWorkers      1000

# MaxRequestWorkers 가 생성할 수 있는 최대 프로세스 개수
ServerLimit     1000

# 자식프로세스가 최대 처리하는 요청 개수
# 이 개수를 넘어가면 자식 프로세스는 죽는다.
# 0은 무한대로 자식 프로세스가 죽지 않는다.
MaxRequestsPerChild 2000
</IfModule>

# 참고
http://httpd.apache.org/docs/current/mod/mpm_common.html
https://httpd.apache.org/docs/2.4/mod/worker.html
https://httpd.apache.org/docs/2.4/mod/prefork.html

comments:

댓글 쓰기