연결 가능한 수가 Clients에게 사용되고 있다는 의미
연결 실패 수가 max_connect_errors 에 도달하면 connection이 막혀 Too many connection 오류가 발생한다.
1. wait-timeout 설정
DB 서버에 접속이 많은 경우 wait-timeout 을 작게 설정하여 불필요한 연결을 제거하는 것이 좋다.
하지만 Connection Miss Rate(%) 가 1% 이상이면 더 길게 설정할 필요가 있다.
2. max-connection 설정
max-connection 수를 증가 시켜 connection 수를 증가시키는 방법
3. connection 튜닝
- DB 상태
Aborted_clients : 클라이언트 프로그램이 비 정상적으로 종료된 수
Aborted_connects : DB 서버에 접속이 실패된 수
Max_used_connections : 최대로 동시에 접속한 수
Threads_cached : Thread Cache의 Thread 수
Threads_connected : 현재 연결된 Thread 수
Threads_created : 접속을 위해 생성된 Thread 수
Threads_running : Sleeping 되어 있지 않은 Thread 수
- 시스템 설정 값
wait_timeout : 종료전까지 요청이 없이 기다리는 시간 ( TCP/IP 연결, Shell 상의 접속이 아닌 경우 )
thread_cache_size : thread 재 사용을 위한 Thread Cache 수로써, Cache 에 있는 Thread 수보다 접속이 많으면 새롭게 Thread를 생성한다.
max_connections : 최대 동시 접속 가능 수
Cache Miss Rate(%) = (Threads_created / Connections) * 100
Connection Miss Rate(%) = (Aborted_connects / Connections) * 100
Connection Usage(%) = (Threads_connected / max_connections) * 100
Cache Miss Rate(%)가 높다면 Thread_cache_size를 기본값 보다 높게 설정해야 한다.
Connection Usage(%)가 100% 라면 max_connections 수를 높게 설정해야 한다.
Connection Miss Rate(%)가 1% 이상이 된다면 wait_timeout 을 좀더 길게 설정해야 한다.
코트슈(Code Troubleshooter) 프로그래머의 일상 Execution, Errors, Find, Solution 개발자들은 많은 오류로 시간을 허비한다... 코트슈가 도와드립니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!