테스트 사이트 - 개발 중인 베타 버전입니다

아파치 too many connection 으로 접속이 안될 경우 채택완료

더블피디 8년 전 조회 5,221

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


접속자들이 많아질 경우 (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개

채택된 답변
+20 포인트
8년 전

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

 

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

 

https://sir.kr/data/editor/1703/c4cd56f55d8d9c122ce0bab7304e99f4_1488854403_264.png">

 

그후 MySQL >

set</span><span class="pln"> global max_connections </span><span class="pun">=</span><span class="pln"> </span><span class="lit">200</span><span class="pun">;
와 같이 커넷션 수를 증가해서 실행 해주시면 됩니다.

 

또는 my.cnf 파일에서

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

 

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

 

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

더블피디
8년 전
mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 256 |
+-----------------+-------+
1 row in set (0.05 sec)

현재 256 상태입니다.
亞波治
8년 전
256 이면 512 로 바꿔 보세요.

댓글을 작성하려면 로그인이 필요합니다.

진서기
8년 전

병목현상이 일어나는 원인부터 찾아보세요

 

에러 발생시 MySQL 프로세서수를 확인해 보세요.

 

slowlog 확인해시고 해당 쿼리들 모두 튜닝해보세요 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

U
8년 전

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

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인