Embedded
沒有獲得 100 mbps 的全網速(甚至接近)
當我在大文件上使用 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 的時鐘,或者獲得更快的時鐘。