I/O wait kernel linux élevé sur prod rds postgres

poirier-thierry 26/04/2025
RÉSOLU

salut la team on a un gros pb de perf sur une instance rds postgres. l'i/o wait est super élevé genre 70-80% par moments. c'est une gp3 de 500go avec 3000 iops alloués. les requêtes sont pas si folles que ça et le cpu est ok. des idées où chercher dans les logs ou les métriques ?

26/04/2025 à 03:46

8 commentaires

nruiz
Membre Actif
Avatar de nruiz
nruiz
Membre Actif

hello t'as check la queue depth de ton volume ebs dans cloudwatch ? si elle est constamment haute c'est que l'instance postgres n'arrive pas à suivre avec les iops du disque

27/04/2025 à 01:02
hugues44
Membre Actif
Avatar de hugues44
hugues44
Membre Actif

regarde les logs postgres en détails. des fois c'est des requêtes mal optimisées qui font des full table scans ou qui créent énormément de temp files sur le disque ce qui explose les iops

27/04/2025 à 19:43

la gp3 a 3000 iops baseline mais si ton workload a des blocs de données très petits ou très grands ça peut impacter les perfs. t'as quelle taille de bloc i/o moyenne ?

28/04/2025 à 17:13

et la version de postgres ? certaines versions ont des améliorations sur la gestion de l'i/o et du buffering. et ton checkpoint_timeout ou wal_buffers peuvent aussi jouer

29/04/2025 à 12:11
wroche
Membre Actif Secouriste
Avatar de wroche
wroche
Membre Actif Secouriste

est-ce que ton instance rds est dans le même az que tes instances applicatives ? des fois les latences inter-az même faibles peuvent s'accumuler sur des workloads intenses en i/o

30/04/2025 à 07:40
godard-antoinette
Membre Actif Secouriste
Avatar de godard-antoinette
godard-antoinette
Membre Actif Secouriste

regarde aussi les métriques Enhanced Monitoring de rds ça donne des infos plus fines sur le système d'exploitation sous-jacent à la base de données. ça peut te montrer des pics d'i/o sur des fichiers spécifiques

01/05/2025 à 07:31
anais16
Membre
Avatar de anais16
anais16
Membre

et le type d'instance rds ? si elle est pas assez puissante en cpu/ram ça peut aussi limiter sa capacité à traiter les i/o même si le disque a des iops dispo

02/05/2025 à 06:31

ok un mélange de tout ça j'imagine. le queue depth était bien haut et en fait le problème venait de quelques requêtes avec des jointures pas optimales qui faisaient du full scan. et aussi on s'est rendu compte que le type d'instance rds était un peu sous-dimensionné pour la mémoire tampon nécessaire. après quelques optimisations sur les requêtes et un scale up de l'instance ça va déjà beaucoup mieux. thx la team !

03/05/2025 à 01:09

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire