서버쪽의 CLOSE_WAIT timeout 줄이기 :: 게임제작[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

게임제작
[1]
등록일:2018-08-01 21:08:05 (0%)
작성자:
제목:서버쪽의 CLOSE_WAIT timeout 줄이기

서비스 운영하다보니 서버에 CLOSE_WAIT된 socket이 엄청많이 발생하는것이 발견됨...


* CLOSE_WAIT는 왜 발생하는가?

- 요 한장의 이미지가 제일 좋은 설명인듯

http://kukuta.tistory.com/155


- 요거를 코드로 구현해 놓은건 이쪽 사이트에서 확인해볼수 있음.

http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&pageno=0&wid=1334&rssMode=1&wtype=0


* 서버의 소켓 상태 확인


# netstat -nto | grep CLOSE_WAIT.*on

~~~~~~~ CLOSE_WAIT  on (10.51/11/0)

~~~~~~~ CLOSE_WAIT  on (115.64/12/0)

~~~~~~~ CLOSE_WAIT  on (5.27/14/0)

~~~~~~~ CLOSE_WAIT  on (110.84/13/0)

~~~~~~~ CLOSE_WAIT  on (90.57/15/0)

......

- client로부터 FIN을 receive 받고 ACK를 send를 했는데 ACK가 처리되지 못하고 있어서(send-q에 처리되지 못한 q가 남아있음) 다음단계로 넘어가지를 못하는 상태로 볼수 있다.

 -> timer가 돌면서 retry를 하지만 오래 걸림(15분 ~ 30분)

* 변경
- 기존 tcp_retries2 설정을 확인해보면 15로 설정이 되어있음
# cat /proc/sys/net/ipv4/tcp_retries2
15
- 15인 경우 전체 timeout까지는 13 ~ 30분 정도 소요
- 해당 설정을 줄여서 빠르게 재전송 시도 후 실패하도록 변경
/etc/sysctl.conf 설정
net.ipv4.tcp_retries2 = 3 ~ 5

* 참조

http://stackoverflow.com/questions/5907527/application-control-of-tcp-retransmission-on-linux


[본문링크] 서버쪽의 CLOSE_WAIT timeout 줄이기
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34775
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.