본문 바로가기

IT/Linux

ethtool (랜카드 속도설정과 전송모드 설정)

서버의 메모리를 512MB로 낮췄다. 일종의 스트레스 테스트로 메모리 총 용량이 낮을때는 어떠한 문제들이 발생하는가에 대한 테스트 였고 그 첫번째 문제점이 발생했다. 


 wget으로 제로보드의 위젯을 다운받는데 타임아웃으로 다운로드가 중단되는 현상이 발생했다

  - wget의 타임아웃 시간은 따로 지정하지 않았기 때문에 기본으로 설정되어 있는 상황이다

  - 다시 시도 했을 때 byte수준의 다운로드 속도가 나왔다(평소 낮아도 수십Kb)


이 때에 사용할 수 있는 명령어가 ethtool이다 ethtool 명령어는 스위치나 라우터에서 서버로의 연결을 한 후에 속도가 제대로 나오지 않는 경우 스위치와 서버의 NIC간의 속도를 설정할 수 있습니다(ethtool 명령어는 레드햇 7.2버전 이상부터 사용 가능)


 스위치나 서버의 NIC에서 속도설정은 대부분 auto모드로 설정되어 있어서 별도의 설정작업을 하지않아도 대부분 속도는 맞게 설정이 된다. 하지만 auto로 설정 되어 있지만 속도가 제대로 나오지 않거나 스위치와 서버간의 무언가 설정이 맞지않아서 원하는 속도가 나오지 않는 경우도 발생한다. 이 때 서버에서 체크해야 하는 부분은 다음과 같다.

 - 속도 설정이 10M로 설정되어 있는가? 100M로 설정되어 있는가?

 - 전송모드가 half duplex인가? full duplex인가?

* 이 두가지 설정을 정확하게 해주면 장비간의 문제로 인한 속도저하 문제는 거의 없을 것이다


 ethtool : 이더넷카드 설정의 상황 출력과 변경을 하는 명령어

  - ethtool eth0 : 이더넷 설정확인

  - ethtool -s eth0 [speed 10|100|1000] [duplex half|full] [autoneg on|off] : 이더넷 설정변경


이더넷 상태 확인

 [root@localhost ~]# ethtool eth0        

  Settings for eth0:

        Supported ports: [ TP ]

        Supported link modes: 10baseT/Half 10baseT/Full           지원가능한 링크모드(속도와 전송모드), 현재 옆의

                                         100baseT/Half 100baseT/Full        결과로 보면 10baseT/Half, 10baseT/Full, 100ba

                                         1000baseT/Full                            seT/Full 모두가 지원가능하다는 의미

        Supported pause frame use: No

        Supports auto-negotiation: Yes                   자동현상인식기능의 지원여부, 상대편 이더넷과의 협상을 통하

                                                                        여 자동설정기능이 지원되느냐를 나타내며, 아래의 Auto-nego

                                                                        tiation의 on/off 값을 결정한다                     

        Advertised link modes:  10baseT/Half 10baseT/Full

                                          100baseT/Half 100baseT/Full

                                          1000baseT/Full

        Advertised pause frame use: No

        Advertised auto-negotiation: Yes

        Speed: 1000Mb/s                       현재 이 이더넷의 설정속도

        Duplex: Full                                현재 이 이더넷의 전송모드

        Port: Twisted Pair

        PHYAD: 0

        Transceiver: internal

        Auto-negotiation: on                auto-negotiation 기능을 지원할 때 그 기능을 사용할지 여부

        MDI-X: Unknown

        Supports Wake-on: d

        Wake-on: d

        Current message level: 0x00000007 (7)

                               drv probe link

        Link detected: yes



이더넷 상태 변경

 ethtool -s eth0 speed 100 duplex full autoneg off

 위와 같은 간단한 명령어 형태로 "Speed: 100Mb/s" 과 "Duplex: Full" 과 "Auto-negotiation: off"로 재설정 할 수 있다