아파치 동시 접속자수는 httpd.conf 파일에서 그 값을 지정할 수 있다. 다만 컴파일시 지정하는 “ServerLimit” 값 이상은 그 값이 늘어나지 않으며 확인 결과 apache 2.2.x 버전의 “ServerLimit” 는 DEFAULT = 256 , MAX = 20000 으로 지정되어 있다. 동시 접속자 수 2000은 충분이 큰 값이며 굳이 컴파일 설치를 통하여 “ServerLimit” 값을 늘려 줄 필요는 거의 없으며 간단히 RPM 설치해도 무방할 듯 하다. 설치 후 httpd.conf 옵션값 조정만으로 충분할 것으로 판단된다 환경
“ServerLimit” 값 조정 방법
ServerLimit 에 대한 오해구글링을 하다 보면 “ServerLimit” 를 올리려면 컴파일을 다시 해주어야 한다는 내용을 많이 찾아 볼 수 있으며 아파치 1.3.x 버전 내용인지 2.2.x 버전 내용인지를 명시 하지 않아 혼란을 야기한다. 위에서 정의 한 것 처럼 아파치 2.2.x 버전은 기본 컴파일된 Max Server Limit 값은 충분히 큰 값(=20000)이며 필요 동시 사용자수가 limit 값을 넘지 않는다면 conf 조정하여 늘려 사용하면 된다. posted at 2014/02/19 14:25 apache 튜닝 prefork & worker 방식에 따른 MaxClient 적용방법안녕하세요. '와스고수" 입니다. "와스고수" apache 에서 MaxClient 를 증가해서 사용할 경우가 많습니다. 사용량이 많을때나, 아니면 부하테스트를 할때... MaxClient 의 값을 조절하는데요. 그럴때 apache 에서는 두가지 방식으로 ./configure 을 수행합니다. defailt... 값은 ./configure 할때 아무것도 안넣어 주면 profork 방식으로 진행이 됩니다. 허나 cpu가 많고 서버사양이 좋으면 보통.. worker 방식을 선호하긴 합니다. 이번에 알려드리는 방법은 profork 방식일때 MaxClient 를 조절하는 방법과 worker방식일때 조절하는 방법에 대해 정리해 드리겠습니다. profork 일경우와 worker 경우일때 적용방법의 차이가 있으며 apache 의 default 설정값은 prefork입니다. worker 방식을 사용하고자 할경우 ./configure 수행시 --with-mpm=worker 옵션 삽입하면 됩니다. 1번... 자신의 apache 가 prefork 방식인지 worker 방식인지 확인하는 방법 위 처럼 설정을 하시고 /bin/ ./httpd -V 로 확인해보시면 아래의 사향이 나옵니다. [preorderweb5:/apache/apache-2.2.21/bin]# ./httpd -V Server version: Apache/2.2.21 (Unix) Server built: Jul 24 2012 15:29:14 Server's Module Magic Number: 20051115:30 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" <-- 이걸로 자신의 apache 의 설정값 확인가능. ... 생략 1) prefork 방식 (안전성이 뛰어남) 자식프로세스 <---> 스레드 자식프로세스 <---> 스레드 자식프로세스 <---> 스레드 2) worker 방식 (다중방식으로 처리가 가능) <--- 스레드 (1) 자식프로세스 <--- 스레드 (2) <--- 스레드 (3) ########################### (DEFAULT_SERVER_LIMIT 설정) ########################### 경로 : /server/mpm/prefork/prefork.c 파일 : prefork.c #define DEFAULT_SERVER_LIMIT 256 <-- 1024 or 2048로 변경 경로 : server/mpm/worker/worker.c 파일 : worker.c #define DEFAULT_SERVER_LIMIT 16 <-- 128 로 변경 (server/mpm/prefork/prefork.c 의 SERVER_LIMIT 값을 1024로 변경한경우) #define DEFAULT_SERVER_LIMIT 16 <-- 256 로 변경 (server/mpm/prefork/prefork.c 의 SERVER_LIMIT 값을 2048로 변경한경우) ############### (MaxClient 설정) ############### 아파치 컴파일 1) /conf/httpd.conf Include conf/extra/httpd-mpm.conf 2) /conf/extra/httpd-mem.conf 파일 수정 => prefork 일때 .. <IfModule mpm_prefork_module> StartServers 16 MinSpareServers 256 MaxSpareServers 1024 MaxClients 2048 MaxRequestsPerChild 0 </IfModule> => worker 일때 .. (MaxClients 2048 ~ 4096 지원가능) <IfModule mpm_worker_module> StartServers 16 MaxClients 2048 MinSpareThreads 256 MaxSpareThreads 1024 ThreadsPerChild 64 MaxRequestsPerChild 0 </IfModule> ## 2013-12-16 내용 추가 ## apache-2.2.x버전 부터는 DEFAULT_SERVER_LIMIT 128~ 2000 이 적용되있어서 2000 이내일경우 새로 컴파일 하지 않아도 됩니다. 일반적으로 MaxClient = ServerLimit 값을 동일하게 설정하는데.. 2000까지는 그냥 적용해도 인식됩니다. MinSpareThreads=75 // default 값 MaxSpareThreads=250 // default 값 위 처럼 수정하신뒤 ./apachectl restart 하실때 에러없이 기동되면 정상적으로 설정이 된것입니다. .. 하다 잘 모르시면 답글남겨주세요..^^ 확인후 답신해드릴께요. 그럼 부더운 여름날.... 아 덥다..~~ 열공하세요. |