Linuxで1GのNICから10GのNICへファイルのコピーをしてたが、めっちゃ遅い。どうもネットワークデバイスが意図しないリンク速度として認識してしまってるらしい。いわゆるオートネゴシエーションが悪さしてるっぽかったので、無効化して手動でリンク速度を設定したのでメモ
ここではethtoolというコマンドを使う
設定確認
ethtool -s eno1
オートネゴシエーションを無効化
ethtool -s eno1 autoneg off
ethtool -s eno1 autoneg on
でもとに戻る
全二重として設定
ethtool -s eno1 duplex full
リンク速度の設定
ここでは1Gに設定している。
ethtool -s eno1 speed 100
設定可能な速度は
cat /sys/class/net/<interface>/speed
でわかる。存在しない速度を指定してしまうとネットワークに接続できなくなってしまうので注意(体験談
実は一括でも設定できる
ethtool -s eno1 speed 100 duplex full autoneg off
pingで見てる感じだと、1回の設定に約4秒程度ネットワークの接続が切れているようだった。ただ一括設定のときと個別設定で途切れてる時間は同じだったので一括で設定したほうがダウンタウンは最小限に抑えられる