短縮版

短縮版

短縮版

私の自宅のネットワークは純粋なギガビットで、すべてのデバイスが少なくとも最大 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 だけであると想定しています。

関連情報