php서버에서 mysqli를 이용해 mysql 서버에 연결시 HY000/2003 오류발생시 대처법

부하테스트를 위해 1분 동안 수만개의 PHP 페이지를 요청할 때마다 디비에 연결하고 끊도록 하였더니,

TIME_WAIT이 수 만개 가량 생성되어, 커넥션 오류(HY000/2003)가 발생하였다.


물론, 커넥션 풀을 사용해 봤지만, 뭐가 잘 못인지 php 요청 할 때마다, 커넥션이 하나씩 늘어났다.

그러던 와중에 구글링에서 다음과 같이 설정하는 방법을 찾게 되었다.


아래에 있는 파라미터 설정은  TIME_WAIT을 재활용하겠다고 설정한 것이다.


테스트 결과, TIME_WAIT이 급격히 줄었고, 

커넥션 오류 또한 거의 발생하지 않았다.

$ vi /etc/sysctl.conf net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 $ sysctl -p