Eu tenho o sistema em execução com baixa utilização de E / S:
- HP DL380G7 (24 gb de RAM)
- Smart Array p410i com cache de gravação com 512 MB de memória
- 6x unidades SAS de 10k rpm 146gb em RAID10
- Debian Squeze linux, ext4 + LVM, hpacucli instalado
iostat (cciss / c0d1 = matriz raid10, partição dm-7 = 60G lvm para teste):
Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz aguardam svctm% util cciss / c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 0,00 0,00 0,00 0,00 cciss / c0d1 0,00 395,20 3,20 130,20 0,18 2,05 34,29 0,04 0,26 0,16 2,08 dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-2 0,00 0,00 3,20 391,00 0,18 1,53 8,87 0,04 0,11 0,05 1,84 dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-4 0,00 0,00 0,00 106,80 0,00 0,42 8,00 0,00 0,00 0,00 0,00 dm-5 0,00 0,00 0,00 0,60 0,00 0,00 8,00 0,00 0,00 0,00 0,00 dm-6 0,00 0,00 0,00 2,80 0,00 0,01 8,00 0,00 0,00 0,00 0,00 dm-1 0,00 0,00 0,00 132,00 0,00 0,52 8,00 0,00 0,02 0,01 0,16 dm-7 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
hpacucli "ctrl tudo mostra a configuração"
Matriz inteligente P410i no slot 0 (incorporado) (sn: 5001438011FF14E0) matriz A (SAS, espaço não utilizado: 0 MB) unidade lógica 1 (136,7 GB, RAID 1, OK) unidade física 1I: 1: 1 (porta 1I: caixa 1: compartimento 1, SAS, 146 GB, OK) unidade física 1I: 1: 2 (porta 1I: caixa 1: compartimento 2, SAS, 146 GB, OK) matriz B (SAS, espaço não utilizado: 0 MB) unidade lógica 2 (410,1 GB, RAID 1 + 0, OK) unidade física 1I: 1: 3 (porta 1I: caixa 1: compartimento 3, SAS, 146 GB, OK) unidade física 1I: 1: 4 (porta 1I: caixa 1: compartimento 4, SAS, 146 GB, OK) unidade física 2I: 1: 5 (porta 2I: caixa 1: compartimento 5, SAS, 146 GB, OK) unidade física 2I: 1: 6 (porta 2I: caixa 1: compartimento 6, SAS, 146 GB, OK) unidade física 2I: 1: 7 (porta 2I: caixa 1: compartimento 7, SAS, 146 GB, OK) unidade física 2I: 1: 8 (porta 2I: caixa 1: compartimento 8, SAS, 146 GB, OK) SEP (ID do fornecedor PMCSIERA, Modelo SRC 8x6G) 250 (WWID: 5001438011FF14EF)
hpacucli "ctrl all show status"
Matriz inteligente P410i no slot 0 (incorporado) Status do Controlador: OK Status do cache: OK Status da bateria / capacitor: OK
Comando Sysbench
sysbench --init-rng = on --test = fileio --num-threads = 16 --file-num = 128 --file-size-block = 4K --file-total-size = 54G --file-test -mode = rndrd --file-fsync-freq = 0 --file-fsync-end = execução incorreta --max-orders = 30000
Resultados Sysbench
sysbench 0.4.12: benchmark de avaliação de sistema multiencadeado Executando o teste com as seguintes opções: Número de threads: 16 Inicializando o gerador de números aleatórios a partir do timer. Sinalizadores abertos de arquivo extra: 0 128 arquivos, 432Mb cada Tamanho total do arquivo de 54Gb Tamanho do bloco 4Kb Número de pedidos aleatórios para IO aleatório: 30000 Taxa de leitura / gravação para o teste IO aleatório combinado: 1,50 Usando o modo de E / S síncrona Fazendo teste de leitura aleatória Tópicos iniciados! Feito. Operações realizadas: 30000 Leitura, 0 Gravação, 0 Outros = 30000 Total Leitura 117.19Mb Gravado 0b Total transferido 117.19Mb (935.71Kb / s) 233.93 Solicitações / s executadas Resumo da execução do teste: tempo total: 128.2455s número total de eventos: 30000 tempo total gasto pela execução do evento: 2051.5525 estatísticas por solicitação: min: 0.00ms média: 68.39ms max: 2010.15ms Aproximadamente. Percentil 95: 660.40ms Segura a justiça: eventos (avg / stddev): 1875.0000 / 111.75 tempo de execução (avg / stddev): 128.2220 / 0.02
iostat durante o teste
avg-cpu:% user% nice% system% iowait% steal% ocioso 0,00 0,01 0,10 31,03 0,00 68,86 Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz aguardam svctm% util cciss / c0d0 0,00 0,10 0,00 0,60 0,00 0,00 9,33 0,00 0,00 0,00 0,00 cciss / c0d1 0,00 46,30 208,50 1,30 0,82 0,10 8,99 29,03 119,75 4,77 100,00 dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-2 0,00 0,00 0,00 51,60 0,00 0,20 8,00 49,72 877,26 19,38 100,00 dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-4 0,00 0,00 0,00 0,70 0,00 0,00 8,00 0,00 0,00 0,00 0,00 dm-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-6 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00 dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00 dm-7 0,00 0,00 208,50 0,00 0,82 0,00 8,04 25,00 75,29 4,80 100,00 dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Bonnie ++ v1.96
cmd: / usr / sbin / bonnie ++ -c 16 -n 0 Escrevendo um byte de cada vez ... feito Escrevendo de forma inteligente ... feito Reescrevendo ... concluído Lendo um byte de cada vez ... feito Leitura inteligente ... feito inicie-os ... pronto ... pronto ... pronto ... pronto ... pronto ... Versão 1.96 ------ Saída sequencial ------ - Entrada equivalente - - Random- Simultaneidade 16 -Por Chr- --Bloco-- -Rescreva- -Por Chr- --Block-- --Seeks-- Tamanho da máquina K / seg% CP K / seg% CP K / seg% CP K / seg% CP K / seg% CP / seg% CP seo-db 48304M 819 99 188274 17 98395 8 2652 78 201280 8 265,2 1 Latência 14899us 726ms 15194ms 100ms 122ms 665ms 1.96,1.96, seo-db, 16,1337541936,48304M ,, 819,99,188274,17,98395,8,2652,78,201280,8,265.2,1 ,,,,,,,,,,,,,,, ,,,, 14899us, 726ms, 15194ms, 100ms, 122ms, 665ms ,,,,,,
Questões
Assim, o sysbench mostrou 234 leituras aleatórias por segundo.
Espero que seja pelo menos 400.
Qual pode ser o gargalo? LVM?
Outro sistema com unidades mdadm raid1 + 2x 7200rpm mostra mais de 200 leituras aleatórias por segundo ...
Obrigado por qualquer ajuda!
debian
lvm
hp
performance
hp-smart-array
Oleg Golovanov
fonte
fonte
sysbench
linha de comando específica ? Você está simulando um cenário de uso no mundo real?Respostas:
Seu sistema está definitivamente com baixo desempenho, com base nas especificações de hardware. Carreguei o
sysbench
utilitário em alguns servidores ociosos HP ProLiant DL380 G6 / G7 executando o CentOS 5/6 para verificar seu desempenho. Estas são partições fixas normais em vez de LVM. (Normalmente não uso LVM, devido à flexibilidade oferecida pelos controladores HP Smart Array)O DL380 G6 possui uma matriz RAID 1 + 0 de 6 discos em um controlador Smart Array P410 com 512 MB de cache com bateria. O DL380 G7 possui um array SSD SLC corporativo de 2 discos. Os sistemas de arquivos são XFS . Eu usei a mesma linha de comando sysbench que você:
Meus resultados foram 1595 leituras aleatórias por segundo em 6 discos.
No SSD, o resultado foi 39047 leituras aleatórias por segundo . Os resultados completos estão no final deste post ...
Quanto à sua configuração, a primeira coisa que me impressiona é o tamanho da sua partição de teste. Você está quase enchendo a partição de 60 GB com 54 GB de arquivos de teste. Não tenho certeza se o ext4 tem um problema com desempenho acima de 90%, mas essa é a coisa mais rápida para você modificar e testar novamente. (ou use um conjunto menor de dados de teste)
Mesmo com o LVM, existem algumas opções de ajuste disponíveis nesta configuração de controlador / disco. Verificar a leitura antecipada e alterar a configuração do planejador de E / S do cfq padrão para deadline ou noop é útil. Consulte a pergunta e as respostas em: Linux - ajuste do controlador RAID de hardware do mundo real (scsi e cciss)
Qual é a sua taxa de cache do controlador RAID? Normalmente, uso um saldo de gravação / leitura de 75% / 25%. Este deve ser um teste rápido. A matriz de 6 discos foi concluída em 18 segundos. O seu levou mais de 2 minutos.
Você pode executar um teste bonnie ++ ou iozone na partição / matriz em questão? Seria útil verificar se existem outros gargalos no sistema. Eu não estava familiarizado com o sysbench , mas acho que essas outras ferramentas fornecerão uma melhor visão geral dos recursos do sistema.
As opções de montagem do sistema de arquivos podem fazer uma pequena diferença, mas acho que o problema pode ser mais profundo do que isso ...
saída hpacucli ...
sysbench DL380 G6 resultados de 6 discos ...
sysbench DL380 G7 SSD resultados ...
fonte
bonnie++
linha de comando?deadline
também ... Em cargas de banco de dados, ele pode funcionar melhor do quenoop
, além disso, existem alguns ajustes adicionais no seu,/sys/block/cciss1/queue/iosched/
se você usardeadline
. Consulte esta publicação para obter mais detalhes sobre o ajuste mais preciso. Consegui fazer esse teste até 2600 leituras aleatórias / segundo ao fazer isso.