Aceleração de E / S do banco de dados usando unidades de estado sólido

3

Qual é a experiência de melhorar o desempenho do banco de dados usando unidades de estado sólido (especialmente para bancos de dados PostgreSQL), como o Acelerador de IO da HP? ? Você viu alguma melhoria marcada?

    
por Peter Mortensen 31.12.2010 / 17:29

3 respostas

6

Aqui está uma ótima postagem no blog com muitos links de pesquisa e dados de James Hamilton, um arquiteto da Microsoft com quem eu costumava trabalhar.

SSD versus discos Enterprise SATA e SAS

Eu discuti isso brevemente com Richard e Carl em uma gravação do .NET Rocks na terça-feira. Se você tem um afunilamento de E / S com uma carga de trabalho de leitura aleatória, o uso de SSDs deve dar um grande impulso ao nivelar a latência e o tempo de busca.

Espero que isso ajude

[Edit: PS, é claro que meu data / viewpoint está em torno do SQL Server, mas um subsistema IO é um subsistema IO, e os resultados devem traduzir bastante bem em qualquer RDBMS principal]]

    
por 05.06.2009 / 18:13
1

Para esclarecer alguns dos pontos já mencionados:

Os drives MLC armazenam mais dados por célula, o que aumenta ligeiramente a latência de gravação. Eles também têm significativamente menor (tipicamente 1 / 10th) a contagem de ciclo de gravação esperada de unidades SLC. Para qualquer coisa relacionada a empresa, eu ficaria bem longe das unidades MLC.

Com relação à vida útil de uma unidade, todos os SSDs usam algoritmos de nivelamento de desgaste para equilibrar as áreas de gravação a quente. Algumas unidades mantêm a área sobressalente do flash para uso interno (o Intel X25-E faz isso e a unidade FusionIO permite determinar a área reservada quando você particiona a unidade), o que amplia a capacidade de gravação - se você tiver 80 GB de flash para usar o nível de 60 GB de partição, sua unidade dura mais tempo.

Todos os SSDs também exigem um ciclo de apagamento antes que um bloco possa ser sobrescrito. (Os blocos não são apagados quando um arquivo é excluído, já que a exclusão de um arquivo é uma operação FS e o dispositivo de bloco não o vê). Isso pode causar um impacto enorme no desempenho durante períodos de gravação pesados para unidades com controladores ruins, pois essa operação pode demorar um pouco e, em alguns casos, bloquear o acesso. As unidades Intel, acredito, utilizam seu flash sobressalente para acelerar isso - elas usam flash sobressalente para fornecer um bloco limpo para gravação e, em seguida, apagam o bloco sujo e o movem para o pool sobressalente em segundo plano. Há um novo comando ATA TRIM que está sendo implementado em unidades mais recentes, com suporte vindo do linux e do windows 7, o que permitirá que o SO dispare uma limpeza em segundo plano de todos os blocos sujos, o que melhorará o desempenho.

A "degradação do desempenho" de longo prazo dos SSDs é geralmente em referência ao ciclo de exclusão / gravação mencionado acima, portanto, unidades decentes e o comando TRIM devem essencialmente eliminar isso como um problema.

Se você for obter SSDs para um sistema corporativo, faça a pesquisa e obtenha somente unidades SLC de boa qualidade no nível corporativo. O Intel X25-E (não -M, são unidades de desktop) e os drives Fusion-IO são os únicos que eu recomendaria neste estágio.

    
por 06.06.2009 / 01:47
0

Fizemos um benchmarking da Oracle com um cartão Fusion IO. Foi bem rápido.

Levamos um dos nossos processos de 35 minutos a 11 minutos.

Não era uma unidade SSD em si, mas uma placa PCI com memória NAND.

O tipo SLC é supostamente melhor que o tipo MLC.

Infelizmente, apenas o SO de 64 bits é suportado, portanto, é necessário migrar 32 bits ou esperar por um driver de 32 bits (do Fusion IO).

    
por 05.06.2009 / 18:12