Bem... com certeza eu devo ter sido motivo de piada para a maioria do pessoal da lista, que provavelmente é DBA e têm sob sua responsabilidade poucas instâncias de bancos de dados com terabytes de tamanho. Mesmo assim, preciso adaptar as configurações de performance para nossos clientes, pois preciso usar ao máximo o que os servidores deles podem oferecer.
Eu utilizo estas configurações como base: *shared_buffers:* entre 15% e 25% da memória RAM disponível (25% somente a partir de 2 GB de RAM); *temp_buffers:* 8 MB para menos de 2 GB de RAM, acima disso 16 MB; *work_mem:* 4 MB até 512 MB de RAM; acima de 512 MB e até 2 GB uso 8 MB; acima disso 16 MB; *maintenance_work_mem:* sempre 50% da memória RAM disponível. *fsync:* sempre "on" - não podemos confiar nos discos dos clientes; *synchonous_commit:* "on" - idem *full_page_writes:* "on" - idem *checkpoint_segments: *4 para máquinas com discos pequenos e lentos (até 7200 RPM). Se o cliente possui RAID, colocamos 16 segmentos. *effective_cache_size:* 50% da memória RAM disponível. * Estes valores foram definidos após testes com diversas bases de clientes, a mais ou menos 2 anos com a versão 8.0 do PostgreSQL. Eu entendo que deveria ser feito uma análise de performance individual para cada cliente, mas administrar mais de 200 bases de dados é complicado, ainda mais levando em consideração a falta de hardware de alguns. Nos clientes que dispõe de um servidor dedicado estas análises são feitas e as configurações são personalizadas. Agora, gostaria de uma validação da comunidade para saber se não estou colocando valores muito fora da realidade. E também saber se existe alguma outra opção que possa impactar na performance para estes hardwares "singelos". NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4 clientes simultâneos) até clientes de médio porte (com mais de 60 clientes simultâneos). Portanto a escolha de outro SGBD está fora de questão - como já foi sugerido em outros fóruns. -- Tiago J. Adami Dois Vizinhos - Paraná - Brasil 2009/7/29 Tiago Adami <[email protected]> > A muito tempo atrás eu troquei uns e-mails com um expert em PostgreSQL que > se não me engano trabalhava em uma empresa chamada Varlena ou algo assim - > infelizmente perdi o e-mail e não posso dar mais detalhes. Naquele tempo a > versão atual era a 7.4, e ele me passou valores em percentuais para as > principais configurações de performance do banco em situações onde o > hardware não é muito parrudo. Funcionou bem, mas vejo que hoje existem > muitas novas opções de performance que podem ser adotadas em hardwares de > servidores modestos. > > Pois bem, trabalho para uma empresa que desenvolve um sistema ERP escrito > em Visual Foxpro 9 e o banco é unicamente PostgreSQL (atualmente versão > 8.2). Temos mais de 200 clientes por todo o Brasil, com bases de dados que > variam de 10 Mb até 500 Mb (baseados no tamanho do backup realizado com as > opções "-F c -Z 9" do pg_dump). > > Como atendemos clientes pequenos e médios, alguns clientes possuem máquinas > de servidor que não passam de um Celeron 800 com 512 MB de RAM (máquinas com > o sistema standalone). Entretanto, alguns clientes maiores possuem > servidores Xeon Quad-Core com 4 Gb de RAM com RAID 0+1 ou 5. > > Baseado nesta faixa de hardware, o que vocês poderiam me recomendar em > configurações para aumentar a performance utilizando a versão 8.2 ou > superior do PostgreSQL? > > > -- > Tiago J. Adami > Dois Vizinhos - Paraná - Brasil > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
