Existe alguma vantagem em ter mais de 16 GB de RAM em uma máquina de desenvolvedor do Windows?

8

Supondo que uma máquina (Dual Quad Core Xeon (2,26 GHz) com 24 GB de RAM) esteja executando o Windows Server 2008 e o Hyper-V. Quantas VMs posso esperar executar ao mesmo tempo com bom desempenho?

Isso é um exagero? Você pode realmente ter muita RAM?

Supondo 2 GB por VM. São cerca de 16 GB para as VMs, com 8 GB restantes para o SO principal e o Hyper-V.

Parece certo?


Editar:

Eu tentei fazer a pergunta parecer menos como se gabar. Nunca foi minha intenção. É uma pergunta difícil de escrever.

Paulo
fonte
11
Apenas curiosidades .. Que tipo de "dev" você está fazendo? E como isso está realmente relacionado à programação ?!
Miky Dinescu
doode! 16GB de RAM com 8 VMs em uma estação de trabalho?
Byron Whitlock
Isso me faz sentir mal no meu laptop wimpy 512 mb.
Zifre 28/04/09
4
Soa mais como uma viagem de ego do que uma questão dev ... de qualquer maneira eu sou ciumento :)
Robert Gould
11
Eu sei que soa assim, mas estou realmente curioso. Esta não é uma viagem do ego. Se fosse, eu daria especificações completas. Estou falando sério sobre esta questão. É a minha primeira máquina de 64 bits e a maior RAM que eu já tive foi de 4 GB, então quero saber se algo acima de 16 GB é um exagero. Lembro-me do que foi dito sobre 640k. :)

Respostas:

7

"Quero executar cerca de 8 VMs ao mesmo tempo usando o Hyper-V".

Por que diabos você gostaria de fazer uma coisa dessas?

Como é improvável que você consiga carregar o ALL 8 simultaneamente durante o desenvolvimento (exceto, talvez, por um breve teste de carga), provavelmente você pode executar todos os 8VMs em 2Gb e ainda fazer bom uso de todos esses núcleos.

S.Lott
fonte
Para cenários de teste de várias camadas com máquinas SQL Server, Web Server e Client.
3
As 8VMs são complexas demais para testes simples do SQL Server, Web Server.
S.Lott
8 é muito - se apenas 3 ou 4 estavam sendo exercitados ao mesmo tempo, sugiro que escrevesse um código para trabalhar com a API do VMWare - para que você pudesse iniciar / parar um grupo de máquinas, dependendo do teste que está prestes a executar.
Bittercoder 28/04/09
Se não é apropriado, neste caso, o motivo - há muitas razões para usar mais de 16 GB de RAM em uma caixa do Windows; portanto, é uma boa questão geral de desenvolvimento.
Justicle
Não vejo por que 8 é demais. Se você deseja testar um cluster, testar um sistema distribuído, testar um sistema de várias camadas, por que não 8?
nºs
4

Eu tenho algumas máquinas comuns executando o VMware que usamos para testes, integração contínua etc.

Essas máquinas possuem um único processador quad-core e 16 GB de RAM cada - em nossa configuração atual, observamos que:

  • Primeiro estamos ligados à E / S, depois à CPU e a memória não é um problema.
  • O uso do iSCSI e do OpenFiler para hospedar os discos rígidos virtuais em um servidor de arquivos dedicado separado por Ethernet de gigabit duplo ajudou a reduzir custos e melhorar o desempenho em comparação aos discos locais.
  • Os 16 GB de memória são subutilizados em cada máquina, com a maioria das instâncias sendo alocadas apenas entre 512 MB e 2 GB de RAM, e o sistema operacional tem 5 ou 6 GB livres.
  • Pelo custo de uma máquina Xeon dual core com 24 GB de RAM, você pode comprar 2 ou mais máquinas com mais de 4 ou mais mercadorias, cada uma com 16 GB de RAM e uma única CPU quad core (evitar que os FBDIMM possam economizar muito dinheiro) - especialmente porque a redundância não é um problema com uma máquina de teste / desenvolvimento.
  • Ao testar aplicativos / ambientes complexos, geralmente ajuda a ter máquinas virtuais diferentes em ambientes físicos diferentes, para obter um nível realista de latência de rede entre os vários serviços.

Quanto ao uso do seu equipamento para desenvolvimento - a principal preocupação para mim seria a E / S - se você estiver executando tantas máquinas virtuais, verá um impacto negativo nos tempos de acesso ao disco durante o desenvolvimento, o que diminuirá a compilação, etc. incline-se a mudar o maior número possível de máquinas virtuais para uma caixa separada e deixe a máquina do desenvolvedor sem carga, para que a compilação e outras tarefas relacionadas ao desenvolvedor sejam extremamente rápidas.

Postagem do blog sobre minha configuração inicial do ano passado.

Bittercoder
fonte
3

Depende da versão do Windows que você está usando. Aqui estão algumas informações: http://msdn.microsoft.com/en-us/library/aa366778.aspx

O Windows Vista Business de 64 bits e superior e o Windows 2008 Server Standard e superior de 64 bits devem poder endereçar a RAM.

Justicle
fonte
Eu estava pensando em usar o Windows Server 2008 64
3

No Windows de 64 bits, lidar com tanta memória não deve ser um problema. Eu acho que sua maior preocupação seria E / S, com tantas VMs sendo executadas ao mesmo tempo. Sugiro investir em unidades SAS com os RPMs mais rápidos disponíveis para oferecer suporte eficaz a muitas VMs.

Steve Wranovsky
fonte
Acordado. Escolha várias unidades SCSI de 15k ou unidades flash, dependendo das suas necessidades.
Joey Robert
3

Eu tinha uma pergunta semelhante e, em vez de debatê-la em termos teóricos, decidi comprar com a idéia de substituí-la / atualizá-la, se necessário. Acabei com um Core i7 920 com 12 GB de RAM, 2 SSDs Intel de 80 GB (RAID 0), dois HDDs SATA de 1 TB (RAID 1) e um SATA de 1 TB.

