TS-433のパフォーマンスを向上

こんにちは、

動画編集や趣味のために、NAS(TS-433)で高いシーケンシャルデータスループットを得ようとしています。すべてWindowsのファイルコピーで行っています。製品ページには、4台のSSDでRAID 5構成の場合、280 MB/sの読み取りまたは202 MB/sの書き込みと記載されています。

これは頭の中のメモのようなものなので、フィードバック歓迎です!
可能であれば、皆さんのパフォーマンスやディスク構成を共有していただけますか?

NASやディスクは事前によく調べずに購入しました。何も捨てたり売ったりしたくはなく、できれば何か追加してパフォーマンスを向上させたり、設定を調整したり、少なくとも理解したいと思っています。それが目標です。

私の構成

TS-433 Qnap v5.2.3.3006(2025年1月8日)
Seagate 4TB IronWolf ×2台でRAID 1(ミラー)
2.5 Gbitネットワーク(クライアントとNAS両方)
クライアントはハイエンドでNVMeストレージ搭載

NASを購入した当初は、データ書き込みが少し速く感じました。しかし現在は約2TBのデータが入っていて、少し遅く感じます(当然かもしれません)。

現在の計測値

NASからファイルコピー:平均155 MB/s、ピーク175 MB/s
NASへファイルコピー:平均80 MB/s、ピークなし(最初の1秒だけ高い)

この速度になる理由と、どこがボトルネックなのか理解しようとしています。

ディスクパフォーマンス
Qnapソフトウェアでのディスクスループット:
afbeelding

CLIでの古い基本コマンドによる計測:

$ hdparm -t /dev/sda -t /dev/sdb -t /dev/md1
/dev/sda:
タイミングバッファ付きディスクリード: 608 MBを3.01秒で = 202.32 MB/sec
/dev/sdb:
タイミングバッファ付きディスクリード: 592 MBを3.01秒で = 196.79 MB/sec
/dev/md1:
タイミングバッファ付きディスクリード: 802 MBを3.02秒で = 265.61 MB/sec

$ echo 3 > /proc/sys/vm/drop_caches && dd if=/dev/sda of=/dev/null bs=1M count=4000
4000+0レコード入力
4000+0レコード出力
4194304000バイト(3.9GB)コピー、20.796743秒、192.3MB/s

$ echo 3 > /proc/sys/vm/drop_caches && dd if=/dev/sdb of=/dev/null bs=1M count=4000
4000+0レコード入力
4000+0レコード出力
4194304000バイト(3.9GB)コピー、21.137790秒、189.2MB/s

$ echo 3 > /proc/sys/vm/drop_caches && dd if=/dev/md1 of=/dev/null bs=1M count=4000
4000+0レコード入力
4000+0レコード出力
4194304000バイト(3.9GB)コピー、18.758039秒、213.2MB/s

ディスクは5400 RPMなので、もっと低い値を予想していました。
しかしこのサイト UserBenchmark: Seagate IronWolf 4TB (2016) ST4000VN008
ディスク自体は良いものです。

ですがRAIDデバイス(md1)が期待より遅いです。なぜ350 MB/sではないのでしょうか。

「dd」実行中にiostatsでディスクを確認しました:

                               拡張デバイス統計
 device mgr/s mgw/s    r/s    w/s    kr/s    kw/s   size queue   wait svc_t  %b
 sda        1     1  224.9    4.0 113348.4     7.0  495.2   5.6   23.3   4.2  97
 sdb        1     1  220.9    4.0 111802.8     7.0  497.1   5.1   21.8   4.1  92
 md1        0     0  445.8    3.0 224636.0     6.0  500.5  10.1   22.6   2.2 100
                              拡張デバイス統計
 device mgr/s mgw/s    r/s    w/s    kr/s    kw/s   size queue   wait svc_t  %b
 sda        0     0  241.4    0.5 121807.5     0.0  503.6   4.2   17.6   3.7  90
 sdb        0     0  240.4    0.5 121807.5     0.0  505.6   4.5   18.6   3.8  92
 md1        0     0  477.3    0.0 241061.3     0.0  505.0   8.8   18.5   2.1 100
                              拡張デバイス統計
 device mgr/s mgw/s    r/s    w/s    kr/s    kw/s   size queue   wait svc_t  %b
 sda        0   529  224.5    9.0 113152.0  2129.8  493.7   5.2   21.4   3.9  91
 sdb        1   529  222.5    9.5 111362.0  2139.8  489.2   5.6   23.1   4.2  97
 md1        0     0  449.0    0.0 225280.0     0.0  501.7   9.8   21.8   2.2 100

ミラーは両方のディスクを均等に使っているようです。

ネットワークスループット
iperfをインストールしました。参照:https://www.qnap.com/en/how-to/faq/article/how-do-i-install-iperf3-in-qts-and-quts-hero

C:\iperf>iperf3.exe -c qnap
Connecting to host qnap, port 5201
[  5] local 192.168.178.174 port 59051 connected to 192.168.178.190 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec   282 MBytes  2.34 Gbits/sec
[  5]   1.01-2.01   sec   282 MBytes  2.37 Gbits/sec
[  5]   2.01-3.01   sec   284 MBytes  2.37 Gbits/sec
[  5]   3.01-4.01   sec   282 MBytes  2.37 Gbits/sec
[  5]   4.01-5.01   sec   282 MBytes  2.36 Gbits/sec
[  5]   5.01-6.01   sec   282 MBytes  2.37 Gbits/sec
[  5]   6.01-7.01   sec   279 MBytes  2.34 Gbits/sec
[  5]   7.01-8.01   sec   283 MBytes  2.37 Gbits/sec
[  5]   8.01-9.01   sec   283 MBytes  2.36 Gbits/sec
[  5]   9.01-10.01  sec   279 MBytes  2.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec  2.75 GBytes  2.36 Gbits/sec                  sender
[  5]   0.00-10.04  sec  2.75 GBytes  2.36 Gbits/sec                  receiver
iperf Done.

これは良好です!ネットワークは問題なさそうです。これはNASからクライアントへの送信です。

NAS構成

2台のディスクでRAID1。ミラーにビットマップなし。
ディスク構成は論理ボリューム(thick)タイプでスナップショットなし。

ではどこで速度が落ちているのか?

ネットワークパフォーマンスは問題なし。単体ディスクのスループットも良好ですが、合計しても期待したほど伸びません。理由は不明です。もしかすると、データ到着時にARM CPUが準備できていない?CPUがNICへのデータ供給やディスク読み込みで忙しい?割り込みなど。

どの設定で改善できるでしょうか?

  • SMBマルチチャンネル
  • ジャンボMTU
  • SMB v3
  • SMB非同期

ジャンボフレームが一番効果ありそうです…これをテストしてみます。

よろしくお願いします、
Harry

安定したパフォーマンスを得るためにNICドライバーを更新する必要があると言い忘れていました。
古いフォーラムを確認してください ts-433 acting strange - Page 2 - QNAP NAS Community Forum

NVMEやSSDをライトキャッシュとして追加することを考えています。
(これでは動画編集時の読み込み速度は改善されません…)

NASの拡張

NASにはUSB 5 Gbitポートがあります。
Windowsクライアントでは、USB NVME(10 Gbit USB)で800MB/sの速度が出ています。
USB NVMEをNASに接続しました。
NASがNVMEを共有している状態でテストしたところ、150MB/sの速度でした。
(クライアント側の5 Gbit USBスロットでは、このNVMEで約400MB/sの速度が出ます)

$ hdparm -t /dev/sdc
/dev/sdc:
Timing buffered disk reads: 880 MB in 3.00 seconds = 293.06 MB/sec

このARM CPUではディスク/USB/NICの処理が150MB/s以上にはならないのだと思います。

NASの空いている2つのベイはどうでしょうか?

SSDキャッシュ

このNASでは利用できません。参考:

3. ハードウェアの制限により、TS-216GおよびTS-x33 NASはSSDキャッシュをサポートしていません。

QTier
これは可能ですが、リスクが高いと思います。QTierではストレージの一部となります。その場合、SSD/NVMEのミラーを追加する必要があります。
このタイプのストレージはTBあたりのコストが高いので、最適な方法とは感じません。当然このタイプのストレージは常に高速です。

ディスクを追加すれば、読み込み性能も向上するかもしれません…

私の2台のディスクによるミラーは「理論上」読み込み性能が2倍、書き込み性能はやや低下するはずです。

