아파치 최대 동시 접속자수(max_clients) 수정
1. 아파치 2.0.xx 버전
기본 동시접속자수는 최대 256명. 이를 더 많은 숫자로 변경하기 위해서는 아래 파일 수정 후 재펌파일이 필요하다.
/apache/../server/mpm/prefork/prefork.c 파일에서
#define DEFAULT_SERVER_LIMIT 256 // 원하는 최대 접속자를 입력한다.
위에서 숫자 부분을 적당하게 늘려주고
/apache/../server/mpm/worker/worker.c 파일에서
#define DEFAULT_SERVER_LIMIT 16 // 아래 계산법 참고
위에서 숫자 부분을 적당하게 늘려준다.
예를 들어 prefork.c 파일에서 1280으로 늘려주었다면, worker.c 파일은 20으로 늘려주는데, 그 이유는 아래와 같다.
worker 방식은 기본적으로 16개의 child process와 그 안에 64개의 thread를 생성가능하므로, 16*64 = 1024가 된다. 따라서 prefork.c 파일에서 1280으로 늘려주게 되면, worker.c는 1280/64 = 20이 되므로 20으로 수정해 줘야 똑같이 1280명의 동시접속자가 가능하게 된다.
-----------------------------------------------------------------------------
[참고]
1. prefork.c 파일과 worker.c 파일을 같이 늘려줘야 합니다.
2. worker 의 경우 아래와 같은 방법으로 수정합니다. (prefork 는 MaxClients 만 늘려주면 됩니다.)
<IfModule worker.c>
StartServers 1024 // 기본값이 2 입니다.
MaxClients 65536 // 이처럼 최대 접속자를 높게 재설정할 경우 아래 계산법을 따릅니다.
ThreadsPerChild 64 // 프로세스당 쓰레드 수입니다. 기본값이 25 이며, 최대 64 까지 가능합니다.
</IfModule>
공식 : MaxClients / ThredsPerChild =< StartServers
MaxClients 를 정하고 ThreadsPerChild 를 나누면 StartServers 값이 나옵니다.
- 내용추가 (글쓴이)
2. 아파치 1.3.xx 버전
기본 동시접속자수는 최대 256명인데, 이는 MaxClients에 입력가능한 최대치를 말합니다.
256명 이상의 동시접속을 허용하고자 할 경우에는 아파치를 다시 재 컴파일해야 합니다.
아파치 디렉토리로 이동하여 ../src/include 안의 httpd.h 에서 다음과 같은 부분을 찾아
값을 높여 주시면 됩니다.
#define HARD_SERVER_LIMIT 512 // 원하는 최대 접속자를 입력한다.
위와같이 설정 한 후 http.h 파일을 재컴파일해야 정상적으로 적용이 됩니다.
만약 클라이언트가 512명 이상의 접속을 넘어서 이루어질 경우에는 다음과 같은 메시지가
로그파일에 남게 되며, 클라이언 트는 다른 요청의 접속이 끝날 때 까지 대기하거나
또는 특정시간이 지난 후 접속이 이루어질 수 없다는 메시지를 보여주게 된답니다 .
[error] server reached MaxClients setting, consider raising the MaxClients setting.
만약, 동시접속자 수를 기본 동시접속자 최대 수인 256명 미만으로 조정하고자 한다면,
재컴파일이 필요없이 아래 파일만 수정합니다.
../conf/httpd.conf
MaxClients 150
그리고, 아파치를 리스타트 하면 됩니다.
# apachectl restart
[출처] 내가사는이유 (http://kikook.tistory.com/492)
'리눅스 > APACHE' 카테고리의 다른 글
아파치 로그 쌓이지 않게하는 방법 (0) | 2015.01.16 |
---|---|
아파치 웹서버 기본 출력 캐릭터셋 변경 (0) | 2015.01.16 |
웹서버 접속자 수 확인 (0) | 2015.01.16 |
보안서버 (mod_ssl) 설치 (0) | 2015.01.16 |
Awstats 6.6 로그분석기 설치 (0) | 2015.01.16 |