10 commentaires
oui j'ai iostat. le util est à 99% mais les tps sont ridicules, genre 20-30 tps pour des block devices nvme. await est à plusieurs centaines de ms. c'est du mix, plutôt de la petite écriture/lecture random, c'est pour une base de données
sur l'hôte c'est none (nvme direct) normal. sur la VM c'est bfq. est-ce que ça peut avoir un impact énorme même avec io=native ?
ah bfq pour une BDD avec du random I/O c'est pas idéal. bfq est super pour les workloads desktop interactifs mais pas pour des serveurs. essaie de passer la VM en mq-deadline ou même none si c'est du virtio-blk (pas virtio-scsi). ça peut aider beaucoup
oui bfq c'est un tue-la-performance pour du random io intensif. si tu es en virtio-scsi mq-deadline est souvent le meilleur compromis. sinon t'as check si tu utilises io_uring dans ton applicatif ? ça peut aussi booster pas mal si bien implémenté
ok je vais tester mq-deadline sur la VM. je relance mes tests et je vois. pour io_uring non pas encore, l'appli utilise des appels standards. je me concentre sur l'infra pour l'instant.
bon, mq-deadline a bien amélioré les choses ! les await ont chuté. on est pas encore au niveau de l'hôte mais c'est bien mieux. y a encore des gains possibles ou c'est le mieux qu'on puisse avoir avec virtio-scsi ?
si tu peux passer en virtio-blk au lieu de virtio-scsi ça peut apporter un petit plus, c'est un peu plus simple et direct. mais le gros gain c'était le scheduler. après il y a toujours un overhead de virtualisation mais ça devrait être minimal avec du bon tuning.
je peux tester virtio-blk sur une autre VM. je vais faire ça. merci pour tous les conseils, ça m'a bien aidé à comprendre la chaîne I/O virtuelle !
Laisser une réponse
Vous devez être connecté pour poster un message !
Hello la team, on a des VMs KVM sur des hôtes avec du NVMe physique, mais les perfs I/O sur ces VMs sont vraiment à chier. C'est du
virtio-scsiavec des disques que j'ai configuré encache=none,io=native. On s'attendait à des trucs de fou mais on est au niveau d'un HDD à plateaux. Genre, un simpleddprend 10x plus de temps que sur l'hôte physique.Je pige pas, y a un truc que je rate dans la chaîne ?