Domanda

Attualmente stiamo eseguendo l'applicazione Web e il server di database su macchina dedicata Singe. Questa è configurazione hardware - http://www.hetzner.de/en/hosting/produkte_rootserver/ex10. Circa 50 GB di RAM sono gratuiti. PostGressQL prende solo 600 MB mentre i processi WebServer richiedono 7 GB. Il carico medio della CPU è del 25%.

Il software è Ubuntu 12.04 e Postgres 9.1. La dimensione del database è di 15 GB.

Man mano che il carico aumentava il tempo di risposta all'applicazione è aumentato da 230 ms a 450 ms negli ultimi mesi. L'applicazione richiede una quota del 40% mentre DB richiede il 60% dei tempi di risposta.

Abbiamo archiviato molte cose, ma ci chiedevamo se potevamo ottenere qualcosa modificando la configurazione di Postgres. Dopo un po 'di ricerca abbiamo scoperto che la configurazione di PostgreSQL predefinita (https://gist.github.com/darkofabijan/9453c793ceec1ac6274d) è davvero conservativo e che dovremmo sicuramente modificare la nostra configurazione.

Dopo aver eseguito PGTUNE abbiamo ottenuto i seguenti valori raccomandati.

maintenance_work_mem = 1GB 
checkpoint_completion_target = 0.7 
effective_cache_size = 44GB 
work_mem = 288MB 
wal_buffers = 4MB 
checkpoint_segments = 8 
shared_buffers = 15GB 
max_connections = 200 

Una volta che abbiamo iniziato a eseguire il nostro server PostgreSQL con valori consigliati, abbiamo ottenuto in qualche modo picchi regolari quando il tempo di risposta dell'applicazione è salito a 2000 ms+ mentre l'aumento era nel tempo di risposta al database. Dopo averlo eseguito per un paio d'ore, siamo tornati alla configurazione originale di Ubuntu 12.04/Postgresql 9.1.

Ovviamente non abbiamo molta esperienza con la gestione di DBS. Entrambe le raccomandazioni concrete riguardanti i valori suggeriti di PGTune e i puntatori a buone risorse sarebbero molto apprezzate.

EDIT 1:

            name            |         current_setting          |        source
----------------------------+----------------------------------+----------------------
 application_name           | psql                             | client
 client_encoding            | UTF8                             | client
 DateStyle                  | ISO, MDY                         | configuration file
 default_text_search_config | pg_catalog.english               | configuration file
 external_pid_file          | /var/run/postgresql/9.1-main.pid | configuration file
 lc_messages                | en_US.UTF-8                      | configuration file
 lc_monetary                | en_US.UTF-8                      | configuration file
 lc_numeric                 | en_US.UTF-8                      | configuration file
 lc_time                    | en_US.UTF-8                      | configuration file
 log_line_prefix            | %t                               | configuration file
 log_timezone               | localtime                        | environment variable
 max_connections            | 100                              | configuration file
 max_stack_depth            | 2MB                              | environment variable
 port                       | 5432                             | configuration file
 shared_buffers             | 24MB                             | configuration file
 ssl                        | on                               | configuration file
 TimeZone                   | localtime                        | environment variable
 unix_socket_directory      | /var/run/postgresql              | configuration file

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top