본문 바로가기

Server Story..../apache

Windows용 아파치 설정하기 // 쓰레드 설정 동접 증가,

Windows용 아파치 설정하기 // 쓰레드 설정

Windows용 아파치는 다중쓰레드 방식을 사용하기때문에,
유닉스와 달리 요청마다 다른 프로세스를 사용하지 않는다.

대신 아파치 프로세스는 항상, 부모 프로세스와 요청을 처리하는 자식 프로세스, 2개이다.
자식 프로세스에 있는 여러 쓰레드들이 요청들을 처리한다. 

그래서 작업 관리자 -> 프로세스에 보시면

httpd.exe 가 두개 실행 되어 있습니다.

=====

WinNT MPM에서의 쓰레드 조절과 관련된 옵션 설정은

MaxRequestsPerChild / ThreadsPerChild

를 사용합니다.

httpd.conf 에서 설정 할 수 있으며

MaxRequestsPerChild: 유닉스와 같이, 자식 프로세스가 요청을 얼마만큼 처리하고 죽을지를 조정한다. 그러나 유닉스와 달리 프로세스가 한번에 한 요청만을 처리하지않고 한번에 모든 요청을 서비스하기때문에, 설정한다면 매우 큰 값을 설정하길 권한다. 권장하는 기본값 MaxRequestsPerChild 0을 사용하면 자식 프로세스는 죽지않고 영원히 요청을 서비스한다.

ThreadsPerChild: 이 지시어는 새로 추가되었다. 이 지시어는 서버가 사용할 쓰레드 개수를 지정한다. 이 값이 서버가 한번에 처리할 수 있는 최대 연결개수이기때문에, 사이트에 접속량이 많다면 충분히 큰 값을 설정해야 한다. 권장하는 기본값은 ThreadsPerChild 50이다.

이렇게 설정 합니다.

APMSETUP은 

ThreadsPerChild 250
MaxRequestsPerChild  0

으로 설정 되어 있습니다.

만약 사용자가 많다면
ThreadsPerChild 값을 증가 시켜 주시면 됩니다.

올바로 설정 되었다면

logs/error.log

파일에

[XXXXXXXXXXXXXXXXXXXXXXXX] [notice] Child XXXX: Starting 250 worker threads.
[XXXXXXXXXXXXXXXXXXXXXXXX] [notice] Child XXXX: Starting 300 worker threads.

형식으로 로그가 남게 됩니다.