1. 개요
Web Server와 Database가 분리되어 있는 환경에서 발생하는 문제점으로 이 문제를 해결하지 않고 그대로 놔 두게 되면 max_connections 값만큼 프로세스를 차지하게 되어 다음 연결부터는 too many connections 라는 문구를 보게 될 것이다.
2. 원인
mysql 서버의 경우 ip주소로 클라이언트 접속이 들어오게 되면 해당 ip에 대한 resolving을 수행하게 된다. 즉, 접속한 네가 누구냐? 라고 묻게되는 건데 문제는 이 질의에 대해 정상적으로 대답을 하게 되면 show processlist 상에 ip 부분이 이름으로 나오게 되지만 네트워크 환경이 느려 dns server의 대답이 늦어지게 된다면 그만큼 connection을 유지하고 있는 문제가 발생하게 된다.
3. 해결
mysql 구동시 –skip-name-resolve
혹은 my.cfg 파일에서
[mysqld]
…
skip-name-resolve
skip-host-cache
두 줄을 추가해 주고 데몬을 재시작 하면 된다.