리눅스 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번의 방법과 다르게, 네트워크를 재시작 해주지 않아도
바로 적용이 됩니다.
'OS > 리눅스' 카테고리의 다른 글
[리눅스] 하이퍼쓰레드 설정 확인. (0) | 2015.07.02 |
---|---|
[리눅스] default gateway 추가하기. (0) | 2014.05.28 |
[리눅스] 프로세스가 사용중인 PORT 확인. ( netstat -ntlp ) (0) | 2014.05.28 |
[리눅스] yum ERROR:Cannot retrieve repository metadata (repomd.xml) for repository: (0) | 2014.05.28 |
[리눅스] IP 변경하기 ( 파일 수정 ) (0) | 2014.05.28 |