Pergunta

A virtualização de servidores é uma grande coisa nos dias de hoje, por isso estou encarregado no trabalho para instalar algum do nosso software em um servidor virtualizado e ver o que acontece. Para encurtar a história: a transferência rsync traz imediatamente o servidor virtualizado de joelhos. O hospedeiro é uma máquina de virtualização robusto com nenhuma outra carga; Eu não acho que isso deve estar acontecendo. Top mostra médias de alta carga, e cpu iowait perto de 100%. Há uma enorme em algum gargalo.

Eu sou mais um programador do que um administrador de sistema, me falta o conhecimento sobre como proceder para corrigi esta fora de forma aleatória pesquisando. Eu suspeito que não estou sozinho nesta.

O que eu gostaria de ver aqui é um conselho geral sobre virtualização e ponteiros para bons artigos e outros recursos, que eu e outros poderiam usar para nos educar.

  • Que ferramentas (mesmo Ferramentas padrão do Unix) pode ser usado para gargalos pontuais?
  • O métricas devem ser seguidas para garantir as coisas funcionam bem?
  • Que tipo de coisas pode ser eficientemente virtualizado?
  • Que tipo de configurações estão condenadas ao fracasso?

Peço desculpas a amplitude da questão. Eu simplesmente não têm o conhecimento necessário para fazer perguntas específicas úteis sobre isso.

Edit: Mais sobre o meu problema específico:

  • paravirtualização XAN, 3 x CentOS hóspedes
  • Todos os hóspedes em discos SCSI locais, há um raid de hardware totalmente controlador
  • rsyncd correndo em 1 sistema operacional convidado, a transferência iniciada a partir de um servidor remoto não virtualizado através de 100Mbps LAN

Como eu disse antes, eu realmente não pode fornecer uma tonelada de dados úteis. Eu realmente não estou esperando para obter uma solução directa para este problema, eu ficaria feliz com dicas sobre onde começar a construir o conjunto de habilidades necessárias para entender melhor esses tipos de problemas.

Foi útil?

Solução

Eu ia colocar isso em um comentário, mas eu acho que é mais útil no aberto:

Você pode adicionar mais detalhes sobre sua configuração:

  • servidor que VM?
    (VMware Server, VMware ESX, MS VirtualServer, MS Hyper-V, outra coisa?)
  • qual sistema operacional para o hóspede (s)?
    (Windows, Linux, de 32 bits, 64 bits?)
  • Onde estão as de hóspedes (s) armazenada?
    (Disco local, ou em um NAS ou SAN?)
  • Você estava rsyncing entre os hóspedes no mesmo servidor VM, ou entre um convidado e um servidor físico?
  • Se através de uma rede, o quão rápido é a rede?

O ajuste de desempenho em qualquer ambiente é de 90% a coleta de dados e análise de 10%. ambientes virtualizados têm mais variáveis ??a considerar que os ambientes físicos, mas mais importante, eles têm uma curva de resposta diferente do que ambientes físicos. Alguns aplicativos podem ter um melhor desempenho em um ambiente virtualizado de um ambiente físico; outros não. Você tem que entender os requisitos da aplicação, bem como restrições da implementação.

Eu não acredito que existam aplicativos somente de software que não pode ser implantado com sucesso em servidores virtuais, se você prestar atenção aos detalhes. (Aplicativos que exigem hardware personalizado que não podem ser virtualizados com sucesso é um problema diferente.)

Outras dicas

Eu uso o rsync para manter algumas partes do nosso (muito novo) ambiente virtual em sincronia sem quaisquer problemas. Eu não acho que é uma questão de virtualização, tanto quanto é uma questão de I / O, que você parece já ter identificado.

Eu descobri que a virtualização é muito, muito desgastante para discos rígidos, e isso só piora as mais convidados que você tem na caixa de host. Para máquinas que são muito I / O intensivo, considere segmentar o seu acesso ao disco longe dos outros hosts. Você está usando qualquer tipo de tecnologia SAN? Descobrimos que ser muito útil no meu trabalho (estamos usando dois servidores Sun Intel 8-core e uma matriz iSCSI 1TB 12 de disco).

O seu hardware totalmente suportado pelo fornecedor de software de virtualização? Se você está tentando ser executado em hardware não suportado, em seguida, há uma boa chance de que o controlador de disco não vai estar usando os melhores pilotos, o que explicaria os seus acessos ao disco lentas.

Você pode usar iostat em Linux / Unix para obter algum feedback sobre o I / O, e há iotop também, embora ele não está embalado em muitas distros ainda.

Off mão, eu diria que este é um problema I / O. Em ambientes virtuais em um dos maiores fatores que afeta o desempenho é o estado do disco da máquina host. As coisas que podemos fazer para otimizar o desempenho são:

  1. alocação de disco fixo. Dessa forma você obtém um bloco contíguo de espaço em disco para o VM para se viver.
  2. Marcar desfragmentação do VM Fatia OS ea unidade do servidor host. A fragmentação é seu inimigo.
  3. Certifique-se de que você está terminando um sessões de servidor graciosamente. Quando saltando o sistema operacional virtual, não basta desligar a fatia VM, pois isso causa enorme fragmentação do disco. As necessidades do sistema operacional virtuais para executar o desligamento / processo de reinicialização.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top