본문 바로가기

리눅스

Apache MPM(prefork, worker, event)의 "#define DEFAULT_SERVER_LIMIT" 값을 변경하는 방법

728x90

Apache MPM(prefork, worker, event)의 "#define DEFAULT_SERVER_LIMIT" 값을 변경하는 방법

Apache MPM(prefork, worker, event)의 DEFAULT_SERVER_LIMIT 값을 변경하려면 소스 코드를 수정하고 다시 빌드해야 합니다. 각 MPM의 설정 파일에서 해당 값이 정의되어 있습니다. 아래는 각 MPM의 DEFAULT_SERVER_LIMIT 값을 변경하는 방법입니다.

1. MPM common

  • server/mpm_common.h 파일은 모든 MPM(Multi-Processing Module)에 공통으로 적용되는 설정을 담고 있는 헤더 파일입니다.
vim server/mpm_common.h
  • DEFAULT_SERVER_LIMIT은 MPM에서 사용되는 서버의 최대 개수를 지정합니다. MPM 모듈마다 이 값이 다르게 설정될 수 있습니다. 예를 들어, prefork MPM에서는 DEFAULT_SERVER_LIMIT가 256으로 설정되어 있습니다.
  • server/mpm_common.h 파일에서 DEFAULT_SERVER_LIMIT 값을 수정하면 해당 MPM 모듈의 최대 서버 개수가 변경됩니다.
  • 이 파일을 수정하면 모든 MPM에 적용되는 공통 설정이 변경되므로 주의해야 합니다.

** server/mpm_common.h 파일은 모든 MPM에 공통적으로 적용되는 설정을 담고 있으며, DEFAULT_SERVER_LIMIT 값이 MPM 모듈 전체에 영향을 미칩니다.

2. MPM prefork

출처-https://soyadmin.com/wp-content/uploads/2018/08/prefork.jpg

  • prefork.c 파일을 엽니다. 이 파일은 server/mpm/prefork 디렉토리에 위치합니다.
vim server/mpm/worker/prefork.c
  • DEFAULT_SERVER_LIMIT 매크로를 찾습니다.
  • 매크로 값을 원하는 값으로 수정합니다.

3. MPM worker

출처-https://soyadmin.com/wp-content/uploads/2018/08/worker.jpg

  • worker.c 파일을 엽니다. 이 파일은 server/mpm/worker 디렉토리에 위치합니다.
vim server/mpm/worker/worker.c
  • DEFAULT_SERVER_LIMIT 매크로를 찾습니다.
  • 매크로 값을 원하는 값으로 수정합니다.

4. MPM event

  • event.c 파일을 엽니다. 이 파일은 server/mpm/event 디렉토리에 위치합니다.
vim server/mpm/worker/event.c
  • DEFAULT_SERVER_LIMIT 매크로를 찾습니다.
  • 매크로 값을 원하는 값으로 수정합니다.

수정이 완료되면 아파치를 다시 빌드하여 변경사항을 적용해야 합니다. 변경된 DEFAULT_SERVER_LIMIT 값은 해당 MPM의 동작을 제어하며, 동시 접속자 수 제한에 영향을 줄 수 있습니다. 값의 적절한 조정은 서버의 하드웨어 성능과 사용 패턴에 따라 달라집니다. 변경 후에는 적절한 테스트와 성능 모니터링을 통해 시스템의 안정성과 성능을 확인해야 합니다.

 

sed 명령어로 "#define DEFAULT_SERVER_LIMIT" 변경하는 방법

1. 아파치 소스 파일을 다운로드 합니다.

2. 아파치 소스 파일을 압축을 풉니다.

3. 아파치 소스 파일의 "server/mpm/[mpm_type]/[mpm_type].c" 파일을 엽니다.

4. "#define DEFAULT_SERVER_LIMIT [value]" 로 되어 있는 부분에서 [value] 값을 늘립니다.

  • 아파치 소스 파일 디렉토리로 이동
cd /usr/local/src/httpd-2.4.57
  • prefork
sed -i "s/#define DEFAULT_SERVER_LIMIT 256/#define DEFAULT_SERVER_LIMIT 2048/g" /usr/local/src/httpd-2.4.57/server/mpm/prefork/prefork.c
  • worker
sed -i "s/#define DEFAULT_SERVER_LIMIT 16/#define DEFAULT_SERVER_LIMIT 256/g" /usr/local/src/httpd-2.4.57/server/mpm/worker/worker.c
  • event
sed -i "s/#define DEFAULT_SERVER_LIMIT 16/#define DEFAULT_SERVER_LIMIT 256/g" /usr/local/src/httpd-2.4.57/server/mpm/event/event.c

5. 아파치 소스 파일을 컴파일합니다.

6. 아파치를 설치합니다.

7. 아파치를 재시작합니다.

 

728x90