TCP Segmentation offload off 적용

 

 

 

TCP Segmentation Offload 란?

 

TCP는 전송시 패킷을 분할(Segmentation)하는데, 이 작업을 CPU가 아닌 NIC가 수행하도록 설정하는 것이 TSO이다.

(기본 값은 ON이다.)

 

하지만 10G NIC 서비스 환경에서 우리는 이와 관련된 많은 장애를 겪었다.
TCP 패킷 유실 및 지연
TCP 연결 종료
Load Average의 비정상적인 증가


결론적으로 TSO는 모두의 기대만큼 높은 성능을 내지 못하는 것으로 추정된다. 

(NIC만 1G로 바꿔도 이런 문제는 발생하지 않았다.) 

 

결론적으로 TSO를 OFF로 설정함으로써 서비스는 정상화되었다. 

이에 따른 CPU 사용량은 우려할 수준이 아니며 서비스 규모와 비례하는 정직한 지표를 보여 준다.

 

출처 : https://ston.readthedocs.io/ko/latest/admin/adv_topics.html

 

 

TCP Segmentation offload off 적용

 

tso 설정 확인

$ ethtool -k eth0  | grep tcp-seg
tcp-segmentation-offload: on

 

tso off 설정

$ ethtool -K eth1 tso off  # K는 대문자


tso 설정 확인

$ ethtool -k eth1 | grep tcp-seg
tcp-segmentation-offload: off


부팅시 자동으로 적용되도록 설정 

vi /etc/sysconfig/network-scripts/ifcfg-eth1
ETHTOOL_OPTS="--offload eth1 tso off"


댓글

Designed by JB FACTORY

loading