cluster live postgres 8.3 servidor

1

Nossa aplicação web está obtendo mais e mais tráfego, o que está fazendo com que nosso servidor de banco de dados pg8.3 tenha um pequeno problema em acompanhar. Eu tive um olhar em usando pgpool II para agrupar o banco de dados para aliviar um pouco de tensão, e eu queria saber como isso deve ser feito para minimizar o tempo de inatividade, considerando que eu estaria agrupando um banco de dados ao vivo.

Alguém já teve experiência com isso ou sabe de algum guia a seguir? Felicidades:)

    
por bobinabottle 02.05.2010 / 07:41

1 resposta

1

Primeiro, você tem certeza de que o clustering é a resposta para seu problema de desempenho? Você já considerou:

  1. Cache. Se você tem páginas "públicas" que são muito usadas e atingem o banco de dados, o cache de front-end é muito simples de configurar e provavelmente fará maravilhas (pense em httpd + mod_cache)
  2. Otimize seu aplicativo. Eu suponho que você já saiba que seu gargalo é o Postgres. Execute o pgFouine em registros de um dia, localize as principais consultas, indexe-as ou tente evitá-las.
  3. Aprimore o hardware no servidor Postgres. Se você está ligado à CPU (caso raro), talvez uma CPU melhor ou mais núcleos ajudará. Você sempre pode adicionar mais RAM para que mais coisas sejam armazenadas em cache (e certifique-se de usá-las! As configurações de memória padrão do Postgres são muito conservadoras - isso pode ser o seu problema, verifique se você está usando toda a sua RAM). Além disso, uma matriz RAID10 grande o suficiente fará maravilhas ...

Se você quiser configurar o cluster de qualquer maneira - e no Postgres estou inclinado a pensar que deveria ser mais para propósitos de disponibilidade do que para performance- pgpool fornece alguns truques para replicar os bancos de dados com muito pouco tempo de inatividade ( link ).

    
por 02.05.2010 / 12:21