A forma mais prática de otimizar a performance de I/O é através de um volume RAID. A grande vantagem dos volumes em RAID está no uso de discos normais, sem que o usuário tenha que apelar a tecnologias mais onerosas como SAS 15k ou SSD.
Para ilustrar as diferentes performances que podem ser atingidas em volumes RAID, montamos uma configuração base para de testes :
:: Placa mãe de servidor Intel® S1200V3RPS (Rainbow Pass);
:: Processadores Intel® Xeon® E3-1271V3 (4-Core @ 3.6Ghz HT);
:: 32GB de RAM (populadas através de 4 módulos Kingston® DDR3/1600 ECC);
:: Fonte Nilko® 500W com PFC Ativo
Para montagem dos volumes foram usados de 1 a 4 discos rígidos de mesmo modelo, Seagate® ST3000DM001 (SATA, 64MB de Cache e modo de gravação perpendicular).
Preservando a mesma configuração de servidor como base para todos os testes, chegamos a três simulações de desempenho: Disco único (sem RAID), 02 HDs em RAID-1 (espelho) e, finalmente, 04 HDs em RAID-10 (volume distribuído + espelho).
Sem RAID, usando apenas 1 HD
Empregando apenas 01 disco rígido, sem RAID, o servidor atingiu uma taxa de transferência média de 162.9MB/s (como se vê na imagem abaixo - clique para ampliar).
RAID-1 (espelho), usando 2 HDs
Como a segurança dos dados é fator primordial, a configuração de RAID mais difundida é o espelhamento (mirroring), através do RAID em nível 1.
Nessa montagem, mesmo com a duplicação dos dados visando segurança, o volume atingiu uma taxa de transferência média de 188.3MB/s, demonstrando um incremento de 15% sobre a unidade nominal (como se vê na imagem abaixo - clique para ampliar).
RAID-10 (espelho + distribução), usando 4 HDs
No RAID nível 10 o usuário consegue combinar segurança e performance! O volume é montado através de 4 discos, onde são vistos 2 volumes espelhados e, sobre esses 2 volumes, um nível 0 (zero) de stripe combina o desempenho dos 2 volumes, criando uma matriz com a capacidade dobrada, segurança dos dados e performance de leitura e gravação!
Na configuração com RAID-10 o volume atingiu uma taxa de transferência média de 272.7MB/s (como se vê na imagem abaixo - clique para ampliar), ou seja, um incremento de 44% sobre o volume espelhado e surpreendentes 67% sobre a unidade nominal.
O propósito dessa postagem é apresentar uma solução acessível de performance, uma vez que 4 discos rígidos SATA têm custo altamente eficiente em comparação a unidades SAS ou SSD. Soma-se a isso, a segurança dos dados, já que o RAID-10 embarca a segurança do nível 1 (espelhamento) e, finalmente, em se tratando de equipamentos baseados em placas de servidor Intel, a tecnologia Intel RSTe é um recurso nativo e, portanto, pode ser implementado sem nenhum ônus adicional com controladoras proprietárias.
Dicas de leitura:
Comparando desempenho de SSDs em RAID-0
Performance em RAID-5
Comparando RAID-1 e RAID-10 @ ST3100528AS (2010)
Comparando RAID-1 e RAID-10 @ ST2000DM001 (2014)
Comparando RAID-1 e RAID-10 @ ST4000DM000 (2014)
Boa Tarde amigos,
ResponderExcluirAdorei o blog, muito bom, parabéns.
Estava vendo este poste sobre taxas de transferência e estou com uma grande dúvida em meu servidor, e talvez um de vocês tenha o conhecimento necessário para me responder essa questão.
Tenho um servidor HP ML150 G6 com controla RAID p410 512MB de cache, tenho 4 discos SAS 3.0gbs de 15K em RAID 5.
O sistema operacional é linux, redhat e rodei um programa de teste chamado tiotest, que esta no pacote tiobench.
Os resultados foram os seguintes:
[root@server ~]# tiotest -f 10 /dev/cciss/c0d0p1
Tiotest results for 4 concurrent io threads:
,----------------------------------------------------------------------.
| Item | Time | Rate | Usr CPU | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write 40 MBs | 0.1 s | 334.132 MB/s | 13.4 % | 607.2 % |
| Random Write 16 MBs | 0.1 s | 219.520 MB/s | 5.6 % | 196.7 % |
| Read 40 MBs | 0.0 s | 7458.512 MB/s | 335.6 % | 988.1 % |
| Random Read 16 MBs | 0.0 s | 6260.016 MB/s | 320.5 % | 1041.5 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write | 0.016 ms | 0.065 ms | 0.00000 | 0.00000 |
| Random Write | 0.005 ms | 0.900 ms | 0.00000 | 0.00000 |
| Read | 0.002 ms | 0.036 ms | 0.00000 | 0.00000 |
| Random Read | 0.002 ms | 0.016 ms | 0.00000 | 0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total | 0.007 ms | 0.900 ms | 0.00000 | 0.00000 |
`--------------+-----------------+-----------------+----------+-----------'
Veja que write chegou a 334MB/s, porem o pessoal do sofware me diz que deveria chegar a 900MB/s devido a controladora ter cache.
Isso é possivel?
Grato pela atenção!
Olá Emelicio!
ExcluirQuanto aos resultados do seu teste, nos parecem bastante consistentes e realistas. Já a marca de 900MB/s... Bem distante de uma realidade prática...
Será que não confundiram com taxa de leitura??
Um HDD SAS de 15kRPM entrega por volta de 190MB/s de transferência média quando se trata de uma unidade isolada.
Veja essa postagem, onde temos um volume RAID10 (que tem mais desempenho que o RAID-5) com 4 unidades SATA:
http://www.blog.sinco.net/2014/12/raid1-raid10-st4000dm000.html
Essas 4 unidades atingiram 68% de incremento sobre a unidade única.
Em uma razão bem simplória, seu SAS-15k de +-190MB/s cresceria para +-319MB/s (se fosse RAID-10).
Já nessa outra postagem, conseguimos obter 28% de ganho sobre o MESMO volume de discos, simplesmente usando uma controladora com Processador de I/O e Cache:
http://www.blog.sinco.net/2010/03/performance-em-raid-5.html
Se, novamente de forma simplória, jogarmos 28% sobre o índice de 319MB/s, teríamos por volta de 383MB/s em seu volume RAID-10 de 4 SAS com a controladora de I/O.
Ou seja... Essa sua medição por volta de 334MB/s está parecendo dentro da realidade.
Por que não enxergamos o índice de 900MB/s?
Porque já testamos centenas de cenários diferentes de I/O e, até hoje, quem domina o topo dos benchmarks são os SSDs.
Nessa postagem, por exemplo, temos 4 SSDs em RAID-10 e batemos 713MB/s:
http://www.blog.sinco.net/2014/12/ssd-raid-sv300s37a240g.html
SSDs entregam bem mais desempenho que discos mecânicos (mesmo os 15k) e, diferente dos HDDs, quase não aumentam as taxas de I/O do volume quando usados em uma controladora dedicada (pois seus tempos de acesso tendem a ZERO e, nesse cenário, o cache acaba não ajudando em quase NADA).
Ou seja, se chegamos na marca de 700 com 4 SSDs, acreditamos que seja difícil buscar 900MB/s com discos mecânicos.
[]´s Equipe Sinco.net
Obrigado pela resposta rápida!
ResponderExcluirEntão, realmente, pelos discos nem tem como dar 900MB/s, porem essa pessoa diz que deveria chegar a 900MB/s devido a ter cache, e que os arquivos de teste já ficam diretamente no cache da controladora.
Não sei se isso pode, sei que o cache está funcionado pois se eu desativar ele, a velocidade cai para 18MB/s.
Note que no seu resultado do tiotest a leitura é bem elevada. Isso se dá porque a leitura obteve dados da memória cache.
ExcluirTudo nos parece bem normal... Não enxergo a argumentação desse terceiro.
Como projetamos e fabricamos nossa própria linha de servidores, não temos como aprofundar uma opinião num servidor de terceiros.
Qual a posição da HP com relação a essa dúvida? Eles estão participando dessa discussão?
E o suporte da sua distribuição Linux? É uma versão comercial (com suporte da softwarehouse)? Ou uma versão suportada por comunidade? A engenharia dessa distribuição está participando dessa discussão? Pode haver um driver "especial", já que o pessoal do software diz que precisa obter 900MB/s de escrita.
[]´s Equipe Sinco.net