AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 12977
Accepted
newbie14
newbie14
Asked: 2012-02-14 20:07:55 +0800 CST2012-02-14 20:07:55 +0800 CST 2012-02-14 20:07:55 +0800 CST

O raid 5 é adequado para uma instalação do mysql?

  • 772

O raid 5 é adequado para uma instalação do mysql?

Deixe-me explicar melhor a minha aplicação. Meu aplicativo é uma programação de soquete que se conectará ao dispositivo gps para receber a string gps e depois fará um processamento adicional. A programação do socket será em outro servidor e db em outro servidor. Portanto, durante o processamento posterior, é onde ele consultará o banco de dados. Então aqui eu acho que haverá muitos ritos de i/o. No mínimo, durante o processamento adicional, haverá um mínimo de 5 seleções e a inserção será no mínimo 1, mas às vezes pode ser no mínimo 4 ou mais e também várias atualizações. Espero ter sido mais claro agora.

mysql configuration
  • 5 5 respostas
  • 7104 Views

5 respostas

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2012-02-15T08:40:39+08:002012-02-15T08:40:39+08:00

    Em um ambiente de leitura pesada e baixa gravação em um RAID5, eu deixaria isso para o orçamento, a tolerância e a pressão sanguínea de cada um.

    Em um ambiente de gravação pesada, baixa leitura ou gravação pesada, leitura pesada, o RAID5 está simplesmente fora de questão . Isso é especialmente verdadeiro para o InnoDB. Pense na interação de tabela de um InnoDB.

    InnoDBGenericName

    Se você não usar innodb_file_per_table , OMG toda a atividade seria centrada em apenas um arquivo, ibdata1. O que está contido em ibdata1?

    • Páginas de dados da tabela
    • Tabela Páginas Índice
    • Metadados de tabela para gerenciamento de IDs de TableSpace
    • Dados MVCC (para conformidade ACID e isolamento de transação)

    Mesmo as leituras no InnoDB tendem a cobrir as linhas com proteção MVCC para permitir leituras repetíveis e permitir que as transações atinjam as mesmas linhas que estão sendo lidas. Portanto, leituras e gravações produzem E/S de disco em ibdata1.

    O uso de innodb_file_per_table pode aliviar parte da E/S do disco, separando as páginas Table Data e Index de ibdata1 em .ibdarquivos. No entanto, eu esperaria uma melhoria de desempenho perceptível apenas por um tempo limitado em um ambiente RAID5. A interação da tabela ainda é um pouco a mesma. Todo acesso a um .ibdarquivo é sempre precedido por verificações de referência contra ibdata1.

    Embora a separação possa trazer mudanças significativas de desempenho, o RAID5 seria o que chamam no mundo da química, um reagente limitante. Quaisquer benefícios esperados das alterações de layout do InnoDB seriam neutralizados por fatores externos, como RAID5. A presença de arquivos de espaço de tabela extra devido a innodb_file_per_table não lhe dá nada ao longo do tempo, mas apenas a presença de arquivos de espaço de tabela extra.

    MyISAMGenericName

    Quando se trata de MyISAM, o RAID5 é bom em um ambiente de leitura pesada e baixa gravação, desde que você mapeie todas as tabelas temporárias (usando tmpdir ) para outro disco, separado do RAID5.

    Lembre-se de que as páginas de dados da tabela residem em .MYDarquivos e suas páginas de índice correspondentes residem em .MYIarquivos. Um ambiente de gravação pesada (INSERTs, UPDATEs, DELETEs) obrigará o RAID5 a desacelerar as coisas. Dado o comportamento de bloqueio do MyISAM (bloqueio completo da tabela com cada INSERT, UPDATE e DELETE) em um ambiente de gravação pesada, um fluxo constante de DML manterá o RAID5 bastante ocupado e fará com que os usuários do banco de dados entrem em um breve, mas irritante, time warp esperando por DML completar.

    Conclusão

    Sob o capô, RAID5 tem as seguintes características para escrever com paridade

    • Leia o bloco de dados antigo
    • Leia o antigo bloco de paridade
    • Compare o bloco de dados antigo com a solicitação de gravação. Para cada bit invertido (alterado de 0 para 1 ou de 1 para 0) no bloco de dados, inverta o bit correspondente no bloco de paridade
    • Escreva o novo bloco de dados
    • Escreva o novo bloco de paridade

    Se qualquer uma dessas etapas apresentar a menor intermitência, o conjunto RAID5 entrará em um breve, mas irritante, intervalo de tempo. Multiplique isso por um grande número de gravações e você sentirá isso no desempenho do banco de dados. Cada uma dessas etapas pode ser um ponto de falha. Por quê?

    De acordo com a Wikipédia

    No caso de uma falha do sistema enquanto houver gravações ativas, a paridade de uma faixa pode se tornar inconsistente com os dados. Se isso não for detectado e reparado antes de um disco ou bloco falhar, pode ocorrer perda de dados, pois a paridade incorreta será usada para reconstruir o bloco ausente nessa faixa. Essa vulnerabilidade potencial às vezes é conhecida como buraco de gravação. Cache com bateria e técnicas semelhantes são comumente usadas para reduzir a janela de oportunidade para que isso ocorra.

    Recomendação

    O RAID10 não apenas fornece estabilidade, mas permite alguma margem de manobra na manutenção do disco sem derrubar o mysql na maioria dos casos. Quando os dados são espelhados, você sabe para onde os dados estão indo e de onde os dados estão sendo lidos.

    ATUALIZAÇÃO 2012-02-14 17:55 EDT

    Depois de ler sua atualização de pergunta, eu diria que vá com RAID10. A menos que você não se importe com longos períodos de inatividade, você não pode se dar ao luxo de fazer a manutenção do disco RAID5 em vez da sincronização do disco. Na verdade, quanto menores os discos que você distribuir no RAID10, mais rápido será o tempo de sincronização após a manutenção do disco RAID 10.

    Outras coisas a considerar

    • Ajuste suas consultas
    • Remover índices redundantes
    • Cache o máximo de dados possível
    • Use os índices de cobertura com sabedoria

    Perguntas dessa natureza podem ser postadas no StackOverflow. Você também pode postar essas perguntas no DBA StackExchange.

    • 12
  2. Aaron Bertrand
    2012-02-14T20:49:16+08:002012-02-14T20:49:16+08:00

    Para acesso aleatório, o RAID 10 quase certamente será melhor que o RAID 5 (é claro, mais caro). Se o RAID 5 será rápido o suficiente para sua instalação? Isso vai ser muito difícil para qualquer outra pessoa responder.

    • 4
  3. gbn
    2012-02-15T00:11:25+08:002012-02-15T00:11:25+08:00

    O RAID 5 tem uma alta sobrecarga de gravação devido aos cálculos de paridade. Veja isso e isso . Então, qual carga de gravação você espera?

    Então, você tem RAM suficiente para caber todo o banco de dados na memória? Em caso afirmativo, você não precisa se preocupar muito com a leitura de dados do disco?

    Basicamente, não podemos responder a esta pergunta porque não temos detalhes suficientes...

    • 1
  4. jcisio
    2012-02-15T00:39:24+08:002012-02-15T00:39:24+08:00

    Com a tecnologia atual, a gravação do RAID 5 é tão rápida quanto o RAID 10 (já que os dados de paridade são calculados de forma transparente) em geral. Somente quando o aplicativo é de gravação intensiva, o RAID 10 é melhor.

    A leitura do RAID 5 é um pouco mais lenta que a do RAID 10 porque os dados nem sempre estão nos mesmos discos. Mas, novamente, depende do seu aplicativo que o buffer do disco/SO pode desempenhar um papel importante.

    Então a pergunta é: depende. Suponho que, se você quiser usar o RAID 5, precisará de um tamanho de disco grande (se não, vá com o RAID 10). Em seguida, você pode querer analisar o padrão de consultas do MySQL para saber como ele lê/grava dados, como o cache é executado nesse caso ...

    Por último, mas não menos importante, o RAID 5 é mais arriscado do que o RAID 10 em caso de falha de disco.

    • 1
  5. Rick James
    2015-10-11T17:26:33+08:002015-10-11T17:26:33+08:00

    Mas primeiro vamos decidir quais critérios você está usando:

    • Unidade giratória? ou SSD?
    • Controlador RAID de hardware? ou software do sistema operacional?
    • Cache de gravação com bateria? ou não?
    • Comparando RAID-5 com nenhum RAID? para RAID-10? Para replicação para recuperação? Para DRBD?
    • Ao comparar -5 a -10, você está comparando o mesmo número de unidades? ou a mesma capacidade?
    • Qual é o teu objetivo? Alta disponibilidade? Recuperação de falha de unidade única? Outro?
    • Quanto importa o custo?
    • Gravações rápidas?

    Se for prático, eu optaria por várias máquinas para recuperação de uma falha de unidade ou de sistema. (A Galera distribuída em 3 locais físicos é atualmente a melhor, na minha opinião.)

    Uma máquina e você está preocupado com a falha de uma única unidade - RAID-5 e RAID-10 são praticamente os mesmos.

    Preço por GB com algum tipo de RAID -- Claramente -5 vitórias.

    Gravações -- Tanto -5 quanto -10 provavelmente farão 2 gravações físicas por gravação lógica. -5 precisa escrever o bloco e atualizar a paridade (usando XOR).

    Dispersão de dados -- RAID striping (em -5 e -10) é melhor do que qualquer coisa relacionada ao layout manual de dados versus índice, file_per_table, etc.

    O desempenho de leitura de unidades N na configuração -5 é virtualmente idêntico a unidades N em -10. (Nota: o mesmo N, mas -5 terá maior capacidade.)

    Um controlador RAID de hardware com BBWC fornece gravações "instantâneas", sem risco de perda de dados em uma falha de energia. Então, independentemente dos outros fatores, eu voto nesse.

    (Eu trabalhava para uma grande empresa de Internet na época em que eles tinham milhares de servidores MySQL RAID-5 com hardware BBWC. Nunca ouvi falar de um problema atribuído ao RAID-5.)

    • 0

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve