Por que o particionamento de banco de dados não funcionou? Extrair de thedailywtf.com

1

Link original. link .

Resumo do artigo: O DBA sugere uma abordagem que envolve um particionamento rigoroso, 10 partições por disco (3 discos reais e 3 raid). As estatísticas mostram que o desempenho não é ideal. Então o DBA sugere uma alternativa de 1 partição por disco (com mais discos adicionados). Isso também falha. O sys-admin então configura um único disco, uma única partição e salva o dia.

O tamanho dos discos não foi mencionado, mas dados tamanhos de disco típicos hoje (da ordem de 100 GB), as partições; seria enorme, me surpreende que um único disco com todas as partições superou.

Inicialmente, suspeito que os dados foram segregados e, portanto, leituras mais rápidas. Mas como é que o desempenho não se degradou com o passar do tempo, com todas as inserções e atualizações acontecendo? Vi isso no reddit, mas a explicação foi de longe fuso / prato centrado. Não houve menção no artigo sobre isso. Existe algum outro motivo? Eu só posso imaginar que as tabelas estavam usando uma distribuição hash incorreta causando alocação não uniforme entre os discos (particionamento incorreto); isso aumentaria os tempos de busca. Alguma idéia?

    
por user38311 24.03.2010 / 10:03

4 respostas

1

A coisa toda é idiota, desculpe.

Se você tem 6 discos, pode tentar

  • 3 pares de RAID-1. Cada um com uma partição cada. Primeira partição para system / tempdb, segunda para dados, terceira para logs de transação.

  • 1 par de RAID-1 e um de 4 discos RAID-10. Uma partição cada.

  • Se os dados forem principalmente de leitura, um grande volume RAID-5, com uma partição.

Em qualquer caso, não faz sentido usar o mesmo prato para volumes diferentes.

    
por 27.03.2010 / 19:17
1

Para entender por que uma única partição sempre superará várias partições na mesma unidade (sendo o restante todo igual), você só precisa pensar sobre o que o conjunto principal precisa fazer. Sempre haverá muita movimentação para frente e para trás, mas com várias partições a exigência de mover a montagem será muito maior. Como essa é a parte mais lenta do acesso ao disco, o efeito no desempenho é ótimo.

    
por 04.07.2010 / 06:41
0

A coisa toda de particionamento parece estúpida. Desculpa. o particionamento de dados no mesmo prato (ou seja, vários arquivos em várias partições) não está reduzindo o IO em nenhum meio comparado a ter todos os arquivos em uma partição. Eu também acho engraçado que o DBA não se incomodou em fazer testes de IO com uma ferramenta de teste para verificar o desempenho real da configuração do disco.

Teoricamente, não importa o quão incômodas são, a capacidade de IO dos discos MÚLTIPLOS (e eles estavam comprando-os mais e mais) é sempre muito maior que a de um único disco - então algo é realmente suspeito aqui. Não estou dizendo que o artigo está errado - apenas sinto falta das peças para colocar algum raciocínio no mau desempenho.

    
por 24.03.2010 / 10:15
0

Há muitas informações ausentes no artigo, mas parece-me que o DBA achou que ele estava tentando apresentar o banco de dados com um dispositivo de bloco (vs. um sistema de arquivos), mas estava fazendo isso em algum tipo de SAN ou outro dispositivo de armazenamento compartilhado. Infelizmente, ele também era um idiota.

Talvez o "Certified DBA" seja um refugiado do AS / 400 ou AIX ... As ferramentas IBM sysadmin costumavam permitir que você designasse armazenamento com base na localização física no disco.

Eu costumava fazer isso (corretamente) há uma década com bancos de dados Informix em caixas Sun quando meu empregador era muito barato para comprar o Veritas Filesystem. Quando o sistema ficou inativo, ter o banco de dados gerenciando o disco evitaria mais de 4 horas de execução do fsck do UFS.

    
por 03.07.2010 / 23:16