3台のディスクによるRAID 5なら、読み込み性能が3倍になりますが、書き込みはさらに低下します。(単一書き込みは1回の書き込み+1回の読み込み+1回のパリティ書き込み、または「フルストライプ」なら3回の書き込み)
つまり、3台または4台のRAID 5では書き込み性能が向上しないので選択肢にはなりません。

同じ種類のディスクを追加した場合、各ディスク80MB/sしか出ないと仮定します:

ディスク数 RAID SMB 読み込み / 書き込み
2 1(ミラー) 155 / 80(現在)
2 0 155 / 155(推定)
3 0 235 / 200(推定)
3 5 235 / 60(推定)
4 5 235 / 80(推定)
4 6 235 / 60(推定)
4 0 280 / 200(推定)
4 10 280 / 160(推定)

RAID 0は選択肢にありません。RAID 5/6は書き込み性能向上には役立ちません。
なので、唯一の方法はディスクを2台追加してRAID 10ボリュームを作成することです。

CPUがディスクからのデータを処理できることが前提ですが…

まずはテスト計画:

  • Jumboフレームテスト
  • NAS上の別ボリュームでの単体SSDスループットテスト

よろしくお願いします。
Harry

NASはとにかく遅すぎます…キャッシュを試す必要はありません(どうせ壊れています)

もっと速度が必要なら、x86/x64 NASに切り替えてください

これは非常に高速なNAS(ネットワーク接続ストレージ)ではないことは理解しています。宣伝されている速度を得ようとしています。
TS-433 | 製品パフォーマンス | QNAP

テストはRAID5とSSDで行いました。

最後に431XeUをインストールしましたが、読み込み速度は200MB/s未満、書き込みもそれ以下でした。

これがARM NASの現実です。1GbEやそれを少し上回る程度なら問題ありませんが、2.5GbE、5GbE、10GbEなどの本格的な速度は期待しない方がいいです。

Jumboフレームを9000サイズで設定しました。

C:\Users\Beheerder>ping -f -l 8972 192.168.178.200

192.168.178.200 に 8972 バイトのデータで ping を送信しています:
192.168.178.200 からの応答: バイト=8972 時間<1ms TTL=64
192.168.178.200 からの応答: バイト=8972 時間<1ms TTL=64
192.168.178.200 からの応答: バイト=8972 時間<1ms TTL=64
192.168.178.200 からの応答: バイト=8972 時間<1ms TTL=64

192.168.178.200 の ping 統計:
    パケット: 送信 = 4, 受信 = 4, 損失 = 0 (0% 損失),
おおよその往復時間(ミリ秒):
    最小 = 0ms, 最大 = 0ms, 平均 = 0ms

JumboフレームでUSB接続のNVMEからコピーすると130 MB/sから162 MB/sに向上しました。
NVMEへのコピーは最大213 MB/sで、200 MB/s付近を維持しています。

読み込みが書き込みより遅いのは不思議です。
しかし、QNAPが示す最大値で書き込みができているので素晴らしいです!

ミラーでテストしているときは高いスパイクが見られますが、ディスクが頻繁にシークしている音が聞こえ、その分スループットが大きく低下します。

そこで、プール上に新しくthickボリュームを作成し、再度テストしました。

NASにファイルを書き込むと180 MB/sのスパイク、平均160 MB/sを記録しました。
これはディスクアレイが出せる最大速度です!

NASからファイルを読み込むと平均220 MB/s、スパイクで250 MB/sほど出ます。

以下のことが結論できます:

  • 新しいRTL8125は効果があります!
  • 空のボリュームはディスクのシークを防ぐようです。
  • Jumboフレームは本当に効果的です。

現在のパフォーマンスは十分満足できるものです。
書き込みについては、これ以上の向上はほとんどありません(最大値の80%)。
読み込みについても、これ以上の向上はほとんどありません(最大値の78%)。

SSDについては後ほどテストします。

テーブルを私の予想で更新しましょう。
テーブルは5400 Ironwolfディスクとジャンボフレーム9000で構成されています。
新しい空のボリュームでの結果です。

