익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
아파치 멀티 프로세싱 모듈
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
아파치 멀티 프로세싱 모듈(Apache Multi-Processing Module, MPM)은 아파치 HTTP 서버에서 클라이언트 요청을 처리하는 방식과 서버의 동작 방식을 정의하는 구성 요소이다. ==개요== 아파치 HTTP 서버는 다양한 운영 체제와 하드웨어 환경에서 효율적으로 동작할 수 있도록 설계되었으며, 이를 위해 멀티 프로세싱 모듈(MPM, Multi-Processing Modules)을 사용하여 요청 처리 메커니즘을 유연하게 구성할 수 있도록 한다. MPM은 서버의 요청 처리 모델을 결정하며, 각 MPM은 고유한 방식으로 프로세스와 스레드를 관리한다. ==주요 MPM 종류== 아파치 HTTP 서버에서 일반적으로 사용되는 주요 MPM 유형은 다음과 같다. *'''prefork''': 각 요청을 별도의 프로세스가 처리하는 구조로, 스레드를 사용하지 않는다. 안정성과 호환성이 중요할 때 적합하다. *'''worker''': 각 프로세스가 여러 개의 스레드를 갖고 있으며, 스레드가 요청을 처리한다. 적절한 성능과 자원 사용의 균형을 제공한다. *'''event''': worker MPM을 기반으로 하며, keep-alive 연결을 보다 효율적으로 처리할 수 있도록 설계되었다. 비동기 이벤트 기반 처리 방식으로, 고성능 서버 환경에 적합하다. ==MPM의 선택 기준== 서버 환경과 애플리케이션의 특성에 따라 적절한 MPM을 선택하는 것이 중요하다. 예를 들어, 다음과 같은 기준이 고려된다. *'''스레드 안전성''': 사용하는 모듈이나 애플리케이션이 스레드 안전하지 않다면 prefork MPM이 더 적합하다. *'''성능''': 많은 동시 접속이 필요한 경우 event 또는 worker MPM이 유리하다. *'''시스템 자원 사용''': worker와 event MPM은 더 적은 메모리로 많은 요청을 처리할 수 있다. ==설정 및 변경 방법== MPM은 아파치 서버의 빌드 방식에 따라 고정되거나 동적으로 설정할 수 있다. ===MPM 확인=== 설치된 아파치의 MPM 종류는 다음 명령어로 확인할 수 있다.<pre> apachectl -V | grep MPM </pre>또는 동적으로 MPM이 로드되는 경우, 아파치 설정 파일에서 <code>LoadModule</code> 디렉티브를 통해 확인할 수 있다. ===MPM 변경 방법=== *'''동적 MPM 환경의 경우''': 아파치 설정 파일(<code>httpd.conf</code>) 또는 포함된 설정 파일(<code>mods-enabled/mpm_*.conf</code>)에서 원하는 MPM 모듈만 활성화하고, 나머지는 비활성화해야 한다. <pre> LoadModule mpm_event_module modules/mod_mpm_event.so #LoadModule mpm_worker_module modules/mod_mpm_worker.so #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so </pre> *'''고정 MPM 환경의 경우''': 아파치를 재컴파일해야 하며, <code>--with-mpm</code> 옵션을 사용한다. <pre> ./configure --with-mpm=worker </pre> ===주요 설정 디렉티브=== MPM별로 설정할 수 있는 주요 디렉티브는 다음과 같다. 예시는 '''event''' MPM 기준이다. *<code>StartServers</code>: 초기 프로세스 수 *<code>MinSpareThreads</code>, <code>MaxSpareThreads</code>: 여유 스레드 최소/최대값 *<code>ThreadsPerChild</code>: 하나의 프로세스당 생성되는 스레드 수 *<code>MaxRequestWorkers</code>: 동시 요청 최대 처리 수 *<code>ServerLimit</code>: 생성 가능한 최대 프로세스 수 해당 디렉티브는 MPM에 따라 다소 상이하며, <code>conf/extra/httpd-mpm.conf</code> 파일에서 설정하는 경우가 많다. ==같이 보기== *[[아파치 HTTP 서버]] *[[웹 서버]] *[[Nginx]] *[[서버 소프트웨어]] *[[동시성 처리]] ==참고 문헌== *Laurie, Ben, and Peter Laurie. ''Apache: The Definitive Guide''. O'Reilly Media, 2003. *Bowen, Rich. ''The Apache Modules Book: Application Development with Apache''. Prentice Hall, 2007. ==각주== [[분류:백엔드]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록