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