Vous n'êtes pas identifié(e).
Au fait à ce propos :
Re : Utilisation de la mémoire
Par exemple, lors de l'exécution d'une requête (pour la première fois), j'ai les infos suivantes :
.
en utilisant iotop sur centos :
I/O : 98%
.
en utiilisant htop sur centos :
MEM : 4%
CPU : 11%
SWAP : 0.1%
.
Est-ce normal que postgresql utilise le disque plutot que la mémoire ?
J'aurais du être plus précis dans ma réponse : ici il s'agit du cas où la requête est exécutée pour la première fois, donc c'est tout à fait normal que postgresql aille lire les blocks sur disque pour les mettre en mémoire (dans shared_buffers). Du coup il y a forcément beaucoup d'I/O.
Et lors des exécution suivantes, les blocs étant en mémoire, c'est la RAM qui est utilisée. Donc si vous analysez votre RAM et vos I/O (iotop et htop) vous devriez voir l'effet inverse (peu d'I/O et beaucoup d'usage de la RAM).
Comme disait rjuju :
Vous devriez essayer de précharger le shared_buffers avec l'outil pg_prewarm, cela devrait résoudre (au moins en partie) votre problème : http://docs.postgresql.fr/9.5/pgprewarm.html
Dernière modification par ruizsebastien (21/04/2016 09:29:15)
Cordialement,
Sébastien.
Hors ligne
Je ne vois pas en quoi c'est étonnant. Première exécution, les données sont mises en cache, donc forcément il y a des lectures sur disque, et la requête est "lente". Deuxième exécution, utilisation du cache, donc requête rapide.
Il va falloir donner BEAUCOUP plus de détails si vous voulez qu'on vous aide plus. Quelle commande utilises-vous pour récupérer ces informations ? quelles informations cette commande vous renvoie ? (et j'attends le résultat sans interprétation). Voilà le genre de choses qui fera avancer la discussion.
Guillaume.
Hors ligne
Apres analyse de tous vos conseils et recommandations, il semble que mon pb soit que mon serveur est sous-dimensionné par rapport à la taille de ma base de données.
Je vous remercie encore de votre aide
.
Julien
Hors ligne