Tentando determinar o número correto de grupos de alocação XFS para o servidor postgresql no Linux

1

Estou executando um servidor postgres 8.4.5 no kernel linux 2.6.33.7 em um array de raid de 8 discos com um controlador LSI.

A maioria das tabelas tem cerca de 1 GB ou menos.

Eu sei que o XFS usa grupos de alocação (AG) para obter o paralelismo de E / S.

Minha primeira pergunta é: isso significa que, se duas tabelas estão no mesmo AG, todas as solicitações de I / O são enfileiradas para ambas, se alguma delas estiver sendo lida / gravada para?

Em caso afirmativo, suponho que eu gostaria de espalhar minhas tabelas como meus grupos de alocação quanto possível, correto? Isso não garantiria que vários usuários que consultassem diferentes tabelas obtivessem o melhor desempenho?

    
por HBlend 14.01.2011 / 01:51

1 resposta

2

Qual é o tamanho da partição em gigabytes? Eu normalmente divido isso por 4 para determinar o número de grupos de alocação do XFS. Eu encontrei situações em que eu tinha apenas um grupo de alocação e tive problemas com o reparo com um erro indicando que não havia outro AG para se referir ao processo de reparo de arquivo. De qualquer forma, acho que a regra geral é o tamanho da partição / 4. Há algum nível de paralelismo ao executar E / S em vários grupos de alocação. Mas estou supondo que há um retorno decrescente nesse número, portanto, qualquer lugar entre partitionsize / 2 e partitionsize / 4 é razoável.

Portanto, para uma partição de 200GB chamada "partitionname" em / dev / sdb1, provavelmente usaria a seguinte sequência de comandos mkfs.xfs.

mkfs.xfs -f -L /partitionname -d agcount=50 -l size=128m,version=2 /dev/sdb1

Veja também: link

e link onde é indicado:

At least one allocation group is needed per 4 gigs of space...
    
por 14.01.2011 / 02:17