当我对大文件使用 rsync 时,它显示的下载速度为 2.7 MB/s,即 22Mbps 左右。当我在网卡上运行 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 连接到一台计算机来配置它)。这似乎有点低。
答案1
传输数据时通过htop查看CPU占用情况。如果它在以太网事件期间达到最大,这是一个好迹象,表明您的 CPU 是瓶颈。唯一的解决方法是增加 CPU 的时钟,或者获得更快的时钟。