2016-03-08 606 views
0

我正在使用Linux上的NVMe卡(Ubuntu 14.04)。 使用默認扇區大小(512)的xfs文件系統進行格式化時,我發現Intel NVMe卡的某些性能下降。或任何其他扇區大小小於4096.Intel NVMe驅動器扇區大小不是4096的xfs文件系統的性能下降

在實驗中,我使用默認選項爲xfs文件系統格式化卡。我嘗試在64K頁面大小的arm64平臺上以64k塊大小運行fio。 這是命令中使用 fio --rw=randread --bs=64k --ioengine=libaio --iodepth=8 --direct=1 --group_reporting --name=Write_64k_1 --numjobs=1 --runtime=120 --filename=new --size=20G

我能得到僅低於值

運行狀態組0(所有作業): READ:IO = 20480MB,aggrb = 281670KB/s的,MINB =磁盤狀態(讀/寫): nvme0n1:ios = 326821/8,merge = 0/0,ticks = 582640/0,in_queue = 582370 ,util = 99.93%

我試着格式化如下S:

mkfs.xfs -f -s size=4096 /dev/nvme0n1 

則數值爲:

運行狀態組0(所有作業): READ:IO = 20480MB,aggrb = 781149KB/s的,MINB = 781149KB/s時,MAXB = 781149KB/s,mint = 266 847msec,maxt = 26847msec 磁盤統計數據(讀/寫): nvme0n1:ios = 326748/7,merge = 0/0,ticks = 200270/0,in_queue = 200350,util = 99.51%

我發現沒有性​​能下降通貨膨脹與

  • 4K頁大小
  • 任何FIO塊大小大於64K
  • 較小ext4的FS默認CONFIGS使用時

可能是什麼問題?這是否有任何對齊問題?我在這裏錯過了什麼?任何幫助表示讚賞

回答

2

的問題是你的SSD的本機扇區大小爲4K。因此,應該將文件系統的塊大小設置爲匹配,以便讀寫在扇區邊界上對齊。否則,您將擁有跨越2個扇區的塊,因此需要2個扇區讀取返回1個塊(而不是1個讀取)。

如果你有一個英特爾固態硬盤,較新的具有可變扇區大小,你可以使用他們的英特爾固態硬盤數據中心工具集。但說實話4096仍可能是驅動器的真實扇區大小無論如何,你會使用它,並設置文件系統來匹配得到最一致的性能。

在在Linux ZFS設定爲4K塊ashift = 12。

相關問題