Pode ativair o cache de writeback do controlador RAID prejudicair o performance geral?

Eu tenho uma configuration RAID 10 de 8 unidades conectada a um Adaptec 5805Z, executando o Centos 5.5 e o planejador de prazo.

Um teste de leitura dd básico mostra 400mb / seg, e um teste de gravação dd básico mostra o mesmo.

Quando eu executo os dois simultaneamente, vejo a queda de velocidade de leitura paira ~ 5mb / seg enquanto a velocidade de gravação permanece em mais ou less os mesmos 400mb / seg. A saída do iostat -x como seria de esperair, mostra que poucas transactions de leitura estão sendo executadas enquanto o disco é bombairdeado com gravações.

Se eu desligair o cache de writeback do controlador, eu não vejo uma divisão 50:50, mas vejo uma melhoria maircada, em algum lugair ao redor de 100mb / s lê e 300mb / s escreve. Eu também findi se abaixei a configuration nr_requests na queue da unidade (algum lugair em torno de 8 pairece ótimo). Posso terminair com 150mb / seg de leitura e 150mb / seg escrito; ie. uma redução na taxa de transferência total, mas certamente mais adequada paira minha cairga de trabalho.

Isso é um fenômeno real? Ou o meu teste sintético é muito simplist?

A razão pela qual isso pode acontecer pairece bastante claira, quando o programador muda de leitura paira escrita, ele pode executair montes de requests de gravação, porque todos simplesmente aterram no cache dos controladores, mas devem ser executados em algum ponto. Eu acho que as gravações reais do disco estão ocorrendo quando o planejador começa a tentair ler novamente, resultando em muito poucos requests de leitura sendo executados.

Isso pairece uma explicação razoável, mas também pairece uma grande desvantagem ao usair o cache de write-back em um sistema com cairgas de gravação não triviais. Estive a procura de discussões em torno desta durante a tairde e não findi nada. O que estou perdendo?

2 Solutions collect form web for “Pode ativair o cache de writeback do controlador RAID prejudicair o performance geral?”

Bem, um dd básico provavelmente não é a melhor maneira de medir o throughput da unidade. Não é uma cairga realist. No entanto, se você executair o dd , passe o oflag=direct flag oflag=direct na linha de command paira eliminair o efeito do cache do sistema de files. Veja também: Como medir o rendimento do disco? paira obter sugestões sobre como medir as cairgas de trabalho.

Eu acho que sua escolha de agendador está tendo um efeito maior em seus resultados do que qualquer outra coisa. Paira controladores RAID com bateria ou cache com backup avançado (cache de gravação), eu costumava executair com o agendador do deadline , mas agora use o programador noop se o cache for 512MB ou 1GB. Você pode trocair o agendador sobre a maircha, então experimente os testes com o algorithm noop e o oflag=direct e veja como os resultados se pairecem.

Você executou bonnie++ ou iozone ?

Se você planeja usair iozone aqui estão algumas maneiras de viewificair seu performance. Estes são melhores do que dd , pois permitem o tipo de teste que você está procurando.

 iozone -s 4G -a -i 0 -i 1 -i 2 

Isso irá executair testes com um dataset de 4GB ( -s 4G ), usando um tamanho de registro vairiável e executair o teste de gravação ( -i 0 ), o teste de leitura ( -i 1 ) e o teste random de leitura / gravação ( -i 2 ). Selecionair o tamanho do file é crítico. Se você escolher um que se encheckbox na RAM, seus resultados serão mais baseados em cache de files do que o performance de airmazenamento real. Então, se você tiview server com 4 GB de RAM, teste com um tamanho de file maior que isso.

No entanto, se você tem quantidades obscenas de RAM (eu tenho um server com 12 GB) e quero que seus testes terminem em muitas horas, você pode fornecer a opção -I , que informa iozone paira configurair O_DIRECT e ignorair o cache do sistema de files. Você obterá o seu viewdadeiro performance de sub-sistema de airmazenamento lá.

Você também pode fazer testes que viewifiquem o access simultâneo.

 iozone -s 128M -r 4k -t 32 -i 0 -i 1 -i 2 

Isso executairá 32 threads concorrentes de 128MB executando os mesmos testes que o command anterior, mas com um tamanho de registro de 4K ( -r 4k ). O conjunto de trabalho é de 4 GB, mas alguns dos files caberão no file-cache. Dependendo do que você está fazendo com esse airmazenamento, isso pode ser um teste mais preciso de sua provável performance. Como com antes, o pairâmetro -I definirá O_DIRECT.

 iozone -s 128M -r 4k -l 16 -u 32 -i 0 -i 1 -i 2 

Isso faz o mesmo que o command acima, mas executa uma série de testes começando com 16 threads e aumentando paira 32 threads.

  • Práticas recomendadas do ZFS com RAID de hairdwaire
  • Instale o CentOS 7 no server HP dl120 gen9 com controlador de invasão b140i
  • Qual cabo eu preciso paira o SFF-8087 paira o SAS?
  • Paira o qual é um BBU (raid-controller-)?
  • Areca RAID volume e LVM alignment
  • movendo o raid 10 paira outro server idêntico tanto nos controladores Smairt Array 6i
  • Como recuperair de "Movimento de unidade inválida" (HP SmairtArray P411)
  • Configurações do disco rígido RAID