Vous n'êtes pas identifié(e).
Je ne manquerai pas de vous communiquer le résultat. Il faut juste me donner le temps pour demander un environnement de test identique. Dès que je l'aurai je vous fait part des résultats.
Hors ligne
Bonjour Guillaume bonjour Julien,
Je n'ai pas de bonnes nouvelles à vous annoncer à propos du paramètre "vm.zone_reclaim_mode".
Alors j'ai fait un test 3 fois le dump d'une base de ~40Go. avec la même commande "$PGDUMP -Fc $DB -v > $BACKUP_DIR/$DB.dump" et j'ai eu le même temps d'exécution du dump avec le paramètres "vm.zone_reclaim_mode=0". et sans ce paramètre. La 3ème fois j'ai rajouté l'option "-Z 2" et là il y a eu une différence significative. sauf la taille du dump qui à été un peu plus grand.
Une précision après avoir modifier le fichier "/etc/sysctl.conf", je n'ai pas redémarrer le serveur, j'ai juste fait "sysctl -p".
Faut il redémarrer le serveur? Est ce que j'ai loupé une coche ou une étape? Faut il modifier qq paramètre postgresql.conf à fin de l'associé au changement de sysctl? Si ça marche chez vous pourquoi pas chez moi?! faut il faire un autre test? SNIF...
Bien à vous
Hors ligne
Voici d'autre éléments:
sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
#configuration postgresql
vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.swappiness=10
#perform_dump
vm.zone_reclaim_mode=0
/etc/fstab:
file system postgres:
/dev/VolGroup00/lv_softwares /softwares ext3 defaults,noatime 1 2
Bien à vous
Hors ligne
Normalement, pas besoin de redémarrer le serveur. Pas besoin de modifier le postgresql.conf non plus. Il y a certainement une raison pour laquelle le paramètre n'a pas d'impact pour votre serveur mais il sera difficile de savoir lequel.
Guillaume.
Hors ligne
Bonjour,
Je ne sais pas s'il faudra fournir plus d'informations? Ou si Julien (ou quelqu'un d'autre bien évidemment) pourra nous dire ce qu'il pense de cette situation. Il sera très pénible pour moi de rester sur sa faim.
Bien à vous
Hors ligne
Bonjour,
je ne vois rien de particulièrement choquant concernant la configuration. Peut-être qu'un noyau linux plus récent permettrait de meilleures performances.
Le point de contention étant apparemment la compression par pg_dump, vous pouvez essayer un outil de compression multi threadé (pbzip2 ou pigz par exemple) par dessus un pg_dump non compressé (-Z0) afin de voir si vous gagnez en temps de sauvegarde tout en conservant une taille de dump raisonnable.
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour Julien,
Le sujet c'est que j'aurai bien aimé que le paramètre "vm.zone_reclaim_mode" marche ça sera génial. Mais je vais essayé avec un noyau plus récent. En revanche je n'ai pas bien saisie ta proposition!! Est ce que tu veux dire que j'imbrique la sortie de mon dump dans un zip? c.a.d je fais la sauvegarde de la base et en même temps je zippe le fichier de sortie "$DB.dump" avec (pgzip2 ou pzip)?
Une curiosité toujours sur "vm.zone_reclaim_mode" sur quelle distribution et version de linux tu l'as essayé?
Bien à vous
Hors ligne
le paramètre zone_reclaim_mode n'a un intérêt que s'il s'agit d'une plateforme NUMA. Quelle est la valeur de ce paramètre par défaut lors du boot (sans surcharge au niveau du sysctl.conf) ?
Pour le dump, je parlais d'une commande du genre : "pg_dump -Fc -Z0 | pbzip2 -c > dump.bz2"
Julien.
https://rjuju.github.io/
Hors ligne
Merci julien pour ta réponse,
Les dés sont jetés. Pas de plateforme NUMA:
[root@xxxxxx ~]# numactl --hardware
available: 1 nodes (0)
node 0 size: 8828 MB
node 0 free: 168 MB
node distances:
node 0
0: 10
Pas de NUMA pas de "zone_reclaim_mode"! Pas de bras...
Je n'ai pas vu la valeure par défaut car je n'ai pas redémarrer la machine pour le voir (ce n'est pas possible pour l'instant). Si c'est utile pour avancer je peut le faire ultérieurement le W.E.
Hors ligne
Pas besoin de redémarrer pour voir la valeur par défaut de zone_reclaim_mode, numactl donne l'information. Il ne reste donc qu'un test avec pbzip2 pour voir le temps de sauvegarde avec une compression externe.
Julien.
https://rjuju.github.io/
Hors ligne
Je ne connais pas l'option nummactl pour avoir la valeure zone_reclaim_mode en revanche j'ai ça comme valeure:
cat /proc/sys/vm/zone_reclaim_mode
0
et ça aussi:
cat /etc/sysctl.conf | grep zone_reclaim_mode
vm.zone_reclaim_mode=0
Je te t'informerai du résultat du dump avec zip externe.
Hors ligne