본문 바로가기

OS/리눅스

[리눅스] TCP BUFFER SIZE 변경.

반응형


리눅스 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번의 방법과 다르게, 네트워크를 재시작 해주지 않아도

바로 적용이 됩니다.





반응형