Joguei no Windows Server 2008 x64 e hospedei algumas VMs nos meus SSDs. Respostas muito, muito rápidas. (Tenho alguma experiência com VMs e sei que a E / S de disco me consumia hospedando um ambiente de desenvolvedor em uma VM, especialmente ao adicionar o SQL Server aos mesmos eixos.

Eu realmente gostei dessa configuração, mas chegou um playground VM (um Dell 1950 com 32 GB de RAM e uma pequena SAN bacana). Joguei essas VMs junto com algumas outras e carreguei o Windows 7 nos meus SSDs. (Eu senti que podia brincar com meu sistema porque agora estava hospedando algumas VMs independentemente da minha nova estação de trabalho.)

A maior coisa que notei foi o quanto era melhor desenvolver em uma máquina que não fosse VM. Não é tanto a velocidade, mas os efeitos visuais, o antialiasing de fontes, etc. Os SSDs realmente transformaram a E / S em um fator não, mas eles fazem tudo parecer instantâneo. (Além disso, o Windows 7 é bom.)

Sei que terei que reconstruí-lo quando o RTM for lançado, mas tenho VMs nas quais posso trabalhar enquanto estiver sendo reconstruído. Precisarei usar a VPC em vez do Hyper-V para criar VMs com as quais preciso garantir que ninguém mais tenha mexido, mas acho que essa é uma troca razoável.

Em resumo, eu ecoaria os outros que dizem hospedar VMs em um servidor separado, mas gostaria de acrescentar que os SSDs da Intel são muito rápidos. máquinas separadas oferecem mais flexibilidade. Suas unidades são rápidas o suficiente para serem testadas, mas para o trabalho de desenvolvimento, as batidas instantâneas são rápidas.


fonte
1

Como cada VM "possui" sua própria memória no Hyper-V, o número de VMs que você pode hospedar ativamente é limitado pela RAM disponível. Então não pode realmente ter muito.

É claro que o maior gargalo da garrafa de velocidade em uma máquina de desenvolvimento é o disco rígido. Com a RAM extra, você pode configurar uma unidade de RAM que pode ter um enorme benefício de desempenho.

Paul Alexander
fonte
Sim, sem dúvida, eu não mencionei unidades, porque queria que a questão se concentrasse apenas na memória. A memória DDR3 não é barata e, se eu não precisar de 24 GB e 16 GB, tudo bem, vou mostrar as especificações. Esta máquina terá 4 unidades SAS de 15k, por isso acho que são rápidas o suficiente.
1

Você não terá nenhum problema ao lidar com essa RAM, poderá conseguir 20 GB, mas nesse momento poderá obter os 4 GB extras. Por que você está fazendo isso em uma máquina de desenvolvedor? A menos que você seja um show individual, deve haver um servidor central que lide com coisas como esta.

Jared
fonte
É um teste. Vou avaliar essa configuração para que nossa equipe de controle de qualidade faça testes em várias camadas. Após o período de avaliação, provavelmente obteremos uma montagem em rack com especificações semelhantes. Além disso, é uma desculpa para eu experimentar e jogar com VMs, o que geralmente não faço.
1

Se seu cenário é sobre servidor + clientes, uma configuração de várias máquinas seria melhor para simulação e mais barata. As VMs, na verdade, não são iguais aos sistemas operacionais nativos, a segmentação e a criação de perfil são interrompidas; portanto, você estará fora do alvo e, pior, na verdade, não será capaz de criar um perfil de acordo.

Meus 2 centavos

Robert Gould
fonte
11
Latência de rede também pode ser um fator - embora eu acho que testar o seu servidor em uma máquina virtual é muitas vezes valioso nos dias de hoje como muito infra-estrutura está sendo virtualizado no mundo corporativo para reduzir custos ...
Bittercoder
Bom ponto, se você executar o seu servidor em hardware de alguém que é gostar de ser virtualizados de qualquer maneira hoje em dia
Robert Gould
1

Robert,

Se você pretende executar 8 VMs (para dev ou outras) ao mesmo tempo, recomendo explorar as opções de virtualização de servidor oferecidas pelo VMWare. Em geral, a tecnologia de virtualização de servidores é muito mais otimizada e eficiente na utilização de recursos físicos do que a contrapartida da estação de trabalho.

Tive a oportunidade de trabalhar com o VMWare Infrastructure 3 (que é a nomenclatura geral da família de produtos / tecnologias de virtualização de servidores do VMWare) e devo dizer que estou impressionado. A edição do servidor é extremamente eficiente quando comparada à versão da estação de trabalho e oferece uma flexibilidade incrível.

Não tenho experiência com o Hyper-V, mas muitas pessoas que o usaram falam muito bem disso. No entanto, considero o VMWare uma alternativa superior pelo simples fato de permitir criar VMs que executam sistemas operacionais diferentes no mesmo host físico, algo que o Hyper-V não pode fazer (AFAIK)

No que diz respeito à RAM, as limitações da infraestrutura 3 do VMWare ultrapassam os 24 GB e permitem provisionar a memória disponível e até cada núcleo, da maneira que desejar entre seus convidados - desde que os convidados o suportem.

Se você estiver interessado em aprender sobre o VMWare Infrastructure 3, recomendo vivamente este livro , pois contém discussões sobre a arquitetura do servidor VMWAre ESX e considerações técnicas que você dificilmente encontrará em outro lugar.

Espero que você ache isso útil, embora não seja uma resposta direta à sua pergunta e desculpe meu comentário (24 Gb para uma máquina de desenvolvimento parece um pouco fora do comum .. por um tempo, pelo menos)

Miky Dinescu
fonte
11
Obrigado pelo link. Como vou lidar apenas com o Microsoft OS, testarei o Hyper-V, mas lembre-o se precisar explorar além disso. Concordo que 24 GB parece extremo, mas custa apenas US $ 500 - US $ 750 (esqueço exatamente) mais de 12 GB. Daqui a alguns anos, a maioria dos comentários sobre essa questão parecerá singular! ;-)
Eu concordo com a RAM. No entanto, no que diz respeito ao Hyper-V, acho que, no momento, ele funciona apenas com o Win 2K8 e, em nosso cenário, tínhamos algumas ferramentas compatíveis apenas com o 2K3. Talvez você possa compartilhar suas descobertas mais tarde!
Miky Dinescu
0

Estamos executando o Hyper V e hospedando instâncias do Server 2003 e XP na mesma máquina.

--- isso deveria ser uma resposta ao usuário que disse que você não pode hospedar sistemas operacionais diferentes na mesma máquina no Hyper V. Ou é assim que eu leio, de qualquer maneira.


fonte