2021년 9월 15일

CentOS 7 환경에서 Apache 웹서버 MPM 모듈 evnet로 변경하기

Apache 웹서버는 prefork 불리우는 방법으로 클라이어트의 요청을 처리하도록 되어 있다. 

prefork 는 Apache 2 부터 도입된 MPMs (다중처리 모듈들, Multi-Processing Modules) 중 하나이다. MPMs 에는 Prefork, Worker, Event 가 있으며 이외에도 Threadpool, Perchild, Leader 등 여러가지가 있다. yum 을 사용하여 설치되는 httpd 패키지는 prepork, worker, event 를 지원한다.

yum 을 설치를 하면 디폴트로 prepork 방식으로 동작하는데 아래 명령으로 현재 적용된 MPM 모듈을 확인할 수 있다.

httpd -V

아래와 같은 내용으로 출력될 것이다.



환경

  • CPU 2.0GHz (6Core),  16GB , 500GB * 2 (raid)
  • CentOS 7.8.2003  (64bit)
  • Apache 2.4.6 (64bit) 


변경

Prefork 방식의 성능 저하는 단일 스레드의 자식 스레드에서 한번에 하나의 요청을 순차적으로 처리하는 방식에 의한 한계를 예상하고 성능적으로 가장 우수하다고 알려진 event  방식으로 변경하였다. 

① /etc/httpd/conf.modules.d 경로의 00-mpm.conf 설정 파일에서 prefork MPM 부분은 주석처리하고 마지막의 event MPM 부분의 주석을 제거한다.

# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines:

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
LoadModule mpm_event_module modules/mod_mpm_event.so

② 아파치 서버를 다시 시작하면 event MPM 방식으로 동작하게 된다.


systemctl restart httpd.service 
httpd -V


참고

How To Install the Apache Web Server on CentOS 7

Understanding Apache 2 MPM

Apache MPMs Explained

Change Apache MPM on CentOS7

댓글 없음:

댓글 쓰기