로그인
Sign in

RHEL V4 & V5 - e1000: eth9: e1000_clean_tx_irq: Detected Tx Unit Hang

문제

레드헷 리눅스에서 e1000 NIC를 사용 중 e1000: eth9: e1000_clean_tx_irq: Detected Tx Unit Hang 메시지가 발생되며 시스템이 Down되는 문제가 발생합니다.

 

해결책

이 문제는 인텔 82545/82546 칩에만 발생되는 것으로 문제를 피하기 위해서는 

- "TSO" disabled.

/sbin/ethtool -K eth0 tso off

/sbin/ethtool -K eth1 tso off

 

- Option 추가

TxDescPower = 10 with TxDescriptors = 1024 

InterrupThrottleRate=8000,8000,8000,8000.

 

options e1000 TxDescPower=10,10 TxDescriptors=1024,1024

InterruptThrottleRate=8000,8000 <-- /etc/modprobe.conf

 

- 근본적인 해결책

Intel NIC를 다른 NIC로 바꾸는 것입니다.

 

 

------------------------------------------------------------------

 

 

Turn off TSO on all NICs.  Large Segment Offload (known as Transmit Segment Offload in Linux) was implemented to offload some network processing to the NIC.  While good in theory, it appears to cause more problems than it solves.  It was more appropriate in older systems with limited processing power, but can result in choppy video and audio in media streaming and gaming applications in modern systems.

It should be defaulted off on all NICs.  There is no reason for a user to turn it back on.

 

 

Turn off TSO:

ethtool -K ethX tso off

 

TCP Segmentation Offload

중요

 

10G NIC를 사용한다면 TSO(TCP Segmentation Offload)를 OFF로 설정하길 권장한다.

 

TCP는 전송시 패킷을 분할(Segmentation)하는데, 이 작업을 CPU가 아닌 NIC가 수행하도록 설정하는 것이 TSO이다. (기본 값은 ON이다.) 하지만 10G NIC 서비스 환경에서 우리는 이와 관련된 많은 장애를 겪었다.

 

TCP 패킷 유실 및 지연

TCP 연결 종료

Load Average의 비정상적인 증가

결론적으로 TSO는 모두의 기대만큼 높은 성능을 내지 못하는 것으로 추정된다. (NIC만 1G로 바꿔도 이런 문제는 발생하지 않았다.) 결론적으로 TSO를 OFF로 설정함으로써 서비스는 정상화되었다. 이에 따른 CPU 사용량은 우려할 수준이 아니며 서비스 규모와 비례하는 정직한 지표를 보여 준다.

 

TSO 설정은 다음과 같이 설정/확인할 수 있다. (K의 대/소문자에 유의한다.)

 

# ethtool -K ethX tso off        // TSO OFF 설정

# ethtool -k ethX                // 설정 열람

...

tcp segmentation offload: on

...

참고

 

더 자세한 정보는 다음 링크를 참조한다.

 

http://sandilands.info/sgordon/segmentation-offloading-with-wireshark-and-ethtool

http://www.linuxfoundation.org/collaborate/workgroups/networking/tso

http://www.packetinside.com/2013/02/mtu-1500.html

 

-------------------

 

TSO

# ethtool -k eth0

Features for eth0:

...

tcp-segmentation-offload: on

        tx-tcp-segmentation: on

        tx-tcp-ecn-segmentation: off [fixed]

        tx-tcp6-segmentation: on

        tx-tcp-mangleid-segmentation: off

 

generic-segmentation-offload: on

generic-receive-offload: on

...

 
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 자주 사용하는 명령어 제비게릴라 2019-06-27 179
232 우분투 rpm 파일을 deb로 변경시 i386 제비게릴라 2020-08-18 108
231 ubuntu nvidia 드라이버 업데이트 제비게릴라 2020-05-07 11
230 우분투 관련 명령 및 정보 제비게릴라 2020-03-13 19
229 centos 7에서 nic 고정 방법 제비게릴라 2020-03-05 107
228 pci 슬롯 확인... lspci 제비게릴라 2020-02-06 466
227 ubuntu apt proxy 설정 제비게릴라 2020-01-31 34
226 apache 동작이 안 될 때 제비게릴라 2019-12-17 1607
225 MBR 삭제시 복구 방법 제비게릴라 2019-10-01 68
» tx hang 관련 (TSO) 제비게릴라 2019-08-05 870
223 centos 7에서 파워버튼 눌러도 안 꺼지게 하는 방법 제비게릴라 2019-07-30 69
222 date 사용한 스크립트 제비게릴라 2019-07-16 16
221 자주 사용하는 명령어 제비게릴라 2019-06-27 179
220 리눅스 상에서 MBR 삭제 및 복구 방법 제비게릴라 2019-06-19 144
219 expect에서 echo 명령어로 추가할 때 [1] 제비게릴라 2019-06-04 307
218 chage 명령으로 패스워드 날짜 업데이트.. 제비게릴라 2019-05-14 60
217 하드웨어 시간 맞추는 방법 제비게릴라 2019-04-22 43
216 dell disk 교체 방법 제비게릴라 2019-04-22 116
215 hpssacli, hpacucli 사용 디스크 교체 방법 [1] 제비게릴라 2019-04-22 405
214 ping이 제대로 안 나갈때 connect: No buffer space available [1] 제비게릴라 2019-01-04 436
213 centos 7.5에서 openssh 소스 설치 [1] 제비게릴라 2018-10-24 233