大容量ファイルにrsyncを使用すると、ダウンロード速度は2.7 MB / sで約22 Mbpsです。ネットワークカードで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です。クライアント側では、速度は65Mbpsです。また、これをリモートで実行する必要があります(設定するためにコンピュータにSSHで接続している場合など)。これは少し低いようですね。
答え1
データ転送時にhtopを介してCPU使用率を確認します。イーサネットイベント中に最大値に達すると、CPUにボトルネックがあるという良い信号です。唯一の解決策は、CPUのクロックを増やすか、より速いクロックを取得することです。