OS
아파치(Apache)- work , prefork 옵션 설정
- 비아웹 오래 전 2022.02.14 17:37 인기
-
- 5,815
- 0
1. 설치 환경
OS : CentOS Linux release 7.9.2009 (Core)
SELINUX : disabled
Apache : 2.4.46 (Unix)
PHP - PHP 7.4.13 (cli)
모듈 확인 및 경로
[root@viaweb ~]# /usr/local/apache/bin/apachectl -V
Server version: Apache/2.4.46(Unix)
Server built: Dec 19202010:57:24
Server's Module Magic Number:20120211:93
Server loaded:APR1.4.8,APR-UTIL1.5.2
Compiled using:APR1.4.8,APR-UTIL1.5.2
Architecture:64-bit
Server MPM: prefork // <-- 현재 사용 중인 모듈
[root@viaweb ~]# vi /usr/local/apache/conf/extra/httpd-mpm.conf
(컴파일 소스 설치 환경입니다. 설치 시 경로 설정에 따라 위치는 다를수 있습니다.)
1. Work 방식
<IfModule mpm_worker_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
-StartServers(Default 3):
시작할때 생성되는 서버 프로세스의 개수.
자식 프로세스의 수는 부하에 따라 동적으로 변경되기 때문에 이 값은 큰 의미가 없습니다.
-ServerLimit(default:16):
구성 가능한 자식 프로세스의 제한 수.
ServerLimit 값이 필요 이상 높게 설정이 된다면,
불필요한 공유 메모리가 할당 되므로 적절한 설정을 요구 합니다.
* MaxClient 와 ThreadPerChild 에서 요구한 프로세스 수보다 높게 설정하지 않는 것을 권장 드립니다.
-MaxClient(default: ServerLimit * ThreadsPerChild):
동시에 처리될 최대 커넥션(request)의 수,
MaxClients 수치를 초과한 후 온 요청들은 ListenBackLog에 의해 대기상태가 됩니다.
ThreadsPerChild 옵션과 매우 긴밀하게 작용, 동시접속자가 많을 경우,
MaxClient값을 증가시켜야 합니다.OS의 FD(File Descriptor)값을 증가 시켜
MaxClient 의 상한값을 증가시키시기 바랍니다.
-MinSpareThreads(default75):
최소 thread 개수, 서버에 idle 쓰레드가 충분하지 않다면
자식 프로세스는 idle 쓰레드가 MinSpareThreads 보다 커질때까지 생성됩니다.
-MaxSpareThreads(default250):
최대 thread개수, 서버에 너무 많은 idle 쓰레드가 존재하면
child 프로세스는 idle 쓰레드가 MaxSpareThreads 수보다 작아질 때까지 죽이게 됩니다.
- ThreadPerChild :
개별 자식 프로세스가 지속적으로 가질 수 있는 Thread의 개수.
- MaxRequestPerChild :
자식 프로세스가 서비스할 수 있는 최대 요청 개수
-ThreadLimit(default:64):
child 프로세스의 라이프주기 동안 ThreadsPerChild 의 최대 설정값을 설정합니다.
ThreadLimit 가 ThreadsPerChild 보다 훨씬 높게 설정된다면,
여분의 미사용 공유 메모리가 할당될 것입니다.
ThreadLimit 과 ThreadsPerChild 모두 시스템이 감당할 수 있는 값 보다 높게 설정하면,
아파치가 기동되지 않거나 시스템이 불안정하게 될 수 있습니다.
최대 예상 ThreadsPerChild의 설정보다 높게 설정하면 안됩니다.
2. prefork 방식
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
- StartServer :
아파치서버의 자식 프로세스 개수 지정.
- MinSpareServers, MaxSpareServers :
부하가 적어서 MinSpareServers 개수 보다 적었을 경우 최소한 이 개수 만큼 아파치가 유지하려 하며,
부하가 증가하여 프로세스 개수가 많아질 경우에 MaxSpareServers 개수 이하로 줄이려고
아파치가 구동 됩니다. 절대적인 수치는 아닙니다.
- MaxRequestWorkers :
기본값이 256 이기 때문에 MaxRequestWorkers 값이 256보다 작으면 따로 적을 필요가 없으며,
256보다 크면 그와 같은 값으로 설정해야합니다.
- MaxReqeustPerChild :
클라이언트들의 요청 개수를 제한,
만약 자식 프로세스가 이 값만큼의 클라이언트 요청을 받았다면
이 자식 프로세스는 자동으로 kill 됩니다.(0 인 경우 무한대)
감사합니다.
서버호스팅 비아웹
- 이전글Linux-APM 컴파일 설치 오류 해결 정리2022.02.14
- 다음글Nginx / php-fpm 소켓 연동2022.02.14
댓글목록
등록된 댓글이 없습니다.