apache 2.0에서 MPM worker방식으로 데몬이 돌때
아파치를 설치할때 파일수정은 다음과 같이 했습니다.
/usr/local/src/httpd-2.0.49/server/mpm/worker/worker.c 파일안에 #define DEFAULT_SERVER_LIMIT 160 #define DEFAULT_THREAD_LIMIT 64
그리고 아파치 설정파일에 다음과 같이 했습니다.
/usr/local/apache-2.0.49/conf/httpd.conf 파일안에 <IfModule worker.c> StartServers 20 MaxClients 150 MinSpareThreads 30 MaxSpareThreads 60 ThreadsPerChild 30 MaxRequestsPerChild 0 </IfModule>
운영도중에 로그파일에 다음과 같이 나왔습니다.
그리고 웹페이지에서 요청을 더이상 받지를 않았습니다.
/usr/local/apache-2.0.49/logs/error_log 파일안에 [error] server reached MaxClients setting, consider raising the MaxClients setting
이때쯤에 netstat -anp|grep :80|wc -l 로 해봤을때 800~900사이로 나왔습니다.
서버사양은 제온 2.8 듀얼에 메모리 2기가입니다. 이서버에는 아파치와 자바데몬 10개정도와 센드메일이 돌고 있으며 db서버는 다른 서버에 있으며 내부아피로 통신합니다.
첨에 설치할때 160개의 프로세서에 프로세스당 64개의 쓰레드를 처리한다는 계산으로 10240개의 접속을 허용한다고 생각하고 설정했는데 제대로 된건지요?
그리고 httpd.conf에 설정치를 어느정도로 해야 그 수치에 근접하는건지.
제대로 아는게 없어서.. 많은 답변 부탁드립니다.
빼먹은게 있어서.. ㅡ.ㅡ
커널은 2.6.6으로 현재 돌고 있습니다 OS는 RHEL3 을 공개용으로 한 whitebox를 설치했습니다.
---------------------------------------------------------------------------------
글을 올린후에 httpd.conf에 worker.c의 설정을 아래와 같이 바꾸고 해봤더니
<IfModule worker.c> StartServers 20 MaxClients 500 MinSpareThreads 20 MaxSpareThreads 80 ThreadsPerChild 50 MaxRequestsPerChild 0 </IfModule>
별로 많지 않은 유저인데도 페이지가 열리지 않네요.. error_log 에는 아무런
로그도 찍히지 않았습니다.
netstat -anp|grep :80|wc -l 로 했을때.. 3~400정도였거든요.
---------------------------------------------------------------------------------
댓글 달기