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 30/01/2013 12:56:31

gom
Membre

Quelle quantité de RAM allouer ?

Bonjour,


Question simple et courte : pourquoi le serveur de Prod de mon client a un shared_buffers à 2GB alors que le serveur (dédié avec seulement la base de Prod) possède 8GB de RAM ?


# - 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_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



Merci d'éclairer ma lanterne ! wink


Gôm

Dernière modification par gom (30/01/2013 12:57:40)

Hors ligne

#2 30/01/2013 14:24:15

rjuju
Administrateur

Re : Quelle quantité de RAM allouer ?

Bonjour,

tout simplement parce que 25% de la RAM pour le shared_buffers est un réglage qui convient bien en général. Postgres utilise des accès disques standard, et le cache système est donc à prendre en compte. De plus, la valeur de work_mem est très haute (300 Mo), et une grande quantité de RAM peut être utilisée pour les tris. Le paramètre wal_buffers pourrait par contre être montée à 16Mo.

Hors ligne

#3 30/01/2013 15:12:37

gom
Membre

Re : Quelle quantité de RAM allouer ?

Bonjour rjuju !


rjuju a écrit :

tout simplement parce que 25% de la RAM pour le shared_buffers est un réglage qui convient bien en général.

OK donc je laisse le shared_buffers à 2GB. Merci. smile



rjuju a écrit :

Postgres utilise des accès disques standard, et le cache système est donc à prendre en compte.

Cela signifie que plutôt d'augmenter le shared_buffers, il vaudrait mieux que je vérifie le paramétrage du cache système ?



rjuju a écrit :

De plus, la valeur de work_mem est très haute (300 Mo), et une grande quantité de RAM peut être utilisée pour les tris.

Je n'ai pas compris. Ai-je quelque chose à modifier au final ?



rjuju a écrit :

Le paramètre wal_buffers pourrait par contre être montée à 16Mo.

OK je change ça tout de suite. Encore merci ! wink



Précision : ma base de Prod est un Datawarehouse et mon serveur tourne sur Redhat 5.4.


Gôm

Hors ligne

#4 12/02/2013 00:18:18

gleu
Administrateur

Re : Quelle quantité de RAM allouer ?

Cela signifie que plutôt d'augmenter le shared_buffers, il vaudrait mieux que je vérifie le paramétrage du cache système ?

Non, il ne se configure pas.

Ai-je quelque chose à modifier au final ?

Oui, baisser work_mem.


Guillaume.

Hors ligne

#5 12/02/2013 19:12:28

gom
Membre

Re : Quelle quantité de RAM allouer ?

gleu a écrit :

Ai-je quelque chose à modifier au final ?

Oui, baisser work_mem.

Merci.


A combien ?

Hors ligne

#6 12/02/2013 21:21:39

gleu
Administrateur

Re : Quelle quantité de RAM allouer ?

À moins smile

En fait, c'est à corréler avec le nombre de connexions maximum possibles.


Guillaume.

Hors ligne

Pied de page des forums