Membre depuis le 20/01/2020
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`.
Membre depuis le 22/08/2024
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.
Membre depuis le 20/01/2020
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.
Membre depuis le 19/04/2019
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.
Membre depuis le 22/08/2024
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.
Membre depuis le 20/01/2020
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.
Membre depuis le 19/04/2019
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.
Membre depuis le 20/01/2020
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.
Membre depuis le 24/02/2020
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.
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
mace-aimee
Membre depuis le 24/02/2020
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 1` montre 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?