PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 14/05/2018 14:54:38

so.ranaivosoa
Membre

Problème de mémoire sur pg_dump

Bonjour,

Etant nouvelle autant sur le site que sur PostgreSQL, je rencontre le problème suivant sur notre serveur :
Une sauvegarde pg_dump est lancée sur notre base PostgreSQL 9.6.3 et se termine correctement. Lors de la sauvegarde, la mémoire consommée est énorme mais celle-ci ne se libère toujours pas même lorsque la sauvegarde est terminée. Il faut alors supprimer le fichier généré pour que la mémoire diminue.
Est-ce qu'il y a quelqu'un aurait une idée svp ?
Merci déjà à ceux qui pourront me donner une piste smile
Cordialement,

Hors ligne

#2 14/05/2018 18:24:50

dverite
Membre

Re : Problème de mémoire sur pg_dump

Quel système d'exploitation? Comment est mesurée la mémoire "consommée" ?

Hors ligne

#3 15/05/2018 08:01:50

so.ranaivosoa
Membre

Re : Problème de mémoire sur pg_dump

RHLE 6 et je fais top dans la console pour voir la mémoire consommée. Et malgré une migration vers RHEL 7 sur un serveur test, le problème persiste toujours.
Merci.

Dernière modification par so.ranaivosoa (15/05/2018 08:06:15)

Hors ligne

#4 15/05/2018 09:50:26

rjuju
Administrateur

Re : Problème de mémoire sur pg_dump

Top affiche comme utilisée la mémoire utilisée par le cache disque.  La mémoire est utilisée mais disponible.  Vous pouvez vérifier cela en comparant le retour de la commande "free -g" avant et après avoir supprimé le fichier.

Hors ligne

#5 15/05/2018 10:34:59

so.ranaivosoa
Membre

Re : Problème de mémoire sur pg_dump

Ci-après le test, la mémoire est used :
[ Serveur | APPL | 2018-05-15 11:23:31 | /backup/test ]
$ /opt/appl/sgbd/bin/pg_dump -f pg_dump_sgbd.backup -Z0 -Fc -h localhost -p 30009 -U test -d test
[ Serveur | APPL | 2018-05-15 11:24:05 | /backup/test ]
$ free -g
             total       used       free     shared    buffers     cached
Mem:            31          5         26          0          0          4
-/+ buffers/cache:          0         30
Swap:           11          0         11
[ Serveur | APPL | 2018-05-15 11:24:42 | /backup/test ]
$ ls
pg_dump_sgbd.backup
[ Serveur | APPL | 2018-05-15 11:25:01 | /backup/test ]
$ rm pg_dump_sgbd.backup
[ Serveur | APPL | 2018-05-15 11:25:08 | /backup/test ]
$ free -g
             total       used       free     shared    buffers     cached
Mem:            31          3         27          0          0          3
-/+ buffers/cache:          0         30
Swap:           11          0         11
[ Serveur | APPL | 2018-05-15 11:25:15 | /backup/test ]
$ ls

Ce que je voudrais c'est qu'après la sauvegarde, il libère le cache malgré le fait que le fichier soit encore dans le serveur. Pendant la sauvegarde OK, il n'y a pas de souci mais après ce n'est pas possible. Etant dans une base de test, mon fichier atteint seulement 1.5Go max mais lors de la prod, il atteint 2 fois plus et la mémoire consommée est apparemment à peu près égale à la taille du fichier.

Hors ligne

#6 15/05/2018 11:38:45

dverite
Membre

Re : Problème de mémoire sur pg_dump

C'est complètement normal, linux garde les blocs en cache, déjà parce qu'ils ne sont pas encore nécessairement écrits physiquement sur le disque, et parce que de toute façon  la mémoire qui ne sert à rien d'autre a tendance à être utilisée en cache.

Si vous voulez vider le cache, faire en tant que root:

  sync && echo 3 > /proc/sys/vm/drop_caches

Dernière modification par dverite (15/05/2018 11:39:14)

Hors ligne

#7 15/05/2018 13:27:59

so.ranaivosoa
Membre

Re : Problème de mémoire sur pg_dump

Donc vous voulez dire que si ma base augmente encore je dois avoir de plus en plus de mémoires? Je veux dire si par exemple ma base dans quelques temps atteindra 10Go, je devrais avoir la même taille de mémoire pour pouvoir stocker mes sauvegardes ? Et en plus, si je fais une sauvegarde tous les jours avec 1,5Go de taille avec une semaine de rétention, il aura 5 fois plus de mémoire allouée et il faudra à chaque fois purgé le cache tous les jours ?
Merci.

Hors ligne

#8 15/05/2018 21:43:35

gleu
Administrateur

Re : Problème de mémoire sur pg_dump

Non, absolument pas. Il se contentra de la mémoire disponible.

Hors ligne

#9 16/05/2018 09:23:47

so.ranaivosoa
Membre

Re : Problème de mémoire sur pg_dump

Lors de l'utilisation de cette syntaxe : pg_dump -f pg_dump_sgbd.backup -Z0 -Fc -h localhost -p port -U test -d test, j'ai le problème mais lorsque j'ai enlevé -Z0 la mémoire diminue. D'après le peu que j'ai trouvé, l'option -Z indique le niveau de compression et 0 indique qu'il n'y a pas de compression alorsquel serait mon intérêt de mettre -Z0 si celle-ci est déjà géré sans l'option ?
Merci.

Dernière modification par so.ranaivosoa (16/05/2018 10:02:43)

Hors ligne

#10 16/05/2018 11:08:06

rjuju
Administrateur

Re : Problème de mémoire sur pg_dump

Par défaut pg_dump compressera les données (équivalent -Z4 ou -Z5 il me semble).  Mettre -Z0 va éviter de consommer du CPU pour la compression mais génèrera une sauvegarde plus volumineuse.  C'est à vous de voir le compromis qui vous va.

Hors ligne

#11 16/05/2018 13:17:32

so.ranaivosoa
Membre

Re : Problème de mémoire sur pg_dump

Est-ce que cette consommation du CPU sera seulement durant l'opération de sauvegarde ou pendant la présence du fichier comme mon problème de RAM ?
Merci.

Hors ligne

#12 16/05/2018 13:32:35

rjuju
Administrateur

Re : Problème de mémoire sur pg_dump

Uniquement pendant la création du fichier de sauvegarde et pendant la restauration.  Et vous n'avez pas de problème de RAM, ce n'est pas parce que la RAM est utilisée par le cache qu'elle n'est pas disponible pour autre chose en cas de besoin.  Cf https://www.linuxatemyram.com/

Hors ligne

Pied de page des forums