
短縮版
私の自宅のネットワークは純粋なギガビットで、すべてのデバイスが少なくとも最大 9000 バイトのジャンボ フレームをサポートしています。Synology の MTU ジャンボ フレーム設定を 6000 (バイト) に増やすと、パフォーマンスが向上します (書き込み 810 Mbps、読み取り 945 Mbps)。値を 7000 に設定すると、読み取りパフォーマンスのみが低下します (4 Mbps まで低下します)。書き込みパフォーマンスは高速のままです。
これは予想外のことです。なぜなら、ほとんどのジャンボフレームの問題には方向性がなく、通常はオール・オア・ナッシング(パケットはどこから来たかに関係なくスイッチでドロップされる)だからです。どれでもIP フラグメンテーションは発生していますが、TCP 層は非常に不愉快です。この非対称/不安定な動作の原因は何でしょうか。また、すべての機器がサポートするはずの 9000 バイトの MTU 全体をサポートするには、どのように修正すればよいでしょうか。
ロングバージョン
これらは、これを理解しようとしている間に私が編集したメモです。
クライアント
Realtek PCIe GBE ファミリー コントローラ RTL8167
ジャンボ フレーム: 9KB MTU
$ netsh interface ipv4 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
------ --------------- --------- --------- -------------
9198 1 32501506 11275394 Local Area Connection
(9198 には 14 バイトのイーサネット ヘッダーが含まれていないようです)
$ ping -l 1500 -f 192.168.1.84
(クライアントで実行されている Wireshark で観測。すべてのサイズはワイヤ バイト サイズです)
[9213、∞] ホストから送信されませんでした (フラグメント化が必要です)
[9019、9212] 送信されましたが応答がありません
[9015、9018] フラグメント化された IP 応答
[42、9014] フラグメント化されていない IP
[0、41] ? (eth+IP+ICMP ヘッダー = 14+20+8 = 42 バイトなので生成できません)
ルーター(スイッチ部分)
Asus RT-AC68U -- ファームウェア 3.0.0.4.378_4585
ジャンボフレームを有効にする: 「有効」
実際にサポートされているジャンボフレームのサイズがわかりませんが、少なくとも 9000 のようです。
クライアントからの ping 要求は 1514 バイトでフラグメント化されます (ただし、ルーターを ping すると、LAN スイッチの動作ではなく、WAN ルーターの動作がトリガーされる可能性があります)。
アンマネージドスイッチ
TP-LINK TL-SG1008D
ジャンボ フレーム (仕様書): 9KB (同社の Web サイトには 15KB と記載されていますが、別のデバイスのようです)
サーバ
Synology DS1815+ -- DSM 5.2-5565 アップデート 1
ジャンボ フレーム: 9000
Synology からクライアントへのファイル読み取りパケット
サイズ: ほとんどが 9014 バイト (両方向)
IP フラグ: フラグメント化しない
Wireshark で検出されたもの: TCP スプリアス再送信、TCP 前のセグメントがキャプチャされていない、TCP 順序外、TCP 高速再送信、および通常の (9014 バイト) パケット
SMB2-over-NetBIOS プロトコル パケットの読み取り応答の読み取り長さ: 65,536 (~8 TCP セグメント)
$ ifconfig
bond0 Link encap:Ethernet HWaddr --:FF
inet addr:192.168.1.84 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addrs: --/64 Scope:Link, --/64 Scope:Global, --/64 Scope:Global
UP BROADCAST RUNNING MASTER MULTICAST MTU:9000 Metric:1
RX packets:lots errors:85 dropped:0 overruns:0 frame:85
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:237 GiB TX bytes:117 GiB
eth2 Link encap:Ethernet HWaddr --:00
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:lots errors:19 dropped:0 overruns:0 frame:19
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:236 GiB TX bytes:83 GiB
eth3 Link encap:Ethernet HWaddr --FF
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:lots errors:66 dropped:0 overruns:0 frame:66
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1 GiB TX bytes:33 GiB
eth2 と eth3 はアダプティブ ロード バランシングを使用して結合されます (スイッチはサポートされていません)
$ ping -c 5 -s 1500 192.168.1.82
(クライアントで実行されている Wireshark で観測。すべてのサイズはワイヤ バイト サイズです)
[9019、∞] 要求が送信され、応答が送信され、応答が受信されませんでした
[9015、9018] 断片化された IP 要求 (おそらく Synology によって断片化されていますが、busybox ping には no-fragment オプションがないため、判別が困難です)
[60、9014] 断片化されていない IP
[0、59] ? (busybox ping は最低でも 18 バイトと 42 バイトのヘッダーを配置するため、生成できません)
その他データ
- クライアントMTUを8KBに変更しても効果はありませんでした
- サーバーの MTU を 6000 (最高、945Mbps) から 7000 (最低、4Mbps) に変更すると、サーバーの読み取り速度が急激に低下します。
- サーバーの書き込み速度は、基本的にすべてのサーバー MTU 設定 (常に 700 ~ 825 Mbps) に影響されません。
- Synology には結合ネットワークがあります (4 つのポートのうち 2 つ)
- ケーブルはすべてCat6またはCat5eです
答え1
ファームウェアを更新する
私の経験では、Synology はファームウェア リリースごとに多くの問題を修正していますが、現在実行しているファームウェアはほぼ 4 年前のものです。リリース ノートを読んでいませんが、それ以降にジャンボ フレームのバグが修正される可能性は十分にあるようです。
直接接続でテストする
新しいパッチ ケーブルを使用してテスト マシンを Synology に直接接続し (同じサブネットに静的 IP を割り当て)、テストを再実行します。これにより、ケーブルやスイッチ、その他の機器や構成の問題が解消されます。問題が解決しない場合は、別のコンピューターでテストを実行します。それでも問題が解決しない場合は、間違いなく NAS に問題があります。
直接接続テスト中に問題が解決した場合は、まずスイッチを交換し、次にケーブルを交換してみてください。接続を示していないので、テスト マシンと NAS 間の TPLINK だけであると想定しています。