Seu sistema está definitivamente com desempenho ruim com base nas especificações do seu hardware. Carreguei o utilitário sysbench
em alguns servidores HP ProLiant DL380 G6 / G7 inativos executando o CentOS 5/6 para verificar seu desempenho. Estas são partições fixas normais em vez de LVM. (Eu normalmente não uso o 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 de bateria. O DL380 G7 possui um array SLC SSD corporativo de 2 discos. Os sistemas de arquivos são XFS . Eu usei a mesma linha de comando do sysbench como você fez:
sysbench --init-rng=on --test=fileio --num-threads=16 --file-num=128 --file-block-size=4K --file-total-size=54G --file-test-mode=rndrd --file-fsync-freq=0 --file-fsync-end=off --max-requests=30000 run
Meus resultados foram 1595 leituras por segundo aleatórias 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 salta para mim é o tamanho da sua partição de teste. Você está quase preenchendo a partição de 60 GB com 54 GB de arquivos de teste. Não tenho certeza se o ext4 tem um problema com 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. Verificando a leitura antecipada e alterando a configuração Agendador de E / S do padrão cfq para prazo ou noop é útil. Por favor, veja a pergunta e as respostas em: Linux - real- ajuste de controlador RAID de hardware mundial (scsi e cciss)
-
Qual é a sua taxa de cache do controlador RAID? Eu normalmente uso um equilíbrio de escrita / leitura de 75% / 25%. Este deve ser um teste rápido. A matriz de 6 discos foi concluída em 18 segundos. Seu levou mais de 2 minutos.
-
Você pode executar um bonnie ++ ou iozone testa na partição / array em questão? Seria útil ver se existem outros afunilamentos no sistema. Eu não estava familiarizado com o sysbench , mas acho que essas outras ferramentas lhe darão uma visão geral das capacidades 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 ...
Smart Array P410i in Slot 0 (Embedded) (sn: 50123456789ABCDE)
array A (SAS, Unused Space: 0 MB)
logicaldrive 1 (838.1 GB, RAID 1+0, OK)
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)
SEP (Vendor ID PMCSIERA, Model SRC 8x6G) 250 (WWID: 50123456789ABCED)
Resultados do disco 6 do sysbench DL380 G6 ...
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.
Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.
Operations performed: 30001 Read, 0 Write, 0 Other = 30001 Total
Read 117.19Mb Written 0b Total transferred 117.19Mb (6.2292Mb/sec)
1594.67 Requests/sec executed
Test execution summary:
total time: 18.8133s
total number of events: 30001
total time taken by event execution: 300.7545
per-request statistics:
min: 0.00ms
avg: 10.02ms
max: 277.41ms
approx. 95 percentile: 25.58ms
Threads fairness:
events (avg/stddev): 1875.0625/41.46
execution time (avg/stddev): 18.7972/0.01
Resultados SSD sysbench DL380 G7 ...
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.
Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.
Operations performed: 30038 Read, 0 Write, 0 Other = 30038 Total
Read 117.34Mb Written 0b Total transferred 117.34Mb (152.53Mb/sec)
39046.89 Requests/sec executed
Test execution summary:
total time: 0.7693s
total number of events: 30038
total time taken by event execution: 12.2631
per-request statistics:
min: 0.00ms
avg: 0.41ms
max: 1.89ms
approx. 95 percentile: 0.57ms
Threads fairness:
events (avg/stddev): 1877.3750/15.59
execution time (avg/stddev): 0.7664/0.00