Novo RAID hdparm lento

3

Acabei de receber um HP DL180 G6 com unidades SAS de 25X 146 GB de 15K, 36 GB de RAM, 2 X 2.0 GHz Xeon 1333 Mhz FSB. Por diversão, eu os configurei em um único RAID 0 e instalei o Ubuntu nele para ver o quão rápido ele poderia ficar com 25 drives em um controlador HP Smart Array P410 com 512MB de RAM.

Quando eu corri hdparm -tT / dev / mapper / concorde - vg-root eu recebo

Timing cached reads:   5658MB in  1.99 seconds = 2834.13 MB/sec
Timing buffered disk reads: 1192 MB in  3.00 seconds = 397.13 MB/sec

Quando eu executo o mesmo comando no meu outro servidor (HP DL360 G5 - 32GB de RAM - 2X 2,66GHz 667Mhz FSB) que só tem 4X 15K unidades eu recebo:

Timing cached reads:   13268 MB in  1.99 seconds = 6665.18 MB/sec
Timing buffered disk reads: 712 MB in  3.00 seconds = 237.17 MB/sec

Eu teria esperado que isso fosse executado 5 vezes mais rápido que o antigo, não mais lento. O servidor destina-se a fornecer streaming de mídia e, portanto, eu preciso de acesso super rápido e transferência para manter-se com 2 portas de rede de 1Gb Espero que o máximo de vezes, juntamente com a realização de outras tarefas.

Eu apenas montei um monte de cópias de um arquivo MP4 de 400MB para obter 45GB para copiar de um diretório para outro e levou 96 segundos, o que parece errado para tudo que eu já ouvi sobre o aumento de desempenho do RAID 0.

Ele é configurado como uma invasão de hardware. Há alguma coisa que eu precise fazer no Linux para aproveitar a velocidade extra que deveria estar lá? Importa qual sabor do Linux eu uso? Estou confortável com o CentOS e o Ubuntu, mas poderia fazer outros, se necessário.

Existe um comando diferente que devo usar para medir o desempenho? Eu tentei usar iotop e iostat ontem para monitorar o uso de RAID e não consegui relatar qualquer uso enquanto copiava arquivos de 2GB em FTP, então fiquei meio que tentando definir um benchmark, comparando seu desempenho entre servidores e monitorando-o, então saber quando os discos rígidos estão maximizando e precisam ser substituídos por SSD.

    
por Alan 31.12.2014 / 21:04

2 respostas

8

Uau ... há muito o que abordar aqui.

  • O desempenho do disco não é apenas sobre o rendimento. Há a noção de IOPS e latência e tempos de serviço a serem enfrentados. A maioria das cargas de trabalho é um pouco aleatória, portanto, 25 discos corporativos em uma matriz sempre superarão 4 discos de uma perspectiva de IOPS.

  • hdparm não é a ferramenta certa para avaliar o armazenamento corporativo. Procure programas criados especificamente para o efeito, como iozone e fio .

Um exemplo de comando iozone que pode ser útil para você é ( executado a partir de um diretório grande na matriz de disco que você deseja testar ): iozone -t1 -i0 -i1 -i2 -r1m -s72g

  • O design desse servidor significa que o backplane do seu disco está com excesso de assinaturas. Há um chip expansor no servidor e esses 25 discos compartilham uma conexão de 6 Gbps de 4 vias com o controlador RAID. Isso significa que você tem um throughput máximo teórico de 24Gbps (ou 3.000 Megabytes / segundo) para o array. Isso é um teto, e você não verá o desempenho além desse ponto.

  • O Ubuntu quase nunca é a melhor opção quando se trata de drivers de hardware e suporte. Não é oficialmente suportado pelo servidor. O CentOS ou RHEL seria um melhor ajuste para este hardware.

  • Os controladores HP Smart Array têm a capacidade de dividir um grupo de discos (uma matriz) em várias unidades lógicas com diferentes níveis de capacidade e RAID. O exemplo abaixo mostra uma matriz de 4 discos gravada em três unidades lógicas. Uma das unidades lógicas é configurada com um nível de RAID diferente dos outros.

Smart Array P420i in Slot 0 (Embedded) (sn: 0014380296200A0)

  logicaldrive 1 (72.0 GB, RAID 1+0, OK)
  logicaldrive 2 (1024.0 GB, RAID 1+0, OK)
  logicaldrive 3 (869.1 GB, RAID 5, OK)

  physicaldrive 1I:2:1 (port 1I:box 2:bay 1, SAS, 900.1 GB, OK)
  physicaldrive 1I:2:2 (port 1I:box 2:bay 2, SAS, 900.1 GB, OK)
  physicaldrive 1I:2:3 (port 1I:box 2:bay 3, SAS, 900.1 GB, OK)
  physicaldrive 1I:2:4 (port 1I:box 2:bay 4, SAS, 900.1 GB, OK)
  • Em nenhum momento você deve usar RAID 0 para uma unidade lógica aqui. Se você puder poupar o espaço, o RAID 1 + 0 funcionará muito bem com essa combinação de hardware.

  • Você tem o LVM no lugar. Essa não é a melhor abordagem ao trabalhar com esses controladores HP Smart Array RAID. É uma camada adicional de abstração e você não verá o melhor desempenho (embora possa ser ajustado para funcionar bem).

  • Firmware. Você vai querer atualizar o firmware do servidor e os componentes relacionados. A funcionalidade melhora com cada revisão de firmware do controlador HP RAID.

  • Configuração do cache RAID. Certifique-se de que a bateria RAID esteja íntegra e que o equilíbrio de leitura / gravação do cache seja adequado à sua carga de trabalho.

  • Escolha do sistema de arquivos. O XFS é uma boa opção para streaming de mídia. Mas as taxas que você está pedindo são relativamente baixas. Qualquer sistema de arquivos moderno do Linux deve estar bem.

por 31.12.2014 / 23:03
1

Uma coisa que aparece em mim é o baixo througput em cache no novo servidor, o que indica que você tem um afunilamento de RAM. Você mencionou que tem 36 GB de memória RAM, o que é um pouco estranho. Eu estou apostando que você não instalou o RAM em pares (ou 3x se este cpu / board é capaz de triplamente intercalar, como eu suspeito que seja), e assim o RAM não é intercalado corretamente. Você pode executar memtest86+ para obter uma boa medição da taxa de transferência de memória.

Quanto à taxa de transferência de E / S real, para uma matriz tão grande, provavelmente você não está enviando solicitações suficientes para ela. hdparm apenas lê 2 MiB por vez, portanto, se a matriz estiver usando um fator de distribuição de 512k, isso manterá apenas 4 das unidades ocupadas por vez. Para outros comandos como dd , isso depende do tamanho do readahead e o tamanho padrão do readahead é de apenas 128 kb. Tente usar dd em vez de hdparm (sem iflag=direct ) e aumente o fator de leitura antecipada em / sys / block / dm-X / queue / read_ahead_kb para garantir que o kernel envie solicitações grandes o suficiente para manter todas as unidades ocupado, ou se você usar iflag=direct com dd , certifique-se de usar um valor muito grande para bs= , como 32MiB, e então a configuração readahead do kernel não importa.

    
por 01.01.2015 / 06:36