ディスク数 RAID SMB 読み取り / 書き込み
2 1(ミラー) 220 / 160(現在)
2 0 240 / 200(予想)
3 0 280 / 200(予想)
3 5 280 / 120(予想)
4 5 280 / 160(予想)
4 6 280 / 105(予想)
4 0 280 / 200(予想)
4 10 280 / 200(予想)
1 シングルディスクSSD 290 / 290(現在!)

空のボリュームについて考えさせられました。
私のディスクは5400 rpmしかなく、ランダムI/Oのパフォーマンスが悪いので避けるべきです。

つまり、ボリュームがいっぱいになると断片化の問題が発生します。
Entwareを使ってfilefragをインストールしました。これでファイルの断片化を確認できます。

空のディスクへの10GBファイルの高速コピー:

$ /opt/sbin/filefrag -v TEST_FILE
TEST_FILE: 11 extents found

通常のディスク(2.4TB / 300GB空き)へのパフォーマンスの悪いコピー:

$ /opt/sbin/filefrag -v TEST_FILE
TEST_FILE: 124 extents found

124対11エクステント。 これで断片化の問題が確認できました。

「e2freefrag」というツールを見つけました。これでいくつかの洞察が得られます。

新しいボリューム

$ e2freefrag /dev/mapper/cachedev2
Device: /dev/mapper/cachedev2
Blocksize: 4096 bytes
Total blocks: 78643200
Free blocks: 77744836 (98.9%)

Min. free extent: 4 KB
Max. free extent: 2080640 KB
Avg. free extent: 1851064 KB
Num. free extent: 168

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :             1             1    0.00%
   64M...  128M-  :             6        170768    0.22%
  128M...  256M-  :             5        322362    0.41%
  256M...  512M-  :             2        191417    0.25%
  512M... 1024M-  :             6       1236804    1.59%
    1G...    2G-  :           148      75823484   97.53%

本番ボリューム

$ e2freefrag /dev/mapper/cachedev1
Device: /dev/mapper/cachedev1
Blocksize: 4096 bytes
Total blocks: 655360000
Free blocks: 74780720 (11.4%)

Min. free extent: 4 KB
Max. free extent: 2080640 KB
Avg. free extent: 16856 KB
Num. free extent: 17743

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :           751           751    0.00%
    8K...   16K-  :           689          1639    0.00%
   16K...   32K-  :           892          4733    0.01%
   32K...   64K-  :          1221         13626    0.02%
   64K...  128K-  :           683         14679    0.02%
  128K...  256K-  :           550         25336    0.03%
  256K...  512K-  :           716         66956    0.09%
  512K... 1024K-  :          1414        260150    0.35%
    1M...    2M-  :          1720        648493    0.87%
    2M...    4M-  :          2645       1989195    2.66%
    4M...    8M-  :          3854       5748362    7.69%
    8M...   16M-  :          1349       3778962    5.05%
   16M...   32M-  :           466       2614941    3.50%
   32M...   64M-  :           270       2748786    3.68%
   64M...  128M-  :           396      11086409   14.83%
  128M...  256M-  :            17        834022    1.12%
  256M...  512M-  :             7        666937    0.89%
  512M... 1024M-  :            20       3767726    5.04%
    1G...    2G-  :            83      40509017   54.17%

どこを見ればいいのかよく分かりません…

ext4と断片化について色々読んでみました。
どうやら常に少なくとも20%の空き容量を確保すべきらしいです。
(私はそうしていませんでした…)

ディスクアレイのデフラグについて少し調べました。
QNAPでe4defragは見つかりませんでしたが、「shake」は見つかりました。

$ filefrag ccie.rtf
ccie.rtf: 2 extents found
$ shake --old 0 --bigsize 0 ccie.rtf
$ filefrag ccie.rtf
ccie.rtf: 1 extents found

これで武器を手に入れました :slight_smile:

ディスク上の不要なI/Oを減らすことはできるでしょうか?

いろいろ試してみました

ファイルシステムジャーナルを無効化しましたが、QNAPは全く受け付けませんでした…
ext4のオプションでlargefile4やbigallocをいじってみました。
でもQNAPのGUIはこれを嫌がります…
qnap cliでボリュームを再フォーマットしてGUIを元に戻すことができました。
qcli_volume -f volumeID=2 action=start inode=65536

cliからはできるけど、これでは動画編集には役立ちません…

$ mount /dev/mapper/cachedev1 -o remount,noatime

