OS

2022.02.14 17:37

아파치(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값을 증가시켜야 합니다.OSFD(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 인 경우 무한대)

감사합니다.

서버호스팅 비아웹

  • 공유링크 복사

    댓글목록

    등록된 댓글이 없습니다.