SamasungのU.2 SSDで遊ぶ

年末から年始にかけて、一部界隈では『例のSSD』という名前でSamsungエンタープライズ向けU.2 SSDが話題になりました。 なんとこのSSD、新品にも関わらず大変安価(2TBで1万円と少し)にもかかわらず、PCIe3.0x4接続によりそこそこの性能が出るというわけでオタクが大挙して購入したわけです。 私も例に漏れず購入し、さすがに家のマシンにU.2コネクタは付いていないのでPCIeに指すための変換アダプタも買いました。噂ではこの変換アダプタもAmazonで在庫切れになったとか。

というわけで、遊びがてらbtrfsでの性能を見てみたいと思います。

検証環境

今回の検証環境はこんな感じ

  • CPU: AMD Ryzen 3 PRO 4350G
  • Mem: DDR-2666 64GB
  • M/B: MSI A520M PRO-C DASH
  • Disk1: 例のSSD with PCIe3.0 x4
  • Disk2: WD Black SN750
  • Linux: 5.4.0-59

今回の計測ではM/BののPEGスロットに対してPCIe->U.2変換ボードを設置して実験しました。PCIe3.0x16の帯域幅を持っているのでU.2デバイスの実験も大丈夫でしょう。

ベンチマークツールとしてはfio 3.16を使います。ベンチマーク用の設定は次のブログ記事を参照しました。

LinuxでもCrystalDiskMarkぽいディスクベンチマークしたい - 動かざることバグの如し

計測結果の単位はすべてMB/sです。

計測の下準備

今回はbtrfsを使うので、デバイスそのものをbtrfsでフォーマットしておきます。

$ fdisk /dev/nvme0n1
# パーティション1を作成
$ mkfs.btrfs /dev/nvme0n1p1

今回の測定ではマウントオプションを

  • -o defaults, ssd
  • -o defaults, ssd, compress=lzo
  • -o defaults, ssd, compress=zstd

の3つで試しました。

計測結果

実際に計測した結果です。それぞれ計測回数は1回だけなので参考程度の数値ということで。

-o defaults, ssd -o defaults, ssd, compress=lzo -o defaults, ssd, compress=zstd
Seq Read [MB/s] 999.595 956.729 903.166
Seq Write [MB/s] 1085.48 1084.36 1082.12
Rand Read(bs=512k) [MB/s] 846.991 809.711 737.395
Rand Write(bs=512k) [MB/s] 1031.05 1059.17 1044.4
Rand Read(bs=4k) [MB/s] 40.267 40.405 37.637
Rand Write(bs=4k) [MB/s] 126.746 126.961 98.034
Rand Read(bs=4k,qd=32) [MB/s] 684.896 680.01 255.812
Rand Write(bs=4k, qd=32) [MB/s] 227.21 219.367 213.515

まあまあだいたいいい感じという気がしますが、公称値ほどの読み込み速度が出ていないのが気になるところ。 それにzstdでのランダム読み込み性能がかなり落ちているのが気になるところです。特にランダム読み込みqd=32での悪化は気になるところですが、他は大差なさそうですね。 zstd:3を選択している影響もあるかもしれません。圧縮率を犠牲にしてzstd:1あたりを指定するともう少し改善しそうな予感がします。*1

参考としてWesternDigital Black SN750のベンチマーク結果を貼っておきます。マウントオプションはdefault, ssd, compress=lzoです。

[2020-01-10 23:55更新]

WD Black SN750
Seq Read [MB/s] 862.315
Seq Write [MB/s] 1521.88
Rand Read(bs=512k) [MB/s] 712.832
Rand Write(bs=512k) [MB/s] 1383.35
Rand Read(bs=4k) [MB/s] 39.253
Rand Write(bs=4k) [MB/s] 116.586
Rand Read(bs=4k,qd=32) [MB/s] 694.881
Rand Write(bs=4k, qd=32) [MB/s] 223.291

書き込み性能に関しても例のSSDとcomparableかちょっとこちらのほうが良いように見えますね。そしてこちらでもシーケンシャル読み込みが1000MB/sを超えていないので、このあたりに何かしらの壁があるように見えます。 手元の環境起因だとは思いますが、この状態だと見当がつかない感じですね。 こうして見ると例のSSDの素性の良さが見えてきます。さすがに書き込みでは公称性能が低いので太刀打ちできませんが読み込み性能はほぼほぼ同等と言えるんじゃないでしょうか。

とりあえずは今のメインディスクと入れ替えて使っていこうと思います。なにせ容量が4倍なので。