show variables like '%max_connections%';
=>
"max_connections" "100"
"Aborted_connects" "53"
show status like '%thread%';
=>
"Threads_cached" "5"
"Threads_connected" "99"
"Threads_created" "1469"
"Threads_running" "1"
Connection Usage(%) = Threads_connected / max_connections * 100
Connection Usage(%)가 100% 라면 max_connections 수를 증가시켜 주십시요. Connection 수가 부족할 경우 ==> Too Many Connection 에러
==> max_connections 를 올려줌
DB 서버의 접속이 많은 경우는 wait_timeout 을 최대한 적게 (30 정도를 추천) 설정하여 불필요한 연결을 빨리 정리필요. 그러나 Connection Miss Rate(%) 가 1% 이상이 된다면 wait_timeout 을 좀 더 길게 가져야 함.
Cache Miss Rate(%) 가 높다면 thread_cache_size를 기본값인 8 보다 높게 설정하는 것이 좋습니다. 일반적으로 threads_connected 가 Peak-time 시 보다 약간 낮은 수치로 설정
MySQL 서버는 외부로 부터 접속 요청을 받을 경우 인증을 위해 IP 주소를 호스트네임으로 바꾸는 과정을 수행하여 접속시에 불필요한 부하 발생.
my.cnf에서 skip-name-resolve를 설정, 접속시 IP 기반으로 접속을 하게 되면 hostname lookup 과정 생략되어 좀 더 빠르게 접속 가능
skip-name-resolve
'Programming > Mysql' 카테고리의 다른 글
[MySQL] Too many connections 해결 및 기본적인 튜닝 (0) | 2019.01.08 |
---|---|
MySql 에서의 현재시각 sysdate vs now (0) | 2013.05.03 |
댓글을 달아 주세요