Gibt es einen Vorteil, wenn auf einem Windows-Entwicklercomputer mehr als 16 GB RAM vorhanden sind?


8

Angenommen, ein Computer (Dual Quad Core Xeon (2,26 GHz) mit 24 GB RAM) läuft unter Windows Server 2008 und Hyper-V. Wie viele VMs kann ich erwarten, gleichzeitig mit guter Leistung ausgeführt zu werden?

Ist das übertrieben? Kannst du wirklich zu viel RAM haben?

Angenommen, 2 GB pro VM. Das sind ungefähr 16 GB für die VMs, wobei 8 GB für das Hauptbetriebssystem und Hyper-V übrig bleiben.

Klingt es ungefähr richtig?


Bearbeiten:

Ich habe versucht, die Frage weniger prahlerisch klingen zu lassen. War nie meine Absicht. Es ist schwer zu schreiben.


1
Nur Kuriositäten. Was für ein "Entwickler" machst du? Und wie hängt das wirklich mit der Programmierung zusammen?!
Miky Dinescu

doode! 16 GB RAM mit 8 VMs auf einer Workstation?
Byron Whitlock

Dadurch fühle ich mich auf meinem schwachen Laptop 512 MB schlecht.
Zifre

4
Klingt eher nach einer Ego-Reise als nach einer Entwicklerfrage ... sowieso bin ich eifersüchtig :)
Robert Gould

1
Ich weiß, dass es so klingt, aber ich bin wirklich neugierig. Dies ist keine Ego-Reise. Wenn es so wäre, würde ich die vollständigen Spezifikationen angeben. Ich meine diese Frage ernst. Es ist meine erste 64-Bit-Maschine und der größte RAM, den ich jemals hatte, war 4 GB, also möchte ich wissen, ob etwas über 16 GB übertrieben ist. Ich erinnere mich, was über 640k gesagt wurde. :)

Antworten:


7

"Ich möchte mit Hyper-V ungefähr 8 VMs gleichzeitig ausführen."

Warum um alles in der Welt möchten Sie so etwas tun?

Da es unwahrscheinlich ist, dass Sie während der Entwicklung ALLE 8 gleichzeitig laden können (außer vielleicht für einen kurzen Auslastungstest), können Sie wahrscheinlich alle 8VMs in 2 GB ausführen und trotzdem alle diese Kerne gut nutzen.


Für mehrschichtige Testszenarien mit SQL Server-, Webserver- und Client-Computern.

3
8VMs sind viel zu komplex für einfache SQL Server- und Webserver-Tests.
S.Lott

8 ist eine Menge - wenn nur 3 oder 4 gleichzeitig ausgeführt würden, würde ich vorschlagen, stattdessen Code zu schreiben, um mit der VMWare-API zu arbeiten -, sodass Sie eine Gruppe von Computern starten / stoppen können, je nachdem, welche Tests Sie durchführen möchten.
Bittercoder

Ob es in diesem Fall angemessen ist, ist nicht der Punkt - es gibt viele Gründe, mehr als 16 GB RAM auf einer Windows-Box zu verwenden, daher ist dies eine gute allgemeine Entwicklungsfrage.
Justicle

Ich verstehe nicht, warum 8 zu viel ist. Wenn Sie einen Cluster testen möchten, ein verteiltes System testen möchten, ein mehrschichtiges System testen möchten, warum nicht 8?
Nr.

4

Ich habe ein paar Standardmaschinen, auf denen VMware ausgeführt wird, die wir zum Testen, zur kontinuierlichen Integration usw. verwenden.

Diese Maschinen haben einen einzelnen Quad-Core-Prozessor und jeweils 16 GB RAM - in unserer aktuellen Konfiguration haben wir Folgendes festgestellt:

  • Wir sind zuerst an die E / A gebunden, dann an die CPU, und der Speicher ist kein Problem.
  • Durch die Verwendung von iSCSI und OpenFiler zum Hosten der virtuellen Festplatten auf einem separaten dedizierten Dateiserver über Dual-Gigabit-Ethernet konnten die Kosten gesenkt und die Leistung im Vergleich zu lokalen Festplatten verbessert werden.
  • Die 16 GB Arbeitsspeicher sind auf jedem Computer nicht ausreichend ausgelastet. Die meisten Instanzen werden nur zwischen 512 MB und 2 GB RAM zugewiesen, und das Betriebssystem verfügt über 5 oder 6 GB freien Speicher.
  • Für die Kosten einer Dual-Quad-Core-Xeon-Maschine mit 24 GB RAM können Sie 2 oder mehr 4+ Commodity-Maschinen mit jeweils 16 GB RAM und einer einzelnen Quad-Core-CPU erwerben (die Vermeidung von FBDIMMs kann viel Geld sparen). - Zumal Redundanz bei einer Test- / Entwicklungsmaschine kein solches Problem darstellt.
  • Beim Testen komplexer Anwendungen / Umgebungen ist es häufig hilfreich, unterschiedliche virtuelle Maschinen in unterschiedlichen physischen Umgebungen zu haben, damit Sie eine realistische Netzwerklatenz zwischen den verschiedenen Diensten erhalten.

