구조 : 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를 없애는 방법은 서버를 재기동하는 방법밖에 없음.
CLOSE_WAIT & TIME_WAIT 최종 분석
트래픽이 많은 웹 서비스를 운영하다보면 CPU는 여유가 있지만 웹서버가 응답을 제대로 처리하지 못하고 먹통이 되는 경우를 종종 보게 됩니다. 여러가지 이유가 있겠지만, 이 글에서는 가장 대
tech.kakao.com
정리를 하자면,
행(hang)이란 시스템, 네트워크, 어플리케이션이 동작하지 않고 서비스가 응답하지 않는 상태 즉, 시스템 입출력에 대한 반응이 없는 상태로 시스템 운영이 불가능한 상태를 뜻합니다.
행 증상의 원인으로는 하드웨어의 결함이나 Thread 혹은 Memory 부족, 리소스 경합이나 DeadLock이 발생
728x90
반응형