Boa partição para o servidor Postgresql

2

Estou configurando um servidor postgresql dedicado no Ubuntu, usando o RAID 1 de 500GB. Estou pensando se alguém pode compartilhar um esquema de particionamento simples, mas efetivo, que eu possa usar, já que sou muito novo em tudo isso.

    
por user33169 28.01.2010 / 17:21

2 respostas

1

Você não obterá muito benefício de desempenho com o particionamento com um único grande RAID (embora evite grandes dores de cabeça / preenchimento).

Geralmente, eu usaria apenas os padrões do sistema operacional, a menos que você esteja realmente confortável dimensionando as coisas sozinho e apenas tenha certeza de ter um bom pedaço de espaço onde você pretende criar o diretório PGDATA. As sugestões de particionamento do sistema operacional abaixo são o que eu uso em sistemas FreeBSD, provavelmente também é bom para o Ubuntu.

 /                    1GB (or larger)
 [SWAP]               2GB or 2*RAM Size
 /var                 10GB
 /usr                 10GB
 /usr/local           15GB
 /tmp                 2GB
 /home                10GB ("Big enough for home directories")
 -------------------------------------------------------------
 (OS Total)           50 GB
 [PGDATA]             Postgres data directory ("The rest")

(O Ubuntu não pode fazer uso de / usr / local, se não você pode dobrar um pouco disso em / usr)

Re: Particionamento específico do Postgres, se você estiver fazendo isso em um único RAID-1, basta fazer [PGDATA] grande o suficiente para armazenar seus logs de transação e banco de dados, além de alguma área de crescimento.

Se esta é uma caixa de produção e você está esperando muita atividade no DB, o que você quer fazer é separar isso em um monte de RAID-1s para separar a atividade do disco (super-alto volume você pode até considerar dividir através dos controladores).

A Oracle tem muitos bons white papers sobre isso e eu recomendo strongmente roubar seus designs: eles não são simples, mas são eficazes. O esquema de particionamento que eu uso (cada um em seu próprio par de discos) é:

[PGDATA]               5-10GB
[PGDATA]/pg_xlog       5-10GB (More if you expect lots of transaction logs)
[PGDATA]/base          Big enough for your database
[PGDATA]/[Tablespace]  Optional - Separate out "high-traffic" table spaces
[PGDATA]/xlog_archive  Big enough for archived transaction logs & dumps
    
por 28.01.2010 / 17:39
0

Eu tenho um servidor postgresql com alguma atividade interessante entre 600-1000 transações por segundo e meu particionamento é algo assim:

/      - 10GB
swap   - 15GB (I have 8GB RAM)
/var   - 20GB
/home  - 60GB (don't ask why, but I think 60gb is too much for home)
pgdata - 100 GB

De acordo com seus dados, seria interessante se você mergulhasse no particionamento de tabelas, para evitar a varredura de uma tabela enorme, no caso de precisar de uma pequena parte dos dados. Por exemplo, eu uso tabelas particionadas para armazenar logs, então tenho uma tabela mestre chamada logs e tabelas mensais chamadas YYYYMM_logs herdadas do mestre. Então eu uso uma função de gatilho para colocar cada log na tabela particionada correspondente.

    
por 06.07.2012 / 16:48