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

#1 03/03/2011 16:49:29

gom
Membre

Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

Bonjour,

OS : Redhat 4.1.2 (64 bits)
1ère instance : PostgreSQL 8.2.13 (une dizaine de bases de données hétéroclites : dev, recette, validation, etc.)
2e instance : PostgreSQL 8.4.5 (un entrepôt de données de recette pour Business Objects où nous réalisons des alimentations hebdo et de la consultation ponctuellement (1 à 3 fois par mois))

Quelles questions dois-je me poser pour réaliser le paramétrage de mes 2 postgresql.conf ?


Merci d'avance.

Gôm

Dernière modification par gom (03/03/2011 17:58:47)

Hors ligne

#2 03/03/2011 17:53:49

Marc Cousin
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

Bon, excepté le fait que la version de Red Hat est totalement obsolète, surtout si c'est pour un nouveau serveur, et de même pour une 8.2, qui sera EOL en décembre, tu devrais pouvoir obtenir des bons points de départ en utilisant pgtune:
http://pgfoundry.org/frs/?group_id=1000 … se_id=1511


Marc.

Hors ligne

#3 04/03/2011 10:00:36

gom
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

Bonjour,

Bon j'ai un problème ... j'ai récupéré la configuration de notre serveur de production, qui possède les mêmes caractéristiques machine.

CPU : Bi Xeon (2 x 4 cœurs) 2,0 GHz
Mémoire vive : 8Go

Par contre, mon serveur de développement où j'ai mes 2 instances n'est pas un serveur dédié ! Il y a dessus des bases Oracle, des applications Java, etc.

Ma question est donc comment puis-je adapter ma configuration ci-dessous sans "trop" big_smile perturber les autres utilisateurs de ce serveur de développement ?!

# - Connexions -
listen_addresses = '*'

# - Memoire -
shared_buffers = 2GB
wal_buffers = 8MB
work_mem = 300MB
maintenance_work_mem = 512MB

# - Journaux de transactions -
checkpoint_segments = 50
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9

# - Optimiseur -
effective_cache_size = 5376MB
random_page_cost = 2.0

# - Statistiques -
track_activity_query_size = 4096

# - Traces -
log_filename = 'postgresql-%Y-%m-%d.log'
log_truncate_on_rotation = off
log_line_prefix = '%t [%p]: [%l-1] '
lc_messages = 'C'
log_connections = on
log_checkpoints = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0

# - Module pg_stat_statements -
shared_preload_libraries = 'pg_stat_statements'
custom_variable_classes = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = top
pg_stat_statements.save = on

Gôm

Dernière modification par gom (04/03/2011 10:02:28)

Hors ligne

#4 04/03/2011 11:39:34

daamien
damien clochard

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

gom a écrit :

Par contre, mon serveur de développement où j'ai mes 2 instances n'est pas un serveur dédié ! Il y a dessus des bases Oracle, des applications Java, etc.

Ma question est donc comment puis-je adapter ma configuration ci-dessous sans "trop" big_smile perturber les autres utilisateurs de ce serveur de développement ?!

Il n'y a pas de formule magique pour ce genre de situations. Essaie déjà de mesurer la quantité de ressources (CPU / RAM) dont les autres logiciels ont besoin....

Hors ligne

#5 04/03/2011 11:47:19

Marc Cousin
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

Si c'est un serveur partagé:
Moins de shared_buffers: autant utiliser le cache du système. 512Mo, ça devrait suffire.

Le reste, ça devrait aller.

Surtout, sur un serveur de dev mutualisé de ce genre, vérifier qu'il ne swap pas trop, histoire qu'il n'y ait pas trop de ralentissements inutiles.


Marc.

Hors ligne

#6 04/03/2011 14:35:11

gom
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

OK, merci, par contre quelles sont les conséquences de laisser ça ?

# - Optimiseur -
effective_cache_size = 5376MB
random_page_cost = 2.0

Gôm

Dernière modification par gom (04/03/2011 14:35:28)

Hors ligne

#7 04/03/2011 15:05:40

Marc Cousin
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

Les conséquences sont difficiles à chiffrer.

Le effective_cache_size n'a de toutes façons que peu d'effet sur les plans. Ce que je veux dire c'est qu'entre 2 et 4Go, par exemple, ça ne change habituellement pas grand chose. Mettez le tout de même à une valeur reflétant un peu mieux ce qui va être disponible à Postgres… 1Go par exemple, pour pas qu'il ait de fausses espérances sur le cache.

Par contre, remontez le random_page_cost (à 4, la valeur par défaut)… dans le cas d'un environnement de test, où peu de données sont en cache, et où les performances disque sont difficile à évaluer (voire changeante suivant l'activité du reste), autant lui dire d'être assez pessimiste sur les performances des accès aléatoires.


Marc.

Hors ligne

#8 04/03/2011 17:02:22

gom
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

OK, c'est fait. wink

Merci merci beaucoup ! Vous êtes vraiment tous très forts !!! cool


Gôm

Hors ligne

#9 04/03/2011 17:06:53

Marc Cousin
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

N'exagérons rien. On fait juste ça à longueur de journée smile


Marc.

Hors ligne

#10 04/03/2011 17:28:42

gom
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

wink

Tant que tu es là ... cool

pg_ctl reload -D '/app/dwh/pgsql/data' -s -m fast

C'est la bonne manière de faire ?


Gôm

Hors ligne

#11 04/03/2011 17:37:49

Marc Cousin
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

le -m fast ne sert que pour le shutdown, pas pour le reload.

sinon oui.


Marc.

Hors ligne

#12 04/03/2011 17:47:17

gom
Membre

Re : Optimisation d'un serveur dédié PostgreSQL avec 2 instances ?

OK, merci ... encore ! wink


Gôm

Hors ligne

Pied de page des forums