2016-03-08 4 views
0

Je travaille avec la carte NVMe sous Linux (Ubuntu 14.04). Je constate une dégradation des performances de la carte Intel NVMe lorsqu'elle est formatée avec le système de fichiers xfs avec sa taille de secteur par défaut (512). ou toute autre taille de secteur inférieure à 4096.Disque Intel NVMe Dégradation des performances avec le système de fichiers xfs avec une taille de secteur autre que 4096

Dans l'expérience, j'ai formaté la carte avec le système de fichiers xfs avec les options par défaut. J'ai essayé d'exécuter fio avec 64k taille de bloc sur une plate-forme arm64 avec 64k taille de la page. Ceci est la commande utilisée 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

je pouvais obtenir que les valeurs ci-dessous

état d'exécution du groupe 0 (tous les emplois): LIRE: io = 20480MB, aggrb = 281670KB/s, MINB = 281670KB/s, max = 281670KB/s, mint = 744454msec, maxt = 74454msec Statistiques du disque (lecture/écriture): nvme0n1: ios = 326821/8, merge = 0/0, ticks = 582640/0, ​​in_queue = 582370 , util = 99.93%

J'ai essayé le formatage comme suit s:

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

alors les valeurs étaient les suivantes:

état d'exécution du groupe 0 (tous les emplois): LIRE: io = 20480MB, aggrb = 781149KB ​​/ s, MINB = 781149KB ​​/ s, MaxB = 781149KB ​​/ s, mint = 266 847msec, maxt = 26847msec Statistiques du disque (lecture/écriture): nvme0n1: ios = 326748/7, merge = 0/0, ticks = 200270/0, in_queue = 200350, util = 99,51%

Je ne trouve pas de performance degrad ation lorsqu'il est utilisé avec

  • 4k Taille de la page
  • Ne importe quelle taille de bloc fio moins que 64k
  • Avec ext4 fs avec configs par défaut

Quel pourrait être le problème? Est-ce un problème d'alignement? Qu'est-ce que j'oublie ici? Toute aide appréciée

Répondre

2

Le problème est que la taille du secteur natif de votre SSD est 4K. La taille de bloc de votre système de fichiers doit donc être définie de sorte que les lectures et les écritures soient alignées sur les limites du secteur. Sinon, vous aurez des blocs qui couvrent 2 secteurs, et donc nécessitent 2 lectures de secteur pour retourner 1 bloc (au lieu de 1 lire).

Si vous avez un SSD Intel, les plus récents ont une taille de secteur variable que vous pouvez définir en utilisant leur outil Intel Solid State Drive DataCenter. Mais honnêtement, 4096 est toujours la taille du secteur réel du disque et vous obtiendrez la performance la plus constante en l'utilisant et en ajustant votre système de fichiers.

Sur ZFS sous Linux, le paramètre est ashift = 12 pour les blocs 4K.