9 commentaires
Salut ! Premier truc à voir, c'est quel scheduler I/O est utilisé sur tes NVMe. Pour les SSD, noop ou mq-deadline sont généralement meilleurs que cfq. Tu peux vérifier avec cat /sys/block/nvme0n1/queue/scheduler et changer si besoin. echo noop > /sys/block/nvme0n1/queue/scheduler.
Vérifie aussi tes options de mount pour le filesystem de ta DB. noatime et barrier=0 peuvent améliorer les perfs sur les SSD. Par contre barrier=0 demande à faire confiance au cache d'écriture du disque, attention.
taille des blocs du filesystem (ex: xfs, ext4) et alignement avec le disque nvme. si tes blocs sont pas alignés ou trop petits pour la charge, ça peut générer plus d'opérations physiques. blockdev --getbsz /dev/nvme0n1 et fdisk -l pour voir les offsets.
La valeur de swappiness? Si elle est trop haute, le kernel peut commencer à swapper la mémoire de la DB vers le disque, même si t'as de la RAM libre, et ça tue les perfs I/O. Mets-la à 1 ou 10 sur un serveur DB.
Pas de processus background qui font du I/O lourd au même moment? Genre des backups qui utilisent rsync ou des snapshots LVM? Ça peut créer des micro-pauses qui se transforment en gros lag sur la DB.
Problème de firmware NVMe? J'ai déjà vu des firmwares buggés sur certaines marques de NVMe qui causaient des perfs I/O instables. Vérifie si y a des mises à jour dispo pour tes P4510.
Si c une VM, y a-t-il un overhead de l'hyperviseur? Certaines configs de virtualisation peuvent impacter le passthrough I/O des NVMe. Regarde les métriques I/O de l'hyperviseur si tu peux.
Et enfin, si t'utilises mdadm ou lvm au-dessus de tes NVMe, vérifie que les stripe sizes sont bien optimisées pour tes workloads et alignées avec les blocs de tes disques.
Gros merci à tous ! Plusieurs pistes intéressantes. Le swappiness était à 60, je l'ai mis à 10. Et surtout, il y avait un vieux script de rotation de logs qui faisait un tar.gz sur des dizaines de gigas toutes les heures. Ça créait des pics. En le décalant et l'optimisant, les IOPS sont stables maintenant ! C'était un mix de petits trucs en fait.
Laisser une réponse
Vous devez être connecté pour poster un message !
hello ! j'ai un serveur mysql/percona sur un dédié avec des ssd nvme (type intel p4510), et je constate des perfs i/o super aléatoires. des fois ça carbure à 100k+ iops, des fois ça tombe à 5k iops et la latence monte en flèche (plusieurs centaines de ms) pour des opérations qui devraient être instantanées.
iostat -x 1montre des %util qui fluctuent pas mal.J'ai déjà checké le CPU et la RAM, ils sont loin d'être saturés. Des pistes pour ce genre de comportement erratique?