목차

Ethtool

ethtool은 리눅스 기반 운영 체제에서 네트워크 인터페이스 카드(NIC)를 설정하고 관리하는 데 사용되는 강력한 명령줄 유틸리티임. 이 도구를 통해 사용자는 네트워크 카드의 다양한 기능과 동작을 조정할 수 있으며, 네트워크 인터페이스의 상태를 진단할 수 있다.

The "Detected Hardware Unit Hang" message related to the e1000e network driver typically indicates a problem with the network interface card (NIC) or its driver on a Linux-based system.

  - ethtool -i enp0s25
driver: e1000e
version: 6.8.8-4-pve
firmware-version: 0.13-4
expansion-rom-version:
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
  - ethtool  enp0s25
Settings for enp0s25:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        MDI-X: off (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

TSO & GSO

설정 상태 보기

sudo ethtool -k enp0s25| grep segmentation

끄기

sudo ethtool -K enp0s25 tso off gso off

TSO

TCP Segmentation Offload

일반적으로 TCP/IP 스택은 큰 데이터 스트림을 작은 TCP 세그먼트로 나누어야 하며, 각각의 세그먼트는 IP 및 TCP 헤더를 가지고 있다. TSO를 사용하면 이러한 세그먼트 분할 작업을 운영 체제의 네트워크 스택이 아닌 NIC에서 처리하게 된다. NIC는 큰 데이터 청크를 받아 이를 자체적으로 세그먼트로 나누어 전송함.

GSO

GSO(Generic Segmentation Offload)는 네트워크 스택의 성능을 향상시키기 위해 고안된 또 다른 오프로드 기술임. GSO는 TSO(TCP Segmentation Offload)와 유사한 목적을 가지고 있지만, 구현 방식과 지원 프로토콜에서 차이가 있다. GSO는 일반적으로 소프트웨어 레벨에서 동작하며, TSO를 지원하지 않는 환경에서도 유용하게 사용될 수 있다.

GSO는 운영 체제의 네트워크 스택에서 큰 네트워크 패킷을 처리할 때, 이러한 패킷을 하드웨어에 전달하기 전에 소프트웨어 레벨에서 분할을 최소화함. 실제 패킷 전송 시에는, 큰 패킷을 하드웨어(NIC)가 아닌 커널 내부에서 관리하여 세그먼트화함. 이를 통해 네트워크 카드가 지원하지 않는 경우에도 오프로드의 이점을 얻을 수 있다.

연결문서