사내 내부용 홈페이지 운영 중에, 웹페이지 접속 느림 현상이 발생하여 원인을 찾던 중, mysql log에 아래와 같은 경고 메시지가 수십개 찍혀있는것을 확인하였다.
Mysql [Warning] [Server] IP address 'x.x.x.x' could not be resolved: Temporary failure in name resolution
웹서버와 디비서버를 분리하여 운영하고 있는데, 웹서버에는 특별한 문제가 없어서, 해당 문제를 해결하기 위해 방법을 찾던 중 해결법을 알아내었다.
이 문제는 웹서버와 디비서버를 분리하여 사용할때 주로 나타나는 문제로, 웹서버 접속 시 디비 서버로 클라이언트 접속이 IP 주소로 들어오게 되는데, 서버는들어온 IP에 대한 역질의(resolving)를 수행한다.
이때 접속된 클라이언트 IP가 hosts에 등록되어 있지 않다면, DNS 서버의 응답이 느려져, 속도가 느려지는 현상이 발생한다.
이 문제를 해결하지 않으면 다수의 프로세스가 연결이 해제되지 않고 묶여있게 되어, "too many connections" 에러가 발생하여 접속이 불가능해지거나, 접속이 느려지는 현상이 발생하게 된다.
해결법 1 ) /etc/hosts 파일에 접속하는 클라이언트 IP와 호스트명을 작성
# vi /etc/hosts
192.168.100.10 test.com
해결법 2) mysql 설정파일에 옵션 추가
# vi /etc/my.cnf
skip-name-resolve // dns 질의를 스킵하는 옵션
skip-host-cache // 호스트 이름 캐시 비활성화
'Linux > DB' 카테고리의 다른 글
Galera cluster 8.0 설치 및 설정 (0) | 2023.08.18 |
---|---|
[mysql error] Please use mysql_upgrade to fix this error. (0) | 2023.02.22 |
PostgreSQL-13 설치/설정 및 사용법 (0) | 2023.02.07 |
CentOS7 Mariadb yum 설치 (0) | 2023.01.16 |
centos7 mysql 8.0.11 컴파일 설치 (0) | 2023.01.05 |