서버를 운영하다가 보면 사용하는 네트워크 프로세스가 1000개 이상을 초과할 경우가 있습니다. 이럴 경우 서비스 제공에 지연을 발생시킬 수 있습니다.
대부분 네트워크 프로세스를 아래와 같이 체크할 것입니다.
TCP : # netstat -napt | wc -l
UDP : # netstat -napu | wc -l
Network Service Process : #netstat -lptuo
Network WAIT Process Count : #netstat -anpo | grep "WAIT" | wc -l
Network WAiT Process : #netstat -anpo | grep "WAIT" | wc -l
네트워크 프로세스를 체크했을 때 사용하는 프로세스 수가 많거나 TIME_WAIT가 많이 발생한다면 네트워크 파라미터를 튜닝할 필요가 있습니다.
이때 사용할 수 있는 네트워크 파라미터는 다음과 같습니다.
- net.ipv4.ip_local_port_range : TCP/UDP에 의해 사용될 local 포트 범위를 지정하고, 기본값은 시스템에서 사용 가능한 메모리에 의해 결정
- net.ipv4.tcp_timestamps : TIME_WAIT 상태의 소켓에 통신이 이루어진 마지막 시간을 기록
- net.ipv4.tcp_tw_reuse : TIME_WAIT 상태의 소켓 중 프로토콜상 사용해도 무방해 보이는 소켓을 재사용
- net.ipv4.tcp_fin_timeout : 소켓이 close되기 전 마지막 FIN을 기다리는 시간
해당 파라미터를 설정하기 위해서는 아래와 같이 수행합니다.
# vim /etc/sysctl.conf
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_time = 30
위와 같이 설정하고 #sysctl -p로 설정값을 즉시 적용합니다.
추후 시스템 재부팅을 하면 해당 설정값은 자동으로 적용됩니다.
네트워크 프로세스가 많을 경우 서비스에 영향을 줄 수 있기 때문에 시스템은 안정적으로 운영하기 위해 네트워크 파라미터 튜닝은 필수 입니다.
'IT 이야기 > Linux' 카테고리의 다른 글
[RHEL 공통] NFS 관련 로그가 발생 (0) | 2020.10.20 |
---|---|
[RHEL 공통] 시스템 리소스 사용 제한 (0) | 2020.10.20 |
[RHEL 공통] Messages 로그에서 sendmail 관련 에러 로그가 발생 (0) | 2020.10.19 |
[RHEL 공통] OS 파라미터 TCP_FRTO (0) | 2020.10.19 |
[RHEL 공통] 네트워크 디바이스(NAS) 사용 시 마운트 옵션 (0) | 2020.10.19 |
댓글