diskspdとfioがLinuxでは奇数を生成しますが、Windowsでは生成しないのはなぜですか?

diskspdとfioがLinuxでは奇数を生成しますが、Windowsでは生成しないのはなぜですか?

修正する

Anonの回答のおかげで、ファイルシステムに問題があることがわかりました。私はNTFSを使用しています。 FAT32を使用した結果は次のとおりです。

Windows:

diskspd64 -b128K -d5 -o32 -t1 -W0 -Sh -w0 cdm
508, 518, 520, 513, 513

fio --name=dontknow --ioengine=windowsaio --thread --size=1024m --bs=128k --time_based=1 --runtime=5s --iodepth=32 --numjobs=1 --rw=read --direct=1 --buffered=0 --startdelay=0s --filename=cdm
557, 557, 557, 558, 556

Linux:

diskspd -b128K -d5 -o32 -t1 -W0 -Sh -w0 cdm
529, 528, 529, 529, 529

fio --name=dontknow --ioengine=libaio --thread --size=1024m --bs=128k --time_based=1 --runtime=5s --iodepth=32 --numjobs=1 --rw=read --direct=1 --buffered=0 --startdelay=0s --filename=cdm
560, 560, 560, 560, 559

元の質問

同じドライブ上の同じ入力ファイルに基づいて、Windowsで指定されたコマンドの読み取り速度の結果の数値は次のとおりです(MB / s - それぞれ5回実行されました)。

diskspd64 -b128k -d5 -o32 -t1 -W0 -S -w0 cdm
555, 555, 556, 556, 555

fio --name=doesntmatter --ioengine=windowsaio --thread=1 --size=1024m --bs=128k --time_based=1 --runtime=5s --iodepth=32 --numjobs=1 --rw=read --direct=1 --startdelay=0s --filename=cdm
561, 553, 562, 561, 558

そしてLinux(正確に言うと - KDEネオンuseredition-20180802):

diskspd -b128K -d5 -o32 -t1 -W0 -Sh -w0 cdm
1800, 2000, 1925, 1891, 1973

fio --name=doesntmatter --ioengine=libaio --thread=1 --size=1024m --bs=128k --time_based=1 --runtime=5s --iodepth=32 --numjobs=1 --rw=read --direct=1 --startdelay=0s --filename=cdm
2637, 2826, 2593, 2770

また、これがSATA SSDドライブであり、正式な最大読み取り速度は555 MB/s.だから、Windowsの数値が正しいようです。

答え1

残念ながら、あなたの質問に答えるのに十分な情報がありません。通常、実行の完全なfio出力を見て、実行中のfioのバージョンを理解する必要があります。これにより、到達した深さやLinuxの使用量などがわかります。ディスクがランタイム中にあると思います(たとえば、待ち時間がゼロに近い場合、これはほとんど常にキャッシュのシグナルです)。

おそらくdirect=1ファイルが使用中のオプションをサポートしていないファイルシステムにあります。。何らかの理由でファイルが完全にキャッシュされ、キャッシュからファイルを再読み込みしている可能性があります。ファイルサイズがRAM全体よりはるかに小さい場合は注意してください。それはおそらくファイルに書き込まれていないので、ファイルがまばらであるか空であり、実際には「そこ」ではないからです(もう一度読む前に完全な書き込みを試してください)。

PS:thread値は必要ありません(参照http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-thread)。

関連情報