Web Servers
Apache MPM(Multi-Processing Module) 설정 방법 정리
midworker
2025. 5. 13. 20:47
반응형
Apache MPM(Multi-Processing Module) 설정 방법 정리
Apache HTTP Server는 요청을 처리하는 방식을 선택할 수 있도록 MPM(Multi-Processing Module) 기능을 제공합니다. 이 글에서는 주요 MPM 종류와 설정 방법, 실전 운영 팁을 소개합니다.
1. MPM이란?
MPM은 Apache가 클라이언트 요청을 어떻게 처리할지 결정하는 핵심 모듈입니다. OS 환경이나 목적에 따라 적절한 MPM을 선택해야 합니다.
2. 주요 MPM 종류
MPM 종류 | 특징 |
---|---|
prefork |
프로세스 기반. 각 요청마다 별도 프로세스 사용. 스레드 미지원 모듈에 적합 (예: PHP CGI) |
worker |
스레드 기반. 하나의 프로세스 안에서 여러 스레드로 요청 처리 |
event |
worker 의 확장. KeepAlive 연결을 효율적으로 처리하여 성능 향상 |
3. 현재 Apache의 MPM 확인 방법
$ apachectl -V | grep MPM
예시 출력:
Server MPM: event
4. MPM 설정 위치
보통 아래 파일 중 하나에서 설정합니다:
/etc/httpd/conf.modules.d/00-mpm.conf
- 또는
httpd.conf
안에서<IfModule>
블록 사용
5. 각 MPM 설정 예제
▶ prefork MPM
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>
- 프로세스 기반이라 메모리 사용량이 높지만, 안정성은 좋음
▶ worker MPM
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>
- 스레드 기반이라 적은 메모리로 많은 요청 처리 가능
▶ event MPM
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>
- KeepAlive 요청을 별도 스레드로 분리해 성능 최적화
- 최근 Apache 2.4+에서 기본 MPM
6. 운영 팁
- PHP 사용 시는
prefork
가 안정적입니다. 특히 mod_php 연동 시 권장 - 정적 파일 처리 및 프록시 중심이면
event
MPM이 유리합니다 MaxRequestWorkers
설정은 서버의 메모리 총량을 고려해 설정해야 합니다- 변경 후에는 반드시 Apache 재시작 필요:
$ systemctl restart httpd
마무리
MPM은 Apache 성능과 안정성에 직접적인 영향을 주는 중요한 설정입니다.
운영 목적, 트래픽 특성, 백엔드 연동 방식에 따라 적절한 MPM을 선택하고 튜닝해보세요.
반응형