唯一の前進はQNAPでフォーマット時に65kオプションを使うことかもしれません。
でも確信はありません…

やはり「thick」ボリュームを2つ作るべきだと思います:
1つは動画用(大きなファイル、シーケンシャル向け)
もう1つはその他全て用。

まだSSDのテストはしていませんが、きっと高い値が出ると思います。

それでは!

Entwareツール:

shake - 1.0-20170702-1 - Shakeはユーザースペースで動作するデフラグツールです。
filefrag - 1.47.0-2 - Ext2ファイルシステムのファイル断片化レポートユーティリティ
e2freefrag - 1.47.0-2 - Ext2ファイルシステムの空き領域断片化情報ユーティリティ

SSDを取り付けて、290 MB/s / 290 MB/sのスループットが得られました。
書き込み速度に関しては予想以上です。

QNAPソフトウェアでのテストでは、ディスクのスループットが530 MB/sと表示されました。

RAID 10でHDDを使えば、断片化の問題をうまく管理できれば同じようなパフォーマンスが得られると思います。

今のところは2台のディスクをミラーで使い続けます。
大きなファイル用に1つのボリューム、その他用にもう1つのボリュームを作成し、どちらも十分な空き容量を確保します。これで断片化を抑えられるはずです。

ご意見は引き続き歓迎します!どのディスクでどんなパフォーマンスが出ているか、ぜひ教えてください。

修正済みネットワークドライバーをロードしたところ、GUIでNICが表示されなくなる問題が発生しました。解決方法をご存知の方はいらっしゃいますか?QNAPがこのドライバーを組み込んだアップデートをリリースするのを待っています。

よろしくお願いします!

少し考え直して、再テストも行いました。
そして、テスト中に同じパフォーマンスは得られませんでした

ネットワークを再テストしました

C:\iperf>iperf3.exe -c 192.168.178.200
Connecting to host 192.168.178.200, port 5201
[  5] local 192.168.178.174 port 50682 connected to 192.168.178.200 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec   270 MBytes  2.23 Gbits/sec
[  5]   1.01-2.01   sec   290 MBytes  2.43 Gbits/sec
[  5]   2.01-3.01   sec   295 MBytes  2.48 Gbits/sec
[  5]   3.01-4.01   sec   295 MBytes  2.48 Gbits/sec
[  5]   4.01-5.01   sec   295 MBytes  2.48 Gbits/sec
[  5]   5.01-6.01   sec   284 MBytes  2.39 Gbits/sec
[  5]   6.01-7.00   sec   266 MBytes  2.24 Gbits/sec
[  5]   7.00-8.00   sec   296 MBytes  2.48 Gbits/sec
[  5]   8.00-9.00   sec   296 MBytes  2.48 Gbits/sec
[  5]   9.00-10.00  sec   295 MBytes  2.48 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  2.81 GBytes  2.42 Gbits/sec                  sender
[  5]   0.00-10.03  sec  2.81 GBytes  2.41 Gbits/sec                  receiver

iperf Done.

ボリュームを何度も削除して作成し、サイズも変えてみたところ、突然良い結果が出ました。

これは私には理解できませんでした。ディスクアレイのある「スイートスポット」が重要であることを示唆しています。

単純なDDコマンドでオフセットを使ってパフォーマンスをテストしました。そして、最後の方では速度が本当にかなり遅くなることが分かりました!
もちろん、ドライブの外周部の方が内周部より速いのは予想されますが、2倍も違うとは思いませんでした。

各ディスクとそのミラーをテストしました:

