스위치를 통해 들어온 패킷은 1차로 링 버퍼에 저장 된 후 처리가 진행되기 때문에
링 버퍼 사이즈가 작은 경우 패킷이 드랍되어 네트워크 성능 저하가 발생
링 버퍼 확인
# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 18811
RX Mini: 0
RX Jumbo: 0
TX: 2560
Current hardware settings:
RX: 9709
RX Mini: 0
RX Jumbo: 0
TX: 170
패킷 드랍 확인
- 드랍 카운터의 높은 값은 사용 가능한 버퍼가 패킷을 처리할 수 있는 속도보다 빠르게 채워지는 것을 의미하며, 링 버퍼를 늘리면 손실을 피할 수 있음
# ethtool -S eth0 | grep -i drop
vf_tx_dropped: 0
링 버퍼 사이즈 조절
- maximums 값과 currnent 값을 동일하게 설정하는게 네트워크 성능 저하를 방지 (패킷 드랍 방지)
# ethtool -G eth0 rx 18811; ethtool -G eth0 tx 2560
# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 18811
RX Mini: 0
RX Jumbo: 0
TX: 2560
Current hardware settings:
RX: 18811
RX Mini: 0
RX Jumbo: 0
TX: 2560
rc.loca 추가
- ethtool 명령어는 리부팅 시 설정이 초기화 되기 때문에 rc.local 에 추가
# echo "ethtool -G eth0 rx 18811; ethtool -G eth0 tx 2560" >> /etc/rc.local