ToDo:
400GB版を入手したので FreeBSD 10.1-STABLEにてテスト開始
I/O block size 128kBにて ddによる読み出しが 1GB/sec程度を確認
書き込みは、若干落ちて 900MB/sec程度
カタログスペックでは読み出し 2.2GB/secらしいので、
あたりが疑われる。I/O block sizeに関しては、後日カーネル再構築を行い検証するべき
また、zpool createでハングアップする nvmecontrolにて logpage 2を参照してみたところ、 ホストからの書き込みが処理されていない模様
対処療法として、/boot/loader.confにて vfs.zfs.trim.enabled=0を指定して ZFS TRIMを無効化することで動作するようになった
おそらく、nvme/nvdで TRIM回りが正常に処理出来ていない模様 (コードを流し読みした範囲では、BIOの処理は nvmeドライバ側で処理されている)
追記型のキャッシュサーバーを構成する上では TRIMが使用できない点は 大きな問題とはならないが、長期的には改善を要する
MAXPHYSを 256kBに増やしたが NVMe側に反映されていない (AHCI上の adaデバイスでは増えている)
nvme/nvdをモジュールではなく、カーネル組み込みで構築しても変わらない 状況なので、別の原因があると思われる
コントローラ固有の制約だとすると、カタログ値の 2.2GB/secってどうやって出すのだろう
聞いた話だと、Windows標準のドライバではカタログ値の半分の性能しか出ず、 Intel純正ドライバを入れないとカタログ性能が出ないという話もあるが、 NVMe標準以外に何らかの拡張モードが存在してるのか?
Windows上の ベンチマーク結果の比較を見ると Command Queuingの使い方(CDD3 vs CDD4)で シーケンシャル読み出しが 1.4GB/secから 2.3GB/secあたりまで変化がある模様
2.2GB/secというカタログ値は、コマンド発行レートに限界が有るので、 非同期で積極的にキューにトランザクションを詰め込んだ際の性能と思われる
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記