컴퓨터/노트북/인터넷
IT 컴퓨터 기기를 좋아하는 사람들의 모임방
리눅스 TCP BUFFER SIZE 변경 하기.
TCP/IP 소켓통신을 이용하는 서버 / 클라이언트 등에서 대용량의 DATA( Packet )가
한꺼번에 밀려들어올 경우, DATA 가 유실이 되는 상황이 발생 되기도 합니다.
이때 EAGAIN 에러 코드를 이용한 예외처리나 retry 처리 등을 활용해,
유실을 막을수도 있지만, 완벽한 방법은 아닙니다.
가장 간단하고 좋은 방법은 "Read / Write" Buffer Size 를 수정해
DATA의 유실을 막는게 가장 좋은 방법이라 생각 합니다.
변경 방법은 아래와 같습니다.
1. 파일 편집.
/etc/sysctl.conf 파일을 vi 로 열어서 편집.
# read 버퍼의 기본 값과 최대 값 수정.
net.core.rmem_default = n
net.core.rmem_max = n
# write 버퍼의 기본 값과 최대 값 수정.
net.core.wmem_default = n
net.core.wmem_max = n
# n 에 자신이 원하는 사이즈를 입력.
위와 같이 편집 후 저장하고 파일을 닫은후 네트워크를 다시 시작해주면 적용 끝.
2. 명령어를 통해 수정.
> sysctl -w net.core.rmem_default = n
> sysctl -w net.core.rmem_max = n
> sysctl -w net.core.wmem_default = n
> sysctl -w net.core.wmem_max = n
( n 에 자신이 원하는 사이즈를 입력. )
위와 같이 명령어를 통해 수정할 경우 1번의 방법과 다르게, 네트워크를 재시작 해주지 않아도
바로 적용이 됩니다.
출처: http://ycswarm.tistory.com/122 [야채군단의 습격]