대량의 TIME 발견WAIT 솔 루 션전달 하 다

6366 단어 어떻게
원본 주소:http://kerry.blog.51cto.com/172631/105233/
오늘 아침 출근 하 자마자 회사 의 여러 사이트 가 열 리 지 않 고 데이터 베 이 스 를 접속 한 다 는 동료 가 나 타 났 다.
서버 (windows) 는 매우 카드 가 있 는 것 을 발견 하고 서버 를 재 개 했 습 니 다. 시스템 에 들 어간 후에 도 문제 가 없 었 습 니 다. 시스템 프로 세 스 를 살 펴 보 니 my sql 의 점용 률 이 99% 에 달 했 습 니 다. 분명 한 것 은 my sql 연결 에 문제 가 생 겼 습 니 다.
netstat -an
192.168.12.13:3306      192.168.12.12:30443      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30444      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30445      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30446      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30447      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30448      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30449      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30450      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30451      TIME_WAIT
192.168.12.13:3306      192.168.12.12:30452      TIME_WAIT
... ...
      TCP 프로 토 콜 에 의 해 정 의 된 세 번 의 악수 로 연결 을 끊 는 규정 에 따라 socket 이 자발적으로 닫 힌 쪽 socket 은 TIME 에 들 어 갑 니 다.WAIT 상태, TIMEWAIT 상 태 는 MSL (Max Segment Lifetime) 2 개 를 지속 하 며, Windows 에 서 는 기본적으로 4 분, 즉 240 초, TIMEWAIT 상태 에서 socket 을 회수 하여 사용 할 수 없습니다. 구체 적 인 현상 은 대량의 짧 은 연결 을 처리 하 는 서버 에 대해 서버 가 클 라 이언 트 의 연결 을 자발적으로 닫 으 면 서버 측 에 TIME 이 대량으로 존재 합 니 다.WAIT 상태의 socket 은 심지어 Established 상태 에 있 는 socket 보다 많 고 서버 의 처리 능력 에 심각 한 영향 을 주 며 사용 가능 한 socket 을 다 소모 하여 서 비 스 를 중단 합 니 다. TIMEWAIT 는 TCP 프로 토 콜 로 재 분 배 된 socket 이 이전에 남아 있 는 지연 메시지 의 영향 을 받 지 않도록 하 는 메커니즘 으로 필요 한 논리 적 보증 입 니 다.      HKEY 에서LOCAL_MACHINE \ \ SYSTEM \ \ Current Control Set \ Service \ Tcpip \ \ Parameters, TcpTimed WaitDelay 라 는 DWORD 키 를 60 으로 설정 하여 TIME 단축WAIT 의 대기 시간
 
웹 서버 에 로그 인 (linux):
    
     netstat -ae |grep mysql
     tcp        0      0 aaaa:53045               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53044               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53051               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53050               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53049               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53048               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53055               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53054               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53053               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53052               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53059               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53058               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53057               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53056               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53063               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53062               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53061               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53060               192.168.12.3:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53067               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53066               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53065               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53064               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa53071               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53070               192.168.12.13:mysql           TIME_WAIT   root       0tcp        0      0 aaaa:53069               192.168.12.13:mysql           TIME_WAIT   root       0 시스템 에 대량의 TIME 가 존재 함 발견WAIT 상태의 연결 은 커 널 매개 변 수 를 조정 하여 해결 합 니 다.
vi /etc/sysctl.conf
파일 편집, 다음 내용 추가: net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
   /sbin/sysctl -p  매개 변 수 를 유효 하 게 하 다.

 

net.ipv4.tcp_syncookies = 1  SYN Cookies。 SYN , cookies , SYN***, 0, ;


net.ipv4.tcp_tw_reuse = 1  。 TIME-WAIT sockets TCP , 0, ;


net.ipv4.tcp_tw_recycle = 1  TCP TIME-WAIT sockets , 0, 。


net.ipv4.tcp_fin_timeout  TIMEOUT

 

netstat -ae|grep mysql

tcp        0      0 aaaa:50408               192.168.12.13:mysql           ESTABLISHED nobody     3224651
tcp        0      0 aaaa:50417               192.168.12.13:mysql           ESTABLISHED nobody     3224673
tcp        0      0 aaaa:50419               192.168.12.13:mysql           ESTABLISHED nobody     3224675


       TIME_WAIT  ,mysql , !!

       , , mysql.colse(), mysql  TIME_WAIT  


좋은 웹페이지 즐겨찾기