Perf disque random lent sur NVMe Linux

Posté par cecile-guyon le 08/10/2024
RÉSOLU

cecile-guyon

Membre depuis le 02/02/2020

salut la compagnie. j'ai une VM linux avec un NVMe qui est censé être ultra rapide et mes perfs en random read/write sont décevantes. j'ai 100k iops en theorie et je peine à atteindre 15k. je rate quoi coté kernel ou tuning ?


# quelques infos système
uname -a
Linux my-vm 5.15.0-78-generic #85-Ubuntu SMP Mon Jul 17 09:27:07 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,SCHED,RQ_SIZE
nvme0n1     ext4    100G /mnt/data   mq-deadline     256

Commentaires

cmathieu

Membre depuis le 03/06/2024

alors pour le nvme le mq-deadline c'est bien mais tu peux essayer none (noop) des fois c'est mieux ou le kyber. et check ton blockdev --setra /dev/nvme0n1 ça aide des fois de monter le readahead. sinon un fio pour mesurer c'est quoi tes vraies perfs

rdiallo

Membre depuis le 25/04/2024

c'est une vm ? sur quel hyperviseur ? vmware kvm ? des fois le driver paravirtualisé ou le cache de l'hyperviseur peuvent brider. t'as quelle version des drivers virtio si c'est kvm

laurent-jean

Membre depuis le 08/04/2019

le filesystem ext4 est monté avec quelles options ? noatime nodiratime pour les iops c'est mieux. et le trim/discard est actif pour le nvme ? fstrim -av ou option discard au mount

cmathieu

Membre depuis le 03/06/2024

faut bien isoler le souci avec fio. un truc du genre : fio --name=rand_rw --ioengine=libaio --iodepth=64 --rw=randrw --bs=4k --size=10G --numjobs=4 --runtime=60 --filename=/mnt/data/testfile --direct=1 --group_reporting

rdiallo

Membre depuis le 25/04/2024

y'a pas de swap sur ce disque ? si y'a de la swap et qu'elle est sollicitée ça peut plomber les perfs. regarde avec free -h et vmstat

laurent-jean

Membre depuis le 08/04/2019

et ton kernel 5.15 est récent ça va. mais regarde si des fois ton cpu est pas en train de thrash. genre cpu steal time élevé sur une vm shared. avec sar ou top

cmathieu

Membre depuis le 03/06/2024

la queue depth du nvme driver et du controlleur virtio est elle bien configurée ? tu peux voir ça avec cat /sys/block/nvme0n1/queue/nr_requests

rdiallo

Membre depuis le 25/04/2024

le cache ecriture sur le nvme lui même ? tu peux le voir avec hdparm -I /dev/nvme0n1 mais sur les nvme c'est moins courant qu'avant

laurent-jean

Membre depuis le 08/04/2019

et la taille des blocs utilisés par l'appli vs la taille des blocs du filesystem ? ça peut créer des soucis d'alignement si pas pareil

cecile-guyon

Membre depuis le 02/02/2020

ok un gros merci à tous ! c'était un combo de plusieurs trucs. le fio a été super utile ça m'a permis de voir que le problème était vraiment au niveau bloc. j'ai mis le scheduler à 'none' et surtout j'ai augmenté la queue depth de l'hyperviseur (kvm) pour la vm. en plus j'avais oublié le discard sur le mount. maintenant je suis à 80k iops c'est déjà bcp mieux !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire