Fazer um postgresql.conf decente, como um chefe

Esta dica não é sobre o ajuste de desempenho de ponta, em vez disso, vou me concentrar em configurações razoavelmente otimizadas compatíveis com o hardware real que executa o servidor PostgreSQL.
Isso porque as instalações padrão do PostgreSQL de quase todos os distribuidores têm configurações de fábrica bastante deficientes.
Felizmente, existe o pgtune , um script Python que atua como um assistente de configuração PostgreSQL:

O pgtune funciona pegando um arquivo postgresql.conf existente como entrada, fazendo alterações nele com base na quantidade de RAM em seu servidor e carga de trabalho sugerida e produzindo um novo arquivo.
Por exemplo:

python pgtune 
-i /etc/postgresql/9.2/main/postgresql.conf
-o postgresql.conf
--memory=8589934592
--type=Desktop
--connections=10

(no Linux, a quantidade de RAM é obtida automaticamente)
E aqui está a diferença entre a configuração original e a gerada:

556a557,568
> #---------------------------------------------
> # pgtune wizard run on 2012-12-18
> # Based on 8388608 KB RAM in the server
> #---------------------------------------------
>
> default_statistics_target = 100
> maintenance_work_mem = 512MB
> effective_cache_size = 2GB
> work_mem = 128MB
> wal_buffers = 1536kB
> shared_buffers = 512MB
> max_connections = 10

PS – para alguns ajustes sérios, verifique PostgreSQL Performance Tuning de Christopher Browne.