아파치 too many connection 으로 접속이 안될 경우

아파치 too many connection 으로 접속이 안될 경우

QA

아파치 too many connection 으로 접속이 안될 경우

답변 3

본문

아파치 설정을 어떻게 해야 최적이 될까요?


접속자들이 많아질 경우 (too many connection 원인으로) 웹 사이트에 접속이 안되는 상황이 나옵니다.

서버의 최대 접속자 수 = (서버메모리 - mysql메모리) / 아파치 프로세스 평균메모리
아래 명령어를 통해 대략 565개정도 나옵니다. 

ps aux | grep mysql | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
(103)
ps aux | grep apache2 | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
(26534)
ps aux | grep apache2 | wc -l
(1902)

netstat -nap | grep :80 | grep ESTABLISHED | wc -l
(2952) 까지 올라갑니다.(이런 경우는 버벅거리는 상황이지만)

 

아파치의 apache2.conf은 아래와 같이 설정했습니다. 

 

<IfModule mpm_prefork_module>

    ServerLimit        4096

    StartServers         15

    MinSpareServers       5

    MaxSpareServers     360

    MaxClients         4096

    MaxRequestsPerChild   0

</IfModule>

 

기본적으로 메모리를 늘려야 할듯하구요

아파치 설정이 아닌 다른 부분을 확인해봐야할까요? 

이 질문에 댓글 쓰기 :

답변 3

우선 db의 max_connections 이 얼마나되는지 확인해 보시기 바랍니다. 

 

쉘로 접속하여 db로 접속후 show variables like "max_connections"; 를 입력 하시면 아래 예를 들은 이미지처럼  출력될겁니다.

 

c4cd56f55d8d9c122ce0bab7304e99f4_1488854403_264.png

 

그후 MySQL >

 set global max_connections = 200; 
와 같이 커넷션 수를 증가해서 실행 해주시면 됩니다.

 

또는 my.cnf 파일에서

[mysqld] 다음 칸에 max_connections=200 을 입력하고 저장 하시면 됩니다.

 

만약 예를 들은 숫자보다 크다면 더크게 적용해 주면 되겠죠....^^

 

 

 

 

 

서버를 병렬로 구성하셔서 로드밸런싱을 하시는 것도 좋은 방법이고요,

케바케입니다만 FPM을 사용하면 동일한 요청들에 대한 연산을 최적화 해서 메모리 효율을 높일 수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,117
© SIRSOFT
현재 페이지 제일 처음으로