7 commentaires
hello ! première chose à vérifier c'est la version du kernel et si tu as les drivers NVMe qui vont bien. et assure-toi que ton système de fichiers (ext4 xfs) est monté avec les bonnes options genre noatime ou nodiratime pour réduire les writes métadata. et le scheduler I/O ? deadline cfq noop ?
fio c'est bien mais assure-toi que tu testes la bonne chose. ton --iodepth=64 c'est ok pour le parallélisme mais le --fsync=1 peut plomber tes perfs si tu as un souci de cache écriture ou de disque en arrière-plan. essaie sans fsync pour voir le throughput max du disque brut
et t'as des snapshots réguliers ou backups en cours sur cet EBS ? même si tu ne vois rien dans cloudwatch des opérations de maintenance ou de snapshot peuvent impacter les perfs de manière transparente pour l'utilisateur des fois
j'ai checké le scheduler il était en mq-deadline je l'ai mis à noop ça a un peu aidé mais c'est pas encore ça. et les options de mount sont ok. sans fsync les perfs sont un peu meilleures mais toujours loin du compte. pas de snapshots en cours
ok si le scheduler et les options de mount sont bons et pas de fsync qui ralentit alors c'est peut-être la taille du bloc. si ton application écrit en très petits blocs (ex 512B) mais que le disque est optimisé pour des 4K ça fait bcp d'overhead. essaie de faire ton fio avec des bs=8k ou bs=16k pour voir
c'était ça ! mon application faisait des writes en 1k. en passant le bs de fio à 4k puis 8k j'ai vu les IOPS monter en flèche. j'ai revu la taille des buffers de mon app et maintenant c le jour et la nuit. merci à tous pour votre aide précieuse
Laisser une réponse
Vous devez être connecté pour poster un message !
salut la compagnie j'ai des vms ubuntu sur aws (genre c5n.xlarge avec des disques nvme) qui sont censées avoir des perfs i/o de ouf mais en pratique je galère. mes applications ont des latences de dingue sur les accès disque alors que les métriques ebs dans cloudwatch montrent rien d'anormal (iops et throughput sont loin des limites)
le test fio me donne des IOPS ridicules pour du NVMe moins de 10k alors que je devrais être à des centaines de milliers