desempenho iSCSI Openfiler

4

Espero que alguém possa me apontar na direção certa com alguns problemas de desempenho do iSCSI que estou tendo. Estou executando o Openfiler 2.99 em um ProLiant DL360 G5 mais antigo. Processador Dual Xeon, 6 GB de RAM ECC, Intel NIC Gigabit Server, controladora SAS com e 3 unidades SAS 10K em um RAID 5. Quando executo um teste de gravação simples diretamente da caixa, o desempenho é muito bom:

[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.64468 s, 226 MB/s

Então eu criei um LUN, o conectei a outra caixa executando o ESXi 5.1 (Core i7 2600k, RAM de 16GB, Intel Gigabit Server NIC) e criei um novo datastore. Depois que criei o datastore, consegui criar e iniciar uma VM executando o CentOS com 2 GB de RAM e 16 GB de espaço em disco. O sistema operacional foi bem instalado e eu posso usá-lo, mas quando eu fiz o mesmo teste dentro da VM, obtive resultados muito diferentes:

[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 26.8786 s, 39.0 MB/s
[root@localhost ~]#

Ambos os servidores têm novas placas de rede Intel Server e eu tenho Jumbo Frames habilitados no switch, a caixa openfiler, bem como o adaptador VMKernel na caixa ESXi. Eu posso confirmar que isso está configurado corretamente usando o comando vmkping do host ESXi:

~ # vmkping 10.0.0.1 -s 9000
PING 10.0.0.1 (10.0.0.1): 9000 data bytes
9008 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=0.533 ms
9008 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.736 ms
9008 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.570 ms

A única coisa que eu não tentei tanto quanto o trabalho em rede é ligar duas interfaces juntas. Estou aberto a tentar isso no futuro, mas por enquanto estou tentando manter as coisas simples.

Eu sei que esta é uma configuração bem modesta e não estou esperando um desempenho de alto nível, mas gostaria de ver 90-100MB / s. Alguma idéia?

    
por Justin 22.09.2012 / 17:49

1 resposta

5

Você não forneceu a versão do CentOS instalada como convidado do VMWare ... mas vamos supor que seja o CentOS 6.x.

O programador de I / O CFQ é uma má escolha para máquinas virtuais convidadas (e para a maioria dos sistemas). Você vai querer modificá-lo. Eu costumava apenas recomendar o agendamento para o prazo , mas agora há um método mais fácil para os sistemas RHEL / CentOS ...

A melhor maneira de lidar com isso e com alguns outros ajustes é baixar o estrutura ajustada e aplicar um perfil melhor ao sistema.

No seu caso:

yum install tuned tuned-utils

Uma vez instalado, tente um dos perfis apropriados. Para VMs, eu faço enterprise-storage ou virtual-guest . Teste e veja qual funciona melhor para você. Uma reinicialização NÃO é necessária entre alterações de perfil.

tuned-adm profile virtual-guest

O raciocínio:

Editar:

Bem,issoéumamelhoria.Certifique-sedeterasferramentasVMWareinstaladasnoseuconvidado.Outrositensincluemajustedosistemadearquivos(porexemplo,noatime)etal...mas,naverdade,essesresultadosnãodevemimportaralémdeumcertoponto.Umtesteddnãoérepresentativodepadrõesdeusorealistas.

Umadasoutrasferramentasdebenchmarking,como bonnie ++ ou seria mais útil. Agarrá-los via yum .

Como uma máquina virtual, você precisa se preocupar com pequenas leituras e gravações aleatórias. Isso importará muito mais do que as métricas de gravação sequenciais do seu dd test.

    
por 23.09.2012 / 14:33