Wenn Sie Ihr Rig für die Entwicklung verwenden - für mich wäre E / A das Hauptanliegen -, wenn Sie so viele virtuelle Maschinen ausführen, werden Sie während der Entwicklung negative Auswirkungen auf Ihre Festplattenzugriffszeiten haben, was das Kompilieren verlangsamt usw. Ich würde Seien Sie geneigt, so viele virtuelle Maschinen wie möglich auf eine separate Box zu verschieben und Ihre Entwicklermaschine nicht zu belasten, damit die Kompilierung und andere entwicklerbezogene Aufgaben schnell erledigt werden.

Blogbeitrag zu meiner Ersteinrichtung aus dem letzten Jahr.



3

Unter 64-Bit-Windows sollte es kein Problem sein, so viel Speicher zu adressieren. Ich würde denken, Ihre größte Sorge wäre die E / A, da so viele VMs gleichzeitig ausgeführt werden. Ich würde vorschlagen, in SAS-Laufwerke mit den schnellsten verfügbaren Drehzahlen zu investieren, um so viele VMs effektiv zu unterstützen.


Einverstanden. Entscheiden Sie sich je nach Bedarf für eine Reihe von 15.000 SCSI-Laufwerken oder Flash-Laufwerken.
Joey Robert

3

Ich hatte eine ähnliche Frage und anstatt sie theoretisch zu diskutieren, entschied ich mich für den Kauf mit der Idee, sie bei Bedarf zu ersetzen / zu aktualisieren. Ich habe einen Core i7 920 mit 12 GB RAM, 2 Intel 80 GB SSDs (RAID 0), zwei 1 TB SATA-Festplatten (RAID 1) und einen weggeworfenen 1 TB SATA erhalten.

