Embedded

沒有獲得 100 mbps 的全網速(甚至接近)

  • February 2, 2016

當我在大文件上使用 rsync 時,它顯示的下載速度為 2.7 MB/s,或大約 22Mbps。當我在 NIC 上執行 ethtool 時,輸出如下

Settings for eth0:
   Supported ports: [ TP MII ]
   Supported link modes:   10baseT/Half 10baseT/Full 
                           100baseT/Half 100baseT/Full 
   Supported pause frame use: No
   Supports auto-negotiation: Yes
   Advertised link modes:  10baseT/Half 10baseT/Full 
                           100baseT/Half 100baseT/Full 
   Advertised pause frame use: No
   Advertised auto-negotiation: Yes
   Speed: 100Mb/s
   Duplex: Full
   Port: MII
   PHYAD: 1
   Transceiver: external
   Auto-negotiation: on
   Current message level: 0x00000007 (7)
                  drv probe link
   Link detected: yes

我在主機上發現了類似的讀數。

當我查看 ethtool -i etho 時,我得到以下資訊:

driver: smsc911x
version: 2008-10-21
firmware-version: 
expansion-rom-version: 
bus-info: smsc911x.0
supports-statistics: no
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

我仔細檢查了我正在使用的乙太網電纜,所有電纜都至少為 5e。我在這個項目中使用 LAN9221-ABZJ 晶片。這是韌體問題,協議成本太大,還是該晶片傳輸速度不夠快?

更新

我用iperf檢查了速度。從伺服器端開始,它是 50Mbps。從客戶端來看,它是 65 Mbps。此外,我必須遠端執行此操作(就像我通過 ssh 連接到一台機器來配置它)。這似乎有點低。

在傳輸數據時通過 htop 檢查 Cpu 使用情況。如果它在乙太網事件期間被最大化,則表明您的 CPU 是瓶頸是一個好兆頭。唯一的解決方法是增加 CPU 的時鐘,或者獲得更快的時鐘。

引用自:https://unix.stackexchange.com/questions/259136