페이지

2011년 12월 30일 금요일

아파치 동시 접속자수 늘리기

동시 접속자  늘리기 (아파치 2.2.19)


동접자 늘리기 httpd.conf 등을 통하여 동접자를 늘릴  있으나 (방법은 구글링 하면 많이 나옴첨부링크 참조)
ServerLimit 이상은 늘릴  없다 ServerLimit  아파치 컴파일시 정해준다.

하지만확인 결과 apache 2.2.x 버전은 DEFAULT = 256 이나 MAX  20000 으로 지정되어 있으며
 값은 충분이  값이다
그러므로 동시 접속자 수가 2000 넘지 않는 이상은 굳이  컴파일이나 컴파일 옵셥을 조정할 필요가 없다.
(아파치 1.3.x 버전과 헷갈리지 말자)

환경
Linux
apache 2.2.19 MPM Prefork 방식

참고 : MPM
prefork 방식은 프로세스:쓰레드 = 1:1 방식
Worker 방식은 프로세스:쓰레드 = 1:n 방식

아파치 컴파일된 셋팅값 조회

# /usr/local/apache/bin/apachectl -V

설정
Httpd.conf 에서 /conf/extra/httpd-mpm.conf  Include 처리 (리마크 제외하고
Httpd-mpm.conf 파일을 열고 지시자 변경
)
# 다음 라인 리마크 해제
Include conf/extra/httpd-mpm.conf
지시자
MinSpareServersMaxSpareServers
부하가 적어서 MinSpareServers 개수 보다 적었을 경우 최소한 이 개수 만큼 유지하려고 아파치가 노력하고
부하가 증가하여 프로세스 개수가 많아질 경우에 MaxSpareServers 개수 이하로 줄이려고 아파치는 노력한다.
즉, 절대적인 수치가 아니다.
StartServer
아파치 구동시 프로세스 개수
MaxClients
실행가능한 최대 프로세스 개수
MaxRequestsPerChild
클라이언트들의 요청 개수를 제한. 만약 자식 프로세스가 이 값만큼의 클라이언트 요청을 받았다면 이 자식 프로세스는 자동으로 죽게 된다. 0 일 경우엔 무한대



설정 예제
<IfModule mpm_prefork_module>
    ServerLimit         1024
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          1024
    MaxRequestsPerChild   0
</IfModule> 



ServerLimit  대한 오해
구글링을 하다 보면 ServerLimit  올리려면 컴파일을 다시 해주어야 한다는 내용을 많이 찾아   있다.
또한 아파치 1.3.x 버전 내용인지 2.2.x 버전 내용인지를 명시 하지 않아 혼란을 야기한다.

위에서 정의   처럼 아파치 2.2.x 버전은 기본 컴파일된 Max Server Limite 값을 충분히  값이며 필요  conf 파일에서 조정하여 늘릴  있다.
컴파일시  조정 없이 Default  컴파일  경우  Default Server Limit 값은 256 이지만  이상의 MaxClient 값을 조정하고 싶을 경우는 제일 상단에 "ServerLimit  1024"  같이 지정하여 ServerLimit 값을 configuration 에서 동적으로 지정하여   있다.

댓글 없음:

댓글 쓰기