[admin@QNAP /]# for i in `seq 0 500 3500`; do  echo  "offset $i Gigabytes";echo 3 > /proc/sys/vm/drop_caches && dd if=/dev/sda of=/dev/null bs=1M count=500 skip=${i}K; done
offset 0 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.454363 seconds, 203.7MB/s
offset 500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.506304 seconds, 199.5MB/s
offset 1000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.983244 seconds, 167.6MB/s
offset 1500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.825006 seconds, 177.0MB/s
offset 2000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.615630 seconds, 138.3MB/s
offset 2500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.578937 seconds, 139.7MB/s
offset 3000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 4.422567 seconds, 113.1MB/s
offset 3500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 4.839563 seconds, 103.3MB/s
[admin@QNAP /]# for i in `seq 0 500 3500`; do  echo  "offset $i Gigabytes";echo 3 > /proc/sys/vm/drop_caches && dd if=/dev/sdb of=/dev/null bs=1M count=500 skip=${i}K; done
offset 0 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.588500 seconds, 193.2MB/s
offset 500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.617839 seconds, 191.0MB/s
offset 1000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.797189 seconds, 178.8MB/s
offset 1500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.917865 seconds, 171.4MB/s
offset 2000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.919876 seconds, 171.2MB/s
offset 2500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.717384 seconds, 134.5MB/s
offset 3000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 4.240667 seconds, 117.9MB/s
offset 3500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 5.708912 seconds, 87.6MB/s
[admin@QNAP /]# for i in `seq 0 500 3500`; do  echo  "offset $i Gigabytes";echo 3 > /proc/sys/vm/drop_caches && dd if=/dev/md1 of=/dev/null bs=1M count=500 skip=${i}K; done
offset 0 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.179269 seconds, 229.4MB/s
offset 500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.088836 seconds, 239.4MB/s
offset 1000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.301137 seconds, 217.3MB/s
offset 1500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.947950 seconds, 126.6MB/s
offset 2000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.064201 seconds, 163.2MB/s
offset 2500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 2.718814 seconds, 183.9MB/s
offset 3000 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.425079 seconds, 146.0MB/s
offset 3500 Gigabytes
500+0 records in
500+0 records out
524288000 bytes (500.0MB) copied, 3.747751 seconds, 133.4MB/s

つまり、FASTなボリュームは最初に配置しなければならないことが分かりました。
最後の1TBは、ミラーでも高いスループットを得るには遅すぎます。

空き容量が多いボリュームは断片化が少ないですが、速度のためにはディスクの最後の部分を避ける必要があります。

多くのことを学びました!

これは「ショートストローク」と呼ばれるようです。

このディスクの場合、約2300GBで分割するのが「良い」トレードオフのようです。これはディスクの70%です。おそらくどのディスクでもほぼ同じでしょう。

最初のボリュームは大きなファイル用
2番目のボリュームは「スナップショット用スペース」100GB?
3番目のボリュームは残りの小さなファイル用です。

残念ながら、QNAP(キューナップ)ではスナップショット専用のスペースを作成することはできないと思います。そのため、スナップショットはおそらく最も遅い部分に保存されることになります。

NAS(ナス)を初期化して再構築します。
3つのボリュームを作成し、後で真ん中のボリュームを削除してスナップショット用の領域にする予定です。

なかなか面白いパズルですね、楽しんでいます。もちろん、時間を大切にするなら、もっと速いディスクと高速なNASを購入し、ついでに10Gbit(テンギガビット)にするのが良いでしょう!

私のTS-435XeUでもパフォーマンスの問題が発生しています。

10GEを使用していますが、数Gbpsしか出ません。SMB v3、ジャンボフレーム、非同期などを試し、クライアントとして使っているMacの設定も変更しました。Mac同士だと10Gbpsが問題なく出るので、問題は明らかにNASにあります。

QNAPはこのモデルで10GEが出ると主張しています:

https://www.qnap.com/en-uk/performance/model/ts-435xeu

「ARM CPUだから1Gbpsしか出ない」という以外で、何か意見はありますか?

あなたは彼らと全く同じ構成ですか?

クライアントコンピューター:

  • OS: Microsoft Windows Server 2019
  • スペック: Intel® Core™ i7-7700(4コア/8スレッド)、32GB RAM、QNAP 10GbE/25GbE/100GbEネットワーク拡張カード

NAS構成:

  • OS: QTS 4.5.x & 5.0.0
  • RAIDボリューム: RAID 50(8ベイ以上)、RAID 5(4ベイ~6ベイ)、RAID 1(2ベイ)、シングル(1ベイ)
  • SSD / HDD: フル搭載、Samsung 860 EVO 1TB SATA SSD / Seagate ST1000NM0033 1TB HDD / Samsung PM9A1 960GB M.2 NVMe PCIe Gen4 / Samsung PM9A3(MZQL2960HCJR-00A07)960GB U.2 NVMe PCIe Gen4
  • 2.5GbE & GbE: 内蔵イーサネットポート
  • ネットワークインターフェースカード: 10GbE: QNAPデュアルポート10ギガビットネットワーク拡張カード(LAN-10G2T-U または LAN-10G2SF-MLX)
  • ネットワークインターフェースカード: 25GbE: QNAPデュアルポート25ギガビットネットワーク拡張カード(QXG-25G2SF-CX6)
  • ネットワークインターフェースカード: 100GbE: QNAPデュアルポート100ギガビットネットワーク拡張カード(QXG-100G2SF-E810 または QXG-100G2SF-CX6)

