web-dev-qa-db-ja.com

NVMeが512セクターサイズで構成されている場合、512の動作が4096よりも悪いのはなぜですか?

以下に示すように、インテルSSDデータセンターツールを使用してNVMe情報を確認しました。

- Intel Optane(TM) SSD DC P4800X FUKS7175003R375AGN -
...
Bootloader : EB3B0213
DevicePath : /dev/nvme0n1
DeviceStatus : Healthy
Firmware : E2010211
IntelNVMe : True
LBAFormat : 0
NativeMaxLBA : 732585167
NumErrorLogPageEntries : 63
NumLBAFormats : 6
PhySpeed : The selected drive does not support this feature.
PhysicalSectorSize : The selected drive does not support this feature.
PhysicalSize : 375083606016
PowerGovernorAveragePower : The desired feature is not supported.
...
SMBusAddress : 256
SectorSize : 512
SerialNumber : FUKS7175003R375AGN
TCGSupported : False
...

ご覧のとおり、SectorSize = 512です。ただし、blocksize=4096を使用してfioでテストすると、blocksize=512よりもはるかに高速です。 SSDのページを再度書き込む前に消去する必要があることはわかっていますが、ここでは512はページとまったく同じであるため、高速である必要があります。

6
HuangJie

SSDの場合、上位層に提示されるブロックサイズは消去ページサイズに近くありませんが、4096バイトIS 512バイトよりも消去ページサイズに近いです。さらに、「クランプでデータを送信する場合"512バイトではなく4096バイトの場合、同じ合計I/Oに対してすべての処理が少なくなり、I/Oがページサイズに合わせてより頻繁に調整されます。実際、64kを使用すると、より高速になるでしょう。ブロックサイズ-最小ブロックサイズが最適なブロックサイズと異なります!参照 http://codecapsule.com/2014/02/12/coding-for-ssds-part-2-architecture-of-an-ssd- and-benchmarking / (特にNAND-flashのページとブロックに関するセクション)および http://codecapsule.com/2014/02/12/coding-for-ssds-part-3-pages-詳細については、blocks-and-the-flash-translation-layer / をご覧ください。

4
Anon