「ジャンボフレーム」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:ネットワーク en:Jumbo frames Wikipedia より: :''コンピュータネットワークにおいて、ジャンボフレ...」)
 
(リダイレクトに変更(英語版に追従))
タグ: 新規リダイレクト
 
(他の1人の利用者による、間の2版が非表示)
1行目: 1行目:
[[Category:ネットワーク]]
+
#redirect [[ネットワーク設定#MTU とキューの長さの設定]]
[[en:Jumbo frames]]
 
[[Wikipedia:Jumbo_frame|Wikipedia]] より:
 
:''コンピュータネットワークにおいて、ジャンボフレームとは 1,500 バイト以上の通信量 (MTU) を持つ Ethernet フレームのことを指す。基本、ジャンボフレームは 9,000 バイトまでの通信を運ぶことができるが、決まった数値はないため注意が必要である。大抵の Gigabit Ethernet スイッチや Gigabit Ethernet ネットワークインターフェイスカードはジャンボフレームに対応しているが、全てではない。また Fast Ethernet スイッチや Fast Ethernet ネットワークインターフェイスカードは通常容量のフレームしかサポートしていない。''
 
 
MTU の値を大きくする (ジャンボフレーム) ことでネットワークの転送速度は跳ね上がります。
 
 
== 注意事項 ==
 
 
標準にない MTU 容量を使用した場合、e1000e など、特定のカーネルドライバーでは CPU が C3 の C ステートに入れないようになります。詳しくは開発者のコメントを参照: [https://bugzilla.kernel.org/show_bug.cgi?id=77361 bugzilla #77361]。
 
 
== 要件 ==
 
 
# GigLAN のバックボーン (1000baseT)
 
# ローカル PC のローカル NIC がジャンボフレーム (JF) に対応していること
 
# スイッチが JF に対応していること
 
 
== 設定 ==
 
 
以下のように mtu パラメータを付けて {{ic|ip}} を実行してください:
 
{{bc|# ip link set ethx mtu <size>}}
 
 
{{ic|ethx}} は使用するイーサネットアダプタ (eth0, eth1 など) に、{{ic|<size>}} は使用したいフレームのサイズ (1500, 4000, 9000) に置き換えてください。
 
 
設定が適用されたことは {{ic|<nowiki>ip link show | grep mtu</nowiki>}} で確認できます。
 
 
例:
 
{{hc|<nowiki>$ ip link show | grep mtu</nowiki>|
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 4000 qdisc pfifo_fast state UP qlen 1000
 
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
 
}}
 
 
=== Systemd ユニット ===
 
 
設定を永続するには、systemd ユニットを作成します:
 
 
{{hc|/etc/systemd/system/setmtu@.service|<nowiki>
 
[Unit]
 
Description=Set mtu on device
 
Before=network.target
 
 
[Service]
 
Type=oneshot
 
EnvironmentFile=/etc/conf.d/setmtu
 
ExecStart=/usr/bin/ip link set dev %i up mtu ${%i}
 
 
[Install]
 
WantedBy=multi-user.target
 
</nowiki>}}
 
 
次に設定を作成します。必要に応じて調整してください。一行ごとに一つのデバイスを設定します:
 
 
{{hc|/etc/conf.d/setmtu|<nowiki>
 
eth0=4000
 
</nowiki>}}
 
 
上記の設定で {{ic|eth0}} の mtu が 4000 になります。
 
 
サービスと設定を作成したらデバイス名を指定してサービスを[[デーモン|有効化]]してください (上記の例なら、サービス名は {{ic|setmtu@eth0.service}} となります)。
 
 
=== Netctl ===
 
 
[[netctl]] でアダプタを設定している場合、ネットワークプロファイルで {{ic|ExecUpPost}} 変数を使って mtu を永続的に設定することもできます:
 
 
ExecUpPost='/usr/bin/ip link set eth0 mtu 4000'
 
 
== サンプル ==
 
 
{{Note|These tests were performed on old hardware without the use of a RAM disk, so these results may be quite different from a test performed on modern systems using RAM disks. Using RAM disks would remove potential performance degradation due to slow, magnetic hard disks and would likely increase the benefit of using jumbo frames.}}
 
 
最適な設定を確認するために、実際にファイル転送を行なってみて様々なフレームサイズをテストすることは重要です。ジャンボフレームにおいて万能のサイズはありません。事実、以下で示しているように、ハードウェアによっては、フレームサイズを大きくしすぎるとネットワークのスループットが落ちてしまうこともあります。
 
 
以下では複数の異なる状況 (巨大なファイルが単体の場合と小さなファイルが多数の場合) で3つの異なるフレームサイズ (標準の 1500, ジャンボの 4000, ジャンボの 9000) をテストしています。テストしたハードウェアでは、フレームサイズは 4000 にするのが一番良い結果が得られました。どのハードウェアでもこうなるというわけではありません。自分で実際にフレームサイズを様々に変更し、ファイルを転送してみて効果を評価してください。
 
 
マシン A とマシン B は2004年以前に製造された EIDE ハードドライブを使っています。新しい SATA II HDD や MB ではもっと高いスループットが出るはずです。また、両方のマシンでは [http://us.dlink.com/search/keyword/530T/ D-Link 530T] NIC (PCI バス) を使用しており、表に示したフレームサイズ (1500, 4000, 9000) を使うように設定されています。
 
 
'''テスト 1 - Samba で単体の巨大なファイルを転送 (1,048,522 kb)'''
 
 
''経過時間やスループットは3回実行した結果の平均です。''
 
 
{| class="wikitable"
 
| mtu=1500 || t (秒) || Kb/秒 || || mtu=4000 || t (秒) || Kb/秒 || || mtu=9000 || t (秒) || Kb/秒
 
|-
 
|A から B || 48 || 21,844 || || A から B || 44 || 23,830 || || A から B || 49 || 21,398
 
|-
 
|B から A || 81 || 12,945 || || B から A || 41 || 25,574 || || B から A || 41 || 25,574
 
|-
 
|}
 
 
'''テスト 1 のまとめ'''
 
{| class="wikitable"
 
| 4k vs. 1.5k || % 変化 || || 9k vs. 1.5k || % 変化
 
|-
 
|A から B || +9 % || || A から B || -2 %
 
|-
 
|B から A || +98 % || || B から A || +98 %
 
|-
 
|}
 
<!--Test 2 -->
 
 
'''テスト 2 - Samba で複数の小さなファイルを転送 (合計で 1,283,439 kb)'''
 
 
''経過時間やスループットは3回実行した結果の平均です。''
 
 
{| class="wikitable"
 
| mtu=1500 || t (秒) || Kb/秒 || || mtu=4000 || t (秒) || Kb/秒 || || mtu=9000 || t (秒) || Kb/秒
 
|-
 
|A から B || 59 || 21,753 || || A から B || 51 || 25,165 || || A から B || 57 || 22,516
 
|-
 
|B から A || 94 || 13,654 || || B から A || 46 || 27,901 || || B から A || 49 || 26,193
 
|-
 
|}
 
 
'''テスト 2 のまとめ'''
 
{| class="wikitable"
 
| 4k vs. 1.5k || % 変化 || || 9k vs. 1.5k || % 変化
 
|-
 
|A から B || +16 % || || A から B || +4 %
 
|-
 
|B から A || +4% || || B から A || +92 %
 
|-
 
|}
 
<!--Test 3 -->
 
 
'''長時間の転送速度'''
 
 
4k ジャンボフレームを使用した 30 GB 以上のファイル転送の平均速度は 26.6 MB/s でした。リンクの一番低速なドライブは Western Digital WD3200JB - 2004年製造, EIDE 320 GB (ATA100/7200 RPM/8 MB キャッシュ) でした。ネットワークのバースト速度 (300-400 MB ファイル) はドライブ間のバースト速度の約 80% になりました。悪くない値です (ネットワーク速度が 30 MB/s でドライブの速度が 38 MB/s)。
 
 
=== ジャンボフレームを使用する LAN 構成 ===
 
 
PC1 (JF 有効)
 
 
PC2 (JF 有効) <----> Gigabit Ethernet スイッチ (JF 有効) <----> ルーター (JF 無効) <----> ケーブルモデム (JF 無効)
 
 
PC3 (JF 有効)
 
 
上記の例では、PC の NIC は全て JF を使うように設定され、同じく JF を使用する Gigabit Ethernet スイッチに接続されています。スイッチは更にアップリンクポートでルーターに接続されていますが、ルーターではジャンボフレームを使うことはできず、さらにルーターが接続するケーブルモデムもジャンボフレームを使用しません。
 
 
一部のウェブサイトが何を言っていようと、上記の構成は 100% 問題なく動作します。ネットワーク内の JF が有効になった転送 (スイッチ間) は非常に高速です。PC から WAN (インターネット) への転送速度は JF が無効になっている場合と変わりません。
 
 
== 参照 ==
 
 
* [http://sd.wareonearth.com/~phil/jumbo.html Gigabit Ethernet Jumbo Frames - And why you should care]
 

2022年1月13日 (木) 12:34時点における最新版