QNAPはこれをデモシステムとして使用していました

あの数値は到底達成できません。431XeU(SFP+ 1本)では250MB/s出すのがやっとでした。

もちろん、まったく同じ構成ではありません。特に、サイトで引用されている構成は実際にテストされたものではなく(TS-435XeUには内蔵10GEがあるものの、拡張NICには対応していないと思うので、実際には不可能だと思います)。

正しいもの(だと思う)はこちらです:

https://www.qnap.com/en-uk/product/ts-435xeu

いずれにせよ、私は彼らがテストしたものより新しいS/Wリリースを使っています(当然のことですが)。

クライアントコンピューターは明らかに問題ではありません(SMBサーバーとして2台目のMacを使えば10Gbpsが出せます)。

主な違いは、私が4台のSSDによるRAID構成ではなく、昔ながらのHDD(とはいえ7200RPM)を使っている点だと思います。なので、ディスクが原因かもしれませんが、読み込み負荷がディスク間で分散されることを期待していました…。

調べた限りでは、TS-435XeUのM.2 SSDはかなり熱くなるようなので、導入には気が進みません。同様に、HDDをSSDに置き換えるのもあまり気が乗りません…。

10 Gbや2x 10 Gbイーサネットの速度を得るには、回転式ディスクが本当に必要です。

テスト用SSDはディスクごとに550 MB/sの速度があり、4台のディスクで2235 MB/sという主張通りの速度を出すことができます。SSDなので、ランダムアクセスでもシーケンシャルアクセスでも大きな違いはありません。

あなたの構成については共有されていません。RAID 10ですか?ディスクは4台ですか?空のボリュームですか?シック(Thick)ですか?スナップショットはありますか?読み込み性能は?書き込み性能は?

高速なHDDでも220 MB/s以上は出ませんし、最良の場合でも800 MB/s程度でしょう。しかし、ディスクの遅い部分を使うと300 MB/s程度しか出ません。

スナップショットやシン(Thin)ボリュームの場合はランダムI/Oが多くなり、速度は大幅に低下します。合計で30~60 MB/s程度になります。

これは、厚いボリューム上のRAID 1です。

読み込みで1.8Gbps、書き込みで1.4Gbps(つまり、それぞれ225MB/sと175MB/s)が出ています。

ディスクはIronwolf Proなので、かなり速いはずです(持続的な読み書きで220MB/sと謳われていると思います)。

RAID 1では、異なるクラスタを異なるディスクから読み取れるため、単一ディスクのほぼ2倍の読み取り速度が得られることを期待していました。ただし、各読み取りの後にディスクがクラスタNの末端からクラスタN+2の先頭へ移動するので、シークのオーバーヘッドが少し増えるのでしょうか?

いずれにせよ、SSDが答えのようですね?

RAID1のデータは両方のディスクから同時に読み取られるため、単一ディスクと比べて速度の向上はありません。
複数のブロック読み取り(複数のクライアントが異なるファイルにアクセスする場合)では、改善が見られることがあります。

CPUのスペックを確認したところ、TS-435XeUはTS-433よりも優れています。

あなたのセットアップは私のものとほぼ同じのようですね。私はIronWolf(プロではない)2台でRAID1を組んで、220/160の速度が出ました。

RAID1では、異なるクラスタを異なるディスクから読み込めるので、単一ディスクのほぼ2倍の読み取り速度が得られることを期待していました。ただし、各読み込み後にディスクがクラスタNの末尾からクラスタN+2の先頭に移動するため、シークのオーバーヘッドが少し増えると思われますか?

私の環境では、ミラーで読み取り速度が多少向上しています。ただし、他のRAIDレベルではさらに改善されるでしょう。

いずれにせよ、SSDが答えのようですね?

はい、SSDなら高い数値が出ます。