본문 바로가기

리눅스

Apache MPM prefork와 worker의 개념 및 작동 방식 그리고 차이점

반응형

Apache MPM prefork와 worker의 개념 및 작동 방식 그리고 차이점

Apache MPM(prefork, worker)은 Apache 웹 서버의 동작 방식을 결정하는 모듈입니다. MPM은 Multi-Processing Module의 약자로, 동시 접속자를 처리하기 위한 프로세스와 스레드 관리 방식을 정의합니다.

 

Apache Prefork는 Apache의 Multi Processing Module(MPM) 중 하나입니다. Prefork MPM은 각 요청을 별도의 프로세스로 처리합니다. Prefork MPM은 보안성이 뛰어나고, 스레드를 지원하지 않는 웹 서버와 호환이 좋습니다. 그러나 Prefork MPM은 성능이 좋지 않고, 많은 메모리를 사용합니다.

 

Apache Worker는 Apache의 Multi Processing Module(MPM) 중 하나입니다. Worker MPM은 각 요청을 별도의 스레드로 처리합니다. Worker MPM은 Prefork MPM보다 성능이 좋고, 메모리 사용량이 적습니다. 그러나 Worker MPM은 보안성이 좋지 않고, 스레드를 지원하지 않는 웹 서버와 호환이 좋지 않습니다.

 

Apache Prefork와 Worker MPM의 차이점은 다음과 같습니다.

특징 MPM prefork MPM worker
처리 방식 각 요청을 별도의 프로세스로 처리 각 요청을 별도의 스레드로 처리
보안성 보안성이 뛰어나다 보안성이 좋지 않다
성능 성능이 좋지 않다 성능이 좋다
메모리 사용량 메모리 사용량이 많다 메모리 사용량이 적다
호환성 스레드를 지원하지 않는 웹 서버와 호환이 좋다 스레드를 지원하지 않는 웹 서버와 호환이 좋지 않다

 

Apache Prefork와 Worker MPM 중 어떤 MPM을 선택할지는 웹 서버의 특성에 따라 다릅니다. 보안성이 중요하고, 스레드를 지원하지 않는 웹 서버와 호환이 좋은 웹 서버라면 Prefork MPM을 선택하는 것이 좋습니다. 성능이 중요하고, 스레드를 지원하는 웹 서버와 호환이 좋은 웹 서버라면 Worker MPM을 선택하는 것이 좋습니다.

 

아파치 프로세스의 개수

ps aux | grep httpd | wc -l
$ ps aux | grep httpd | wc -l
8

아파치 메모리 사용량 확인

ps aux | grep httpd | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
$ ps aux | grep httpd | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
80.9609

 

728x90
반응형