Prefork MPM
하나의 쓰레드를 가진 다수의 자식 프로세스를 사용.각각의 프로세스는 하나의 커넥션을 담당한다.
실행중인 프로세스를 복사하여 자식 프로세스를 만드는데 이때 메모리까지 복사하여 많은 메모리를 사용한다.
CPU 가 1~2개일때 성능이 좋다.
Worker MPM
다수의 쓰레드를 지닌 다수의 자식 프로세스를 사용. 각각의 쓰레드가 하나의 커넥션을 핸들링한다.
쓰레드간 메모리를 공유한다. 멀티 CPU 일때 성능이 좋다.
Event MPM
2.4 버전부터 새로 생긴 모드.
Nginx 처럼 Event driven 방식으로 성능이 뛰어나다.
default 는 prefork 다. 자신의 mpm 확인 방법은
httpd -V
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 5 2018 01:47:09
Server's Module Magic Number: 20120211:24
Server loaded: APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
하거나
httpd -V | grep MPM
Server MPM: prefork
하면 확인 가능하다.
자 변경을 해보자
변경방법은 (아파치 2.4.x 기준)
# vi /etc/httpd.conf.modules.d/00-mpm.conf
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
위에 가서 주석처리를 변경 해주고 서비스를 재시작 해주면 된다.
service httpd restart
httpd -V
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 5 2018 01:47:09
Server's Module Magic Number: 20120211:24
Server loaded: APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture: 64-bit
Server MPM: worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
'Linux' 카테고리의 다른 글
centos8 nfs (0) | 2020.12.22 |
---|---|
Querying mergeinfo requires version 3 of the FSFS filesystem schema; filesystem '/data/test/db' uses only version 2 [501, #200007] (0) | 2020.12.18 |
centos 8 r8125 install (7) | 2020.12.04 |
Could not create the Java Virtual Machine. (0) | 2020.11.26 |
CPU 8: Machine Check: 0 Bank 0: 9400004000040150 (0) | 2020.11.16 |