Linux 扇区大小不是4096的xfs文件系统导致英特尔NVMe驱动器性能下降
我正在linux(Ubuntu 14.04)上使用NVMe卡。 当使用默认扇区大小(512)的xfs文件系统进行格式化时,我发现Intel NVMe卡的性能有所下降。或任何其他小于4096的部门规模 在实验中,我使用带有默认选项的xfs文件系统格式化了卡。我尝试在页面大小为64k的arm64平台上运行64k块大小的fio。 这是使用的命令Linux 扇区大小不是4096的xfs文件系统导致英特尔NVMe驱动器性能下降,linux,ext4,pci-e,solid-state-drive,xfs,Linux,Ext4,Pci E,Solid State Drive,Xfs,我正在linux(Ubuntu 14.04)上使用NVMe卡。 当使用默认扇区大小(512)的xfs文件系统进行格式化时,我发现Intel NVMe卡的性能有所下降。或任何其他小于4096的部门规模 在实验中,我使用带有默认选项的xfs文件系统格式化了卡。我尝试在页面大小为64k的arm64平台上运行64k块大小的fio。 这是使用的命令 fio--rw=randread--bs=64k--ioengine=libaio--iodepth=8--direct=1--group\u reporti
fio--rw=randread--bs=64k--ioengine=libaio--iodepth=8--direct=1--group\u reporting--name=Write\u 64k\u 1--numjobs=1--runtime=120--filename=new--size=20G
我只能得到下面的值
运行状态组0(所有作业):
读:io=20480MB,aggrb=281670KB/s,minb=281670KB/s,maxb=281670KB/s,mint=744454毫秒,maxt=74454毫秒
磁盘统计信息(读/写):
nvme0n1:ios=326821/8,merge=0/0,ticks=582640/0,in_queue=582370,util=99.93%
我尝试按如下方式格式化:
mkfs.xfs -f -s size=4096 /dev/nvme0n1
那么这些值是:
运行状态组0(所有作业):
读:io=20480MB,aggrb=781149KB/s,minb=781149KB/s,maxb=781149KB/s,mint=266
847毫秒,最大值=26847毫秒
磁盘统计信息(读/写):
nvme0n1:ios=326748/7,merge=0/0,ticks=200270/0,in_queue=200350,util=99.51%
我发现使用时没有性能下降
- 4k页面大小
- 任何小于64k的fio块大小
- 使用带有默认配置的ext4 fs
可能是什么问题?这是否存在对齐问题?我错过了什么?感谢您的帮助问题是您的SSD的本机扇区大小是4K。因此,文件系统的块大小应设置为匹配,以便读写在扇区边界上对齐。否则,您将有跨越2个扇区的块,因此需要2个扇区读取才能返回1个块(而不是1个读取) 如果您有Intel SSD,则较新的SSD具有可变扇区大小,您可以使用其Intel固态硬盘数据中心工具进行设置。但老实说,4096仍然可能是驱动器的真正扇区大小,使用它并将文件系统设置为匹配,您将获得最一致的性能 在Linux上的ZFS上,4K块的设置为ashift=12