7 commentaires
Salut ! Premier truc à check sur une VM Linux pour les perfs I/O c'est le scheduler disque. T'es en quel mode? noop, deadline, ou mq-deadline? cat /sys/block/sdX/queue/scheduler pour voir (remplace sdX par ton disque). Et t'as bien VirtIO activé pour ton disque dans Proxmox?
En complément, la config du cache de disque dans Proxmox est cruciale. T'es en "No cache", "Write back", "Write through"? Si t'es en "Write back" sans batterie de secours sur le host physique, Proxmox peut être prudent et ralentir les écritures. Et ton système de fichiers sur la VM c'est quoi?
Alors le scheduler c mq-deadline (j'ai confondu avec cfq qui est deprecated sur les kernels récents, ma faute). VirtIO est bien activé pour le disque. Pour le cache Proxmox c "Write back" et le serveur a un UPS et une carte RAID avec batterie pour le cache. Le système de fichiers sur la VM c ext4.
mq-deadline c'est pas le pire mais pour du NVMe et VirtIO, le noop est souvent recommandé car l'ordonnancement est déjà fait au niveau de l'hyperviseur et du stockage physique. Essaie de passer en noop pour voir la différence. echo noop > /sys/block/sdX/queue/scheduler
Avec ext4 et "Write back", tu devrais avoir de bonnes perfs. Mais y'a l'option barrier=1 (par défaut) qui assure l'intégrité des données mais peut ralentir les écritures. Tu peux essayer de le désactiver (barrier=0) dans ton fstab pour tester si t'es ok avec les risques (si la batterie de la carte RAID et l'UPS sont fiables). Mais commence par le noop.
ok je viens de passer en noop après un redémarrage (j'ai mis ça dans /etc/default/grub pour que ce soit persistant). les tests fio donnent bw=450mib/s (472mb/s)! c'est le jour et la nuit ! merci beaucoup. je pense que le mq-deadline était en conflit avec virtio.
Pour le barrier=0 je vais investiguer un peu plus sur les risques pour PostgreSQL. Mais la simple activation de noop a déjà résolu 90% du problème. C'est incroyable la différence. Merci beaucoup les gars, vous avez sauvé mes perfs et mon moral !
Laisser une réponse
Vous devez être connecté pour poster un message !
Salut la commu. J'ai un souci de perf d'écriture sur une VM Linux (Ubuntu 22.04) hébergée sur Proxmox. Le stockage derrière c'est du NVMe RAID 10 qui claque des perf de fou côté host, mais sur la VM j'ai des écritures qui plafonnent à 50-80MB/s alors que je devrais être à genre 500+.
C'est une base de données qui tourne dessus (PostgreSQL) et ça se ressent énormément sur les transactions. J'ai l'impression que la VM bride un truc, mais je sais pas quoi.