주식회사 누리아이티

정보자산의 보안강화를 위한 2차인증 보안SW 및 지문인식 OTP/출입/보안카드 전문기업

▶ Tuxedo/이슈

TIME_WAIT 상태시간 줄이기

누리아이티 2010. 5. 2. 18:13

이슈 : TIME_WAIT 상태시간 줄이기
       TIME_WAIT 상태는 정상적인 종료 과정에서 거??되는 과정으로 마지막 ACK 신호를 잃어 버린 경우에 재 전송하기 위한 상태이다.
       Client/Server 환경에서는 주로 Connection-Oriented 형식으로 사용하기 때문에 이 상태에 머무르는 소켓의 개수가 많지 않지만,

       Connectionless 형식을 사용하는 HTTP 환경에서는 부하에 비례하여 생기게 된다. 따라서, 부하가 많은 경우에는 이 상태에 잔류하는

       소켓이 많아지게 되어 File Descriptor 개수 제한에 걸리게 된다.
 

조치 : 위와 같이 TIME_WAIT에 잔류하는 소켓의 개수를 줄이기 위해서는 그 잔류시간을 줄여주는 것이 바람직하다.
       일반적으로 Unix 메신에서는 "root" 권한을 가진 사용자가 다음과 같이 "ndd" 명령을 사용하여 조회/변경이 가능하다.
         조회시 : ndd       /dec/tcp tcp_time_wait_interval
         변경시 : ndd-set   /dec/tcp tcp_time_wait_interval <value>
       여기서 <value>에 해당하는 값은 milli-second 단위이다.
       그리고, Windows 환경에서는 아래의 "TcpTimedWaitDelay" 값을 Registry에서 설정하면 된다.
       --------------------------------------------------------------------------------------
         TcpTimedWaitDelay (new in Windows NT version 3.51 SP5 and later)
                 Key:Tcpip\Parameters
                 Value Type: REG_DWORD - Time in seconds
                 Valid Range: 30-300 (decimal)
                 Default: 0xF0 (240 decimal)
       --------------------------------------------------------------------------------------
       Windows 환경에서 자세한 적용 절차는 다음 URL을 참조(http://support.microsoft.com/support/kb/articles/Q120/6/42.asp)