Y a-t-il un avantage à avoir plus de 16 Go de RAM sur une machine de développement Windows?

8

En supposant une machine (Dual Quad Core Xeon (2,26 GHz) avec 24 Go de RAM) exécutant Windows Server 2008 et Hyper-V. Combien de machines virtuelles puis-je espérer exécuter en même temps avec de bonnes performances?

Est-ce exagéré? Pouvez-vous vraiment avoir trop de RAM?

En supposant 2 Go par VM. Cela représente environ 16 Go pour les machines virtuelles, avec 8 Go pour le système d'exploitation principal et Hyper-V.

Cela vous semble-t-il juste?


Éditer:

J'ai essayé de faire sonner la question moins comme une vantardise. N'a jamais été mon intention. C'est une question difficile à écrire.

Paul
la source
1
Juste des curiosités .. Quel genre de "dev" fais-tu? Et comment est-ce vraiment lié à la programmation?!
Miky Dinescu
doode! 16 Go de RAM avec 8 VM sur un poste de travail?
Byron Whitlock
Cela me fait me sentir mal sur mon portable Wimpy de 512 Mo.
Zifre
4
Cela ressemble plus à un voyage Ego qu'à une question de développement ... de toute façon je suis jaloux :)
Robert Gould
1
Je sais que ça ressemble à ça mais je suis vraiment curieux. Ce n'est pas un voyage d'ego. Si c'était le cas, je donnerais toutes les spécifications. Je suis sérieux à propos de cette question. C'est ma première machine 64 bits et le plus de RAM que j'ai jamais eu était 4 Go, donc je veux savoir si quelque chose de plus de 16 Go est exagéré. Je me souviens de ce qui a été dit sur 640k. :)

Réponses:

7

"Je veux exécuter environ 8 VM à la fois en utilisant Hyper-V."

Pourquoi diable voudriez-vous faire une telle chose?

Comme il est peu probable que vous puissiez charger ALL 8 simultanément pendant le développement (sauf, peut-être, pour un bref test de charge), vous pouvez probablement exécuter tous les 8VM en 2 Go et toujours faire bon usage de tous ces cœurs.

S.Lott
la source
Pour les scénarios de test à plusieurs niveaux avec des machines SQL Server, Web Server et Client.
3
8VM est beaucoup trop complexe pour de simples tests SQL Server et Web Server.
S.Lott
8, c'est beaucoup - si seulement 3 ou 4 étaient exercés à la fois, je suggérerais plutôt d'écrire du code pour fonctionner avec l'API de VMWare - afin que vous puissiez démarrer / arrêter un groupe de machines en fonction des tests que vous êtes sur le point d'effectuer.
Bittercoder
Que ce soit approprié dans ce cas n'est pas la question - il existe de nombreuses raisons d'utiliser plus de 16 Go de RAM sur une boîte Windows, en tant que telle, c'est une bonne question de développement général.
Justicle
Je ne vois pas pourquoi 8 est trop. Si vous voulez tester un cluster, tester un système distribué, tester un système à plusieurs niveaux, pourquoi pas 8?
nos
4

J'ai quelques machines de base exécutant VMware que nous utilisons pour les tests, l'intégration continue, etc.

Ces machines ont un seul processeur quadricœur et 16 Go de RAM chacune - dans notre configuration actuelle, nous avons observé que:

  • Nous sommes d'abord liés aux E / S, ensuite aux CPU, et la mémoire n'est pas un problème.
  • L'utilisation d'iSCSI et d'OpenFiler pour héberger les disques durs virtuels sur un serveur de fichiers dédié séparé via Ethernet double gigabit a permis de réduire les coûts et d'améliorer les performances par rapport aux disques locaux.
  • Les 16 Go de mémoire sont sous-utilisés sur chaque machine, la plupart des instances n'étant allouées qu'entre 512 Mo et 2 Go de RAM, et le système d'exploitation dispose de 5 ou 6 Go d'espace libre.
  • Pour le coût d'une machine Xeon double quadruple cœur avec 24 Go de RAM, vous pouvez acheter 2 ou plus de 4 machines de base, chacune avec 16 Go de RAM et un seul processeur quadricœur (éviter les FBDIMM peut économiser beaucoup d'argent) - d'autant plus que la redondance n'est pas un problème avec une machine de test / développement.
  • Lorsque vous testez des applications / environnements complexes, il est souvent utile de disposer de différentes machines virtuelles sur différents environnements physiques, juste pour obtenir un niveau de latence réseau réaliste entre les différents services.

Quant à l'utilisation de votre plate-forme pour le développement - la principale préoccupation pour moi serait les E / S - si vous exécutez autant de machines virtuelles, vous verrez un impact négatif sur vos temps d'accès au disque pendant le développement, ce qui ralentira la compilation, etc. être enclin à déplacer autant de machines virtuelles que possible dans une boîte séparée et à laisser votre machine de développeur déchargée afin que la compilation et les autres tâches liées au développeur s'éclaircissent rapidement.

Article de blog sur ma configuration initiale de l'année dernière.

Bittercoder
la source
3

Cela dépend de la version de Windows que vous utilisez. Voici quelques informations: http://msdn.microsoft.com/en-us/library/aa366778.aspx

Windows Vista Professionnel 64 bits et supérieur, et Windows 2008 Server Standard 64 bits et supérieur devraient pouvoir traiter la RAM.

Justicle
la source
J'avais l'intention d'utiliser Windows Server 2008 64
3

Avec Windows 64 bits, le traitement de cette quantité de mémoire ne devrait pas être un problème. Je pense que votre plus grande préoccupation serait les E / S, avec autant de machines virtuelles exécutées en même temps. Je suggère d'investir dans des disques SAS aux RPM les plus rapides disponibles pour prendre en charge efficacement autant de machines virtuelles.

Steve Wranovsky
la source
D'accord. Optez pour un tas de disques SCSI 15 000, ou lecteurs flash, selon vos besoins.
Joey Robert
3

J'avais une question similaire et plutôt que de la débattre en termes théoriques, j'ai décidé d'acheter avec l'idée de la remplacer / la mettre à niveau si nécessaire. Je me suis retrouvé avec un Core i7 920 avec 12 Go de RAM, 2 SSD Intel 80 Go (RAID 0), deux disques durs SATA 1 To (RAID 1) et un jeton SATA 1 To.

J'ai lancé Windows Server 2008 x64 et hébergé quelques machines virtuelles sur mes SSD. Des réponses très, très rapides. (J'ai une certaine expérience avec les machines virtuelles et je sais que les E / S disque me dévoreraient en hébergeant un environnement de développement dans une machine virtuelle, en particulier lors de l'ajout de SQL Server aux mêmes broches.

J'ai vraiment apprécié cette configuration, mais un terrain de jeu pour VM est arrivé (un Dell 1950 avec 32 Go de RAM et un astucieux petit SAN). J'ai jeté ces machines virtuelles avec d'autres et j'ai chargé Windows 7 sur mes SSD. (Je sentais que je pouvais jouer avec mon système car j'hébergeais maintenant des machines virtuelles indépendamment de mon nouveau poste de travail.)

La plus grande chose que j'ai remarquée était combien il était plus agréable de développer sur une machine non VM. Pas tant la vitesse que les effets visuels, l'anticrénelage des polices, etc. Les SSD ont vraiment rendu les E / S sans facteur, mais elles font que tout semble instantané. (En outre, Windows 7 est doux.)

Je sais que je devrai le reconstruire lorsque le RTM sortira, mais j'ai des machines virtuelles dans lesquelles je peux travailler pendant sa reconstruction. Je devrai utiliser VPC au lieu de Hyper-V pour créer des machines virtuelles avec lesquelles je dois m'assurer que personne d'autre n'a gâché, mais je pense que c'est un compromis raisonnable.

En bref, je ferais écho aux autres qui disent d'héberger des machines virtuelles sur un serveur séparé, mais j'aimerais ajouter que les SSD d'Intel sont très rapides. des machines séparées vous offrent plus de flexibilité. Vos disques sonnent assez vite pour les tests, mais pour les travaux de développement, les battements instantanés sont rapides.


la source
1

Étant donné que chaque machine virtuelle «possède» sa propre mémoire dans Hyper-V, le nombre de machines virtuelles que vous pouvez héberger activement est limité par la mémoire RAM disponible. Donc, je ne peux pas vraiment en avoir trop.

Bien sûr, le plus gros col de bouteille de vitesse sur une machine de développement est le disque dur. Avec le RAM supplémentaire, vous pouvez vous installer un lecteur RAM qui pourrait avoir un énorme avantage en termes de performances.

Paul Alexander
la source
Oui, sans doute, je n'ai pas mentionné les lecteurs parce que je voulais que la question se concentre uniquement sur la mémoire. La mémoire DDR3 n'est pas bon marché et si je n'ai pas besoin de 24 Go et 16 Go ça ira, je vais baisser les spécifications. Cette machine aura 4 disques SAS 15k, donc je pense que ceux-ci sont assez rapides.
1

Vous n'aurez aucun problème à gérer cette RAM, vous pourrez peut-être vous en sortir avec 20 Go, mais à ce stade, vous pourriez tout aussi bien obtenir les 4 Go supplémentaires. Pourquoi faites-vous cela sur une machine de développeur? Sauf si vous êtes un one-man show, il devrait y avoir un serveur central qui gère des trucs comme ça.

Jared
la source
C'est un test. Je vais évaluer cette configuration pour que notre équipe d'assurance qualité effectue des tests à plusieurs niveaux. Après la période d'évaluation, nous aurons probablement un montage en rack avec des spécifications similaires. De plus, c'est une excuse pour moi d'essayer et de jouer avec des machines virtuelles, ce que je ne fais pas habituellement.
1

Si votre scénario concerne un serveur + des clients, une configuration multi-machine serait meilleure pour la simulation et moins chère. Les machines virtuelles ne sont en fait pas les mêmes que les systèmes d'exploitation natifs, le filetage et le profilage sont rompus, vous serez donc tout à fait hors cible, et pire ne sera pas en mesure de profiler en conséquence.

Mes 2 cents

Robert Gould
la source
1
La latence du réseau peut également être un facteur - bien que je pense que tester votre serveur dans une machine virtuelle soit souvent utile de nos jours, car une grande partie de l'infrastructure est virtualisée dans le monde de l'entreprise pour réduire les coûts ...
Bittercoder
Bon point, si vous exécutez votre serveur sur le matériel de quelqu'un, c'est comme de toute façon être virtualisé de nos jours
Robert Gould
1

Robert,

Si vous avez l'intention d'exécuter 8 machines virtuelles (pour dev ou autre) en même temps, je recommande fortement d'explorer les options de virtualisation de serveur offertes par VMWare. En général, la technologie de virtualisation des serveurs est beaucoup plus optimisée et efficace dans l'utilisation des ressources physiques que son homologue de poste de travail.

J'ai eu l'occasion de travailler avec VMWare Infrastructure 3 (qui est la nomenclature générique de la famille de produits / technologies de virtualisation de serveurs de VMWare) et je dois dire que je suis impressionné. L'édition serveur est extrêmement efficace par rapport à la version poste de travail et offre une flexibilité incroyable.

Je n'ai pas d'expérience avec Hyper-V mais beaucoup de gens qui l'ont utilisé en disent beaucoup. Cependant, je considère VMWare comme une alternative supérieure pour le simple fait qu'il vous permet de créer des machines virtuelles qui exécutent différents systèmes d'exploitation sur le même hôte physique, ce que l'Hyper-V ne peut pas faire (AFAIK)

En ce qui concerne la RAM, les limitations de l'infrastructure VMWare 3 plafonnent bien au-delà des 24 Go et vous permettent de provisionner la mémoire disponible, et même chaque cœur, comme vous le souhaitez entre vos invités - tant que les invités le prennent en charge.

Si vous souhaitez en savoir plus sur VMWare Infrastructure 3, je recommande vivement ce livre car il contient des discussions sur l'architecture du serveur VMWAre ESX et des considérations techniques que vous ne trouverez pratiquement nulle part ailleurs.

J'espère que vous trouverez cela utile, même si ce n'est pas une réponse directe à votre question et que vous excuserez mon commentaire (24 Go pour une machine de développement semble un peu hors du commun .. pendant un moment au moins)

Miky Dinescu
la source
1
Merci pour le lien. Comme je ne traiterai que de Microsoft OS, je vais essayer Hyper-V, mais je le garderai à l'esprit si j'ai besoin d'explorer au-delà. Je suis d'accord 24 Go semble extrême mais ne coûte que 500 $ - 750 $ (j'oublie exactement) plus de 12 Go. Dans quelques années, la plupart des commentaires sur cette question sembleront étranges! ;-)
Je suis d'accord sur la RAM. Cependant, en ce qui concerne l'Hyper-V, je pense que pour le moment il ne fonctionne qu'avec Win 2K8 et dans notre scénario, nous avions quelques outils qui n'étaient compatibles qu'avec 2K3. Vous pourrez peut-être partager vos découvertes plus tard!
Miky Dinescu
0

Nous exécutons Hyper V et hébergeons des instances de Server 2003 et XP sur la même machine.

--- c'était censé être une réponse de l'utilisateur qui a dit que vous ne pouvez pas héberger différents OS sur la même machine dans Hyper V. Ou c'est de cette façon que je le lis, de toute façon.


la source