구조 : DB 서버 #1, WAS 서버 #2
현상
netstat | grep mysql
mysql 포트를 확인했을 때 아래와 같이 close_wait, time_wait 와 같은 아래와 같이 사용되지 않는 포트가 많이 보임. 나중에 사용자가 늘었을 때, 사용되지 않는 포트나 인스턴스가 늘어 서버에 부하를 줄 것으로 예상.
TCP 통신 중 제대로 소켓이 끊어지질 않아 발생하는 문제 : TIME_WAIT, CLOSE_WAIT
1) TIME_WAIT 해결 방법
MySQL에서 wait_timeout을 설정한다. 사용되지 않는 커넥션들이 반환되어 다시 사용될 준비되는 시간이 2,000,000초이다. 그 시간 동안 계속 대기 상태이므로 timeout을 여유롭게 60초로 변경한다.
show variables like '%timeout%'
set GLOBAL wait_timeout=60;
대기 중인 포트는 사라짐.
2) CLOSE_WAIT 해결 방법
close_wait를 없애는 방법은 서버를 재기동하는 방법밖에 없음.
정리를 하자면,
행(hang)이란 시스템, 네트워크, 어플리케이션이 동작하지 않고 서비스가 응답하지 않는 상태 즉, 시스템 입출력에 대한 반응이 없는 상태로 시스템 운영이 불가능한 상태를 뜻합니다.
행 증상의 원인으로는 하드웨어의 결함이나 Thread 혹은 Memory 부족, 리소스 경합이나 DeadLock이 발생
728x90
반응형