Ich warf auf Windows Server 2008 x64 und hostete ein paar VMs auf meinen SSDs. Sehr, sehr schnelle Antworten. (Ich habe einige Erfahrungen mit VMs und weiß, dass die Festplatten-E / A mich beim Hosten einer Entwicklerumgebung in einer VM auffressen würde, insbesondere wenn SQL Server denselben Spindeln hinzugefügt wird.

Ich habe dieses Setup wirklich genossen, aber dann kam ein VM-Spielplatz (ein Dell 1950 mit 32 GB RAM und einem schicken kleinen SAN). Ich warf diese VMs zusammen mit einigen anderen darauf und lud Windows 7 auf meine SSDs. (Ich hatte das Gefühl, ich könnte mit meinem System herumspielen, weil ich jetzt einige VMs unabhängig von meiner neuen Workstation hostete.)

Das Größte, was mir auffiel, war, wie viel schöner es war, auf einem Nicht-VM-Computer zu entwickeln. Nicht die Geschwindigkeit, sondern die visuellen Effekte, das Antialiasing von Schriftarten usw. Die SSDs haben die E / A wirklich zu einem Nicht-Faktor gemacht, aber sie sorgen dafür, dass sich alles sofort anfühlt. (Auch Windows 7 ist süß.)

Ich weiß, dass ich es neu erstellen muss, wenn das RTM herauskommt, aber ich habe VMs, in denen ich arbeiten kann, während es neu erstellt wird. Ich muss VPC anstelle von Hyper-V verwenden, um VMs zu erstellen, mit denen ich sicherstellen muss, dass sich niemand anders damit angelegt hat, aber ich denke, dies ist ein vernünftiger Kompromiss.

Kurz gesagt, ich würde die anderen wiederholen, die sagen, dass VMs auf einem separaten Server gehostet werden sollen, aber ich möchte hinzufügen, dass Intels SSDs sehr schnell sind. Separate Maschinen bieten Ihnen mehr Flexibilität. Ihre Laufwerke klingen schnell genug zum Testen, aber für Entwicklungsarbeiten schlägt sofort schnell.


1

Da jede VM ihren eigenen Speicher in Hyper-V "besitzt", ist die Anzahl der VMs, die Sie aktiv hosten können, durch den verfügbaren RAM begrenzt. Kann also nicht wirklich zu viel haben.

Natürlich ist die Festplatte der schnellste Flaschenhals einer Entwicklungsmaschine. Mit dem zusätzlichen RAM können Sie sich ein RAM-Laufwerk einrichten, das einen enormen Leistungsvorteil bietet.


Ja, kein Zweifel, ich habe Laufwerke nicht erwähnt, weil ich wollte, dass sich die Frage nur auf die Erinnerung konzentriert. DDR3-Speicher ist nicht billig und wenn ich keine 24 GB und 16 GB benötige, werde ich die technischen Daten fallen lassen. Diese Maschine wird 4 15k SAS-Laufwerke haben, daher denke ich, dass diese schnell genug sind.

1

Sie werden kein Problem damit haben, diesen RAM zu adressieren. Möglicherweise können Sie mit 20 GB davonkommen, aber an diesem Punkt können Sie auch die zusätzlichen 4 GB erhalten. Warum machst du das auf einem Entwicklercomputer? Sofern Sie keine Ein-Mann-Show sind, sollte es einen zentralen Server geben, der solche Dinge erledigt.


Es ist ein Test. Ich werde diese Konfiguration für unser QA-Team evaluieren, um mehrschichtige Tests durchzuführen. Nach der Evaluierungsphase werden wir wahrscheinlich ein Rackmount mit ähnlichen Spezifikationen erhalten. Außerdem ist es eine Ausrede für mich, mit VMs zu spielen, was ich normalerweise nicht mache.

1

Wenn es in Ihrem Szenario um Server + Clients geht, ist ein Setup mit mehreren Computern für die Simulation besser und billiger. VMs sind tatsächlich nicht mit nativen Betriebssystemen identisch. Threading und Profiling sind fehlerhaft, sodass Sie weit vom Ziel entfernt sind und schlimmer noch nicht in der Lage sind, ein entsprechendes Profil zu erstellen.

Meine 2 Cent


1
Die Netzwerklatenz kann ebenfalls ein Faktor sein - obwohl ich denke, dass das Testen Ihres Servers in einer VM heutzutage oft wertvoll ist, da in der Unternehmenswelt so viel Infrastruktur virtualisiert wird, um die Kosten zu senken ...
Bittercoder

Guter Punkt, wenn Sie Ihren Server auf einer anderen Hardware betreiben, ist es heutzutage sowieso wie eine Virtualisierung
Robert Gould

1

Robert,

Wenn Sie beabsichtigen, 8 VMs (für Entwickler oder auf andere Weise) gleichzeitig auszuführen, empfehle ich dringend, die von VMWare angebotenen Servervirtualisierungsoptionen zu untersuchen. Im Allgemeinen ist die Servervirtualisierungstechnologie bei der Nutzung physischer Ressourcen weitaus optimierter und effizienter als das Gegenstück zur Workstation.

Ich hatte die Gelegenheit, mit VMWare Infrastructure 3 (der Dachnomenklatur für die Servervirtualisierungsfamilie von VMWare-Produkten / -Technologien) zu arbeiten, und ich muss sagen, dass ich beeindruckt bin. Die Server Edition ist im Vergleich zur Workstation-Version äußerst effizient und bietet eine unglaubliche Flexibilität.

Ich habe keine Erfahrung mit Hyper-V, aber viele Leute, die es verwendet haben, sprechen hoch davon. Ich halte VMWare jedoch für eine überlegene Alternative, da Sie damit VMs erstellen können, auf denen verschiedene Betriebssysteme auf demselben physischen Host ausgeführt werden, was Hyper-V nicht kann (AFAIK).

Was den Arbeitsspeicher angeht, gehen die Einschränkungen der VMWare-Infrastruktur 3 weit über die 24 GB hinaus und ermöglichen es Ihnen, den verfügbaren Speicher und sogar jeden Kern, wie Sie möchten, zwischen Ihren Gästen bereitzustellen - solange die Gäste dies unterstützen.

Wenn Sie mehr über VMWare Infrastructure 3 erfahren möchten, empfehle ich dieses Buch, da es Diskussionen über die Architektur des VMWAre ESX-Servers und technische Überlegungen enthält, die Sie sonst kaum finden werden.

Ich hoffe, Sie finden dies nützlich, obwohl es keine direkte Antwort auf Ihre Frage ist und Sie meinen Kommentar entschuldigen werden (24 GB für eine Entwicklungsmaschine scheinen zumindest für eine Weile etwas ungewöhnlich zu sein).


1
Danke für den Link. Da ich mich nur mit Microsoft OS beschäftige, werde ich Hyper-V ausprobieren, aber ich werde es berücksichtigen, wenn ich darüber hinaus etwas erforschen muss. Ich bin damit einverstanden, dass 24 GB extrem erscheinen, aber nur 500 bis 750 US-Dollar (ich vergesse genau) mehr als 12 GB kosten. In ein paar Jahren werden die meisten Kommentare zu dieser Frage kurios erscheinen! ;-)

Ich stimme dem RAM zu. In Bezug auf Hyper-V denke ich jedoch, dass es im Moment nur mit Win 2K8 funktioniert. In unserem Szenario hatten wir einige Tools, die nur mit 2K3 kompatibel waren. Vielleicht können Sie Ihre Erkenntnisse später teilen!
Miky Dinescu

0

Wir führen Hyper V aus und hosten Instanzen von Server 2003 und XP auf demselben Computer.

--- Dies sollte eine Antwort des Benutzers sein, der sagte, dass Sie in Hyper V nicht verschiedene Betriebssysteme auf demselben Computer hosten können. Oder so habe ich es jedenfalls gelesen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.