메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


*출처 : http://www.jnetwork.co.kr/bbs/board.php?bo_table=useguide&wr_id=194&sca=&page=3


특정 사이트에서 mysql 서버 접속이 엄청 느려졌다.

로컬 접속은 문제가 없는데  외부 mysql  쿼리만 유독 느리다면......

또 서버 리소스나 네트웍에는 크게 문제가 업다면.....

 

mysql> show processlist;

| 1233 | unauthenticated user | 10.1.0.100:49607 || Connect|| login | 

| 1234 | unauthenticated user | 10.1.1.100:49608 || Connect|| login |

 

DB 연결 속도가 떨어지고, 웹페이지 접속이 느려지는 것 같습니다. 

저게 왜 생기는 것인지 그리고 해결 방안은?

 


먼저 저런 증상에서 벗어 나시려면 

mysql 구동시 --skip-name-resolve 옵션 넣어 주시던가 

혹은 /etc/hosts 설정 파일에 접속 IP와 호스트명을 넣어 주시면 됩니다.

 

그럼 왜 저런 증상들이 나타나는 지 대략 말씀드리자면 mysql에서 접속시 ip에 대한 resolving을 하는데 

대부분의 IP는 등록되어 있지 않습니다.

 

DNS서버가 느리다면 이 부분은 더욱 심각한 속도 문제가 발생하게 됩니다. 

역질의를 하지 않는 방법과, DNS가 아닌 /etc/hosts파일에서 질의 하게 하는 방법으로 풀어야합니다. 

둘 중 빠른 방법은 DNS서버에게 역질의하지 않게 하는 방법입니다. 

 

skip-name-resolve는 client 에서 server로 접속시에 DNS Lookup 과정을 생략해 주고, 

localhost 로 접속하는 경우는 문제가 없지만 IP 로 접속하는 환경에서는 DNS 서버가 느리거나 

아님 장애 발생시에 해당 옵션을 설정해 주므로써 DB 접속시에 문제점을 해결하실 수 있습니다.

 

결론은

1. DB서버에  /etc/host 파일을 변경해 주고 접속하기

 

#vi /etc/hosts

168.126.63.1               www1 www1.jnetwork.co.kr localhost

 

 

2. DB서버 재시작시 skip-name-resolve 옵션을 주고 재시작 함

#killall mysqld

#/usr/local/mysql/bin/mysqld_safe --skip-name-resolve &


* 우분투 16.04 LTS에서 MariaDB는 아래와 같이 실행시켜준다.

#killall mysqld

#root@gsda3:/root# /usr/sbin/mysqld --skip-name-resolve &


3. /etc/mysql/my.cnf를 수정하여 영구적으로 반영한다.(2번 혹은 3번준에 한개만 실행할 것) 

vi /etc/mysql/my.cnf 

[mysqld]의 끝에 skip-name-resolve를 추가해준다.

그리고 service mysqld restart를 수행하여 변경사항을 반영한다.


위로