1. mpm 종류
prefork, worker, event
Apache 2.4 이후로는 event가 Default가 되었으며, prefork 또는 worker로 하기 위해서는 apache 컴파일 시
-with-mpm=prefork 또는 -with-mpm=worker
옵션을 추가하면 됨
2. 장단점
(1)prefork
-장점: 요청 당 프로세스 생성, 사용자가 많지 않고 안정적 운영이 필요할 때 적절함
-단점: 프로세스가 비교적 메모리를 많이 차지
(2)worker
-장점: 프로세스가 스레드 생성하여 요청 수행, 사용자가 많으며 Flexibility 필요할 때 적절함
-단점: 스레드가 메모리를 공유하여, 서로 다른 스레드에 영향 줌(자원 독점 또는 오류 발생 시 영향 등)
(3)event
-장점: 요청과 Apache 요청 분리하여 분산 처리 가능
-단점: 성능이 아직 보장되지 않음
3. 세부 설정
(1)prefork
-startServers : 아파치 구동 시 첫 프로세스의 개수 (기본값 : prefork 5, worker 3)
-MinSpareServers : 부하가 아무리 적어도 최소 해당 값만큼의 프로세스는 유지하는 개수(부하가 적어 자식 프로세스 수가 해당 값보다 적어진 경우, 부모프로세스는 초당 1개씩 자식 프로세스를 해당 값까지 만들려고 노력한다.) (기본값 : 5)
-MaxSpareServers : 부하가 증가하여 프로세스 개수가 많아져도 해당 값만큼 프로세스를 유지하는 개수 (절대적 수치 아니며, 해당 값을 유지하려고 노력함)(기본값 : 10)
-MaxRequestsPerChild : 자식 프로세스가 해당 값만큼의 요청을 받았다면 이 자식 프로세스는 자동으로 죽게 됨. (0 으로 설정할 경우 무한대)(기본값 : 10000)
-MaxClients : 최대로 받아들일 동시 요청 개수 = 최대 자식 프로세스의 개수 (기본값 : 256)
-MaxClients 적정 값 계산 방법
-(총 메모리의 80% ? Apache가 사용하고 있는 메모리 크기 ? 시스템에 기본적으로 설치되어있는 agent 류의 프로그램이 사용하는 메모리 크기) / apache 프로세스 1개가 사용하고 있는 메모리
*Apache 사용 메모리
ps aux | grep httpd | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
*Apache 프로세스 개수
ps aux | grep httpd | wc -l
*아파치 프로세스 1개의 사용 개수
Apache 사용 메모리 / Apache 프로세스 개수
MaxClients 계산 예제
*총 메모리 * 0.8 = 2048 * 0.8 = 1638.4
*Apache 사용 메모리: 102.355
*시스템 agent 사용 메모리 = 0
*Apache 프로세스 1개 사용 메모리 = 102.355 / 18 = 5.68
*MaxClients = (1638.4 - 102.355 - 0) / 5.68 = 270
'IT | Middleware > Apache' 카테고리의 다른 글
[Apache] 무료 SSL 인증서 CertBot 갱신 방법 (0) | 2020.02.17 |
---|---|
[Apache] Certbot (무료 SSL 인증서) 설치 및 적용 방법 (0) | 2020.02.16 |
[Apache | 튜닝] keepAlive 옵션 설정하기 (0) | 2020.02.08 |
[Apache] vhost 여러 개 등록하기 (설정 파일 | 리눅스 기준) (3) | 2020.01.30 |
[APM 패턴 | Apache] Linux에 아파치 설치 및 설정 (소스 파일을 이용한 설치) (2) | 2019.12.22 |