C'è qualche vantaggio ad avere più di 16 GB di RAM su un computer sviluppatore Windows?


8

Supponendo una macchina (Dual Quad Core Xeon (2,26 GHz) con 24 GB di RAM) con Windows Server 2008 e Hyper-V. Quante macchine virtuali posso aspettarmi di eseguire contemporaneamente con buone prestazioni?

Questo è eccessivo? Puoi davvero avere troppa RAM?

Supponendo 2 GB per VM. Sono circa 16 GB per le macchine virtuali con 8 GB rimasti per il sistema operativo principale e Hyper-V.

Sembra giusto?


Modificare:

Ho provato a far sembrare la domanda meno simile a vantarsi. Non è mai stata mia intenzione. È una domanda difficile da scrivere.


1
Solo curiosità .. Che tipo di "dev" stai facendo? E in che modo questo è veramente legato alla programmazione ?!
Miky Dinescu,

Doode! 16 GB di RAM con 8 VM su una workstation?
Byron Whitlock,

Questo mi fa stare male sul mio laptop wimpy da 512 MB.
Zifre,

4
Sembra più un viaggio sull'ego che una domanda per gli sviluppatori ... comunque sono geloso :)
Robert Gould,

1
So che sembra così, ma sono davvero curioso. Questo non è un viaggio nell'ego. Se lo fosse, darei le specifiche complete. Sono serio su questa domanda. È la mia prima macchina a 64 bit e il più RAM che abbia mai avuto è stato di 4 GB, quindi voglio sapere se qualcosa di oltre 16 GB è eccessivo. Ricordo ciò che è stato detto su 640k. :)

Risposte:


7

"Voglio eseguire circa 8 macchine virtuali contemporaneamente usando Hyper-V."

Perché mai vorresti fare una cosa del genere?

Dal momento che è improbabile che tu sia in grado di caricare TUTTI 8 contemporaneamente durante lo sviluppo (tranne, forse, per un breve test di carico) probabilmente puoi eseguire tutti gli 8VM in 2Gb e comunque fare buon uso di tutti quei core.


Per scenari di test a più livelli con macchine SQL Server, Web Server e Client.

3
8VM è troppo complesso per il semplice test di SQL Server, Web Server.
S.Lott

8 è molto - se solo 3 o 4 venissero esercitati contemporaneamente, suggerirei invece di scrivere codice per lavorare contro l'API di VMWare - in modo da poter avviare / arrestare un gruppo di macchine a seconda del test che si sta per eseguire.
Bittercoder

Se in questo caso non è appropriato - ci sono molti motivi per utilizzare più di 16 GB di RAM su una scatola di Windows, in quanto tale è una buona domanda di sviluppo generale.
Justicle,

Non vedo perché 8 sia troppo. Se si desidera testare un cluster, testare un sistema distribuito, testare un sistema a più livelli, perché non 8?
nn

4

Ho un paio di macchine per materie prime che eseguono VMware che utilizziamo per test, integrazione continua, ecc.

Queste macchine hanno un singolo processore quad-core e 16 GB di RAM ciascuno - nella nostra configurazione attuale abbiamo osservato che:

  • Siamo prima associati a I / O, secondo CPU e la memoria non è un problema.
  • L'uso di iSCSI e OpenFiler per ospitare i dischi rigidi virtuali su un file server dedicato separato su Ethernet a doppio gigabit ha contribuito a ridurre i costi e migliorare le prestazioni rispetto ai dischi locali.
  • I 16 GB di memoria sono sottoutilizzati su ogni macchina, con la maggior parte delle istanze allocate solo tra 512 MB e 2 GB di RAM e il sistema operativo ha 5 o 6 GB gratuiti.
  • Al costo di una macchina Xeon quad-core dual con 24 GB di RAM, è possibile acquistare 2 o più probabili macchine 4+ commodity, ognuna con 16 GB di RAM e una singola CPU quad-core (evitando FBDIMM può risparmiare un sacco di soldi) - soprattutto perché la ridondanza non è un problema con una macchina di test / sviluppo.
  • Quando si eseguono test di applicazioni / ambienti complessi, è spesso utile disporre di macchine virtuali diverse su ambienti fisici diversi, in modo da ottenere un livello realistico di latenza di rete tra i vari servizi.

Per quanto riguarda l'utilizzo del tuo rig per lo sviluppo - la preoccupazione principale per me sarebbe l'I / O - se stai utilizzando molte macchine virtuali, vedrai un impatto negativo sui tempi di accesso al disco durante lo sviluppo che rallenterà la compilazione, ecc. essere incline a spostare quante più macchine virtuali possibile su una scatola separata e lasciare la macchina dello sviluppatore senza problemi, in modo che la compilazione e le altre attività relative allo sviluppatore siano velocissime.

Post di blog sulla mia configurazione iniziale dell'anno scorso.


3

Dipende dalla versione di Windows che stai utilizzando. Ecco alcune informazioni: http://msdn.microsoft.com/en-us/library/aa366778.aspx

Windows Vista Business a 64 bit e versioni successive e Windows 2008 Server Standard a 64 bit e versioni successive dovrebbero essere in grado di indirizzare la RAM.


Stavo pensando di utilizzare Windows Server 2008 64

3

Con Windows a 64 bit, occuparsi di tanta memoria non dovrebbe essere un problema. Penso che la tua più grande preoccupazione sarebbe l'I / O, con tante macchine virtuali in esecuzione contemporaneamente. Suggerirei di investire in unità SAS ai più veloci RPM disponibili per supportare efficacemente molte macchine virtuali.


Concordato. Scegli un gruppo di unità SCSI da 15k o unità flash, a seconda delle tue esigenze.
Joey Robert,

3

Avevo una domanda simile e invece di discuterla in termini teorici, ho deciso di acquistare con l'idea di sostituirla / aggiornarla se necessario. Ho finito con un Core i7 920 con 12 GB di RAM, 2 SSD Intel 80 GB (RAID 0), due HDD SATA da 1 TB (RAID 1) e un SATA da 1 TB.

Ho lanciato Windows Server 2008 x64 e ho ospitato un paio di VM sui miei SSD. Risposte molto, molto veloci. (Ho una certa esperienza con le macchine virtuali e so che l'I / O del disco mi farebbe impazzire nell'hosting di un ambiente di sviluppo in una macchina virtuale, specialmente quando aggiungo SQL Server agli stessi mandrini.

Mi è davvero piaciuta questa configurazione, ma poi è arrivato un parco giochi per VM (un Dell 1950 con 32 GB di RAM e una piccola SAN elegante). Ho lanciato quelle macchine virtuali insieme ad alcune altre e ho caricato Windows 7 sui miei SSD. (Sentivo di poter giocare con il mio sistema perché ora ospitavo alcune VM indipendentemente dalla mia nuova workstation.)

La cosa più grande che ho notato è stato quanto fosse bello svilupparsi su una macchina non VM. Non tanto la velocità ma gli effetti visivi, l'antialiasing dei caratteri, ecc. Gli SSD hanno davvero reso l'I / O un non fattore, ma rendono tutto istantaneo. (Inoltre, Windows 7 è dolce.)

So che dovrò ricostruirlo quando uscirà RTM, ma ho macchine virtuali in cui posso lavorare mentre viene ricostruito. Dovrò usare VPC invece di Hyper-V per la creazione di macchine virtuali di cui ho bisogno per assicurarmi che nessun altro abbia sbagliato, ma penso che questo sia un compromesso ragionevole.

In breve, farei eco agli altri che dicono di ospitare macchine virtuali su un server separato, ma vorrei aggiungere che gli SSD Intel sono molto veloci. macchine separate offrono maggiore flessibilità. Le tue unità suonano abbastanza velocemente per i test, ma per il lavoro di sviluppo, ritmi istantanei veloci.


1

Poiché ogni VM "possiede" la propria memoria in Hyper-V, il numero di VM che è possibile ospitare attivamente è limitato dalla RAM disponibile. Quindi non posso davvero avere troppo.

Ovviamente il più grande collo di bottiglia di velocità su una macchina di sviluppo è il disco rigido. Con il ram extra potresti creare un'unità RAM che potrebbe avere un enorme vantaggio in termini di prestazioni.


Sì, senza dubbio, non ho menzionato le unità perché volevo che la domanda si concentrasse solo sulla memoria. La memoria DDR3 non è economica e se non ho bisogno di 24 GB e 16 GB andrà bene, lascerò cadere le specifiche. Questa macchina avrà 4 unità SAS da 15k, quindi penso che siano abbastanza veloci.

1

Non avrai problemi a indirizzare quella RAM, potresti riuscire a cavartela con 20 GB ma a questo punto potresti anche ottenere i 4 GB extra. Perché lo stai facendo su una macchina sviluppatore? A meno che tu non sia uno spettacolo personale, dovrebbe esserci un server centrale che gestisce cose come questa.


È un test. Sto valutando questa configurazione per il nostro team addetto al controllo qualità per eseguire test a più livelli. Dopo il periodo di valutazione probabilmente avremo un montaggio in rack con specifiche simili. Inoltre è una scusa per me provare e giocare con le macchine virtuali che di solito non faccio.

1

Se il tuo scenario riguarda server + client, una configurazione multi-macchina sarebbe migliore per la simulazione e più economica. Le macchine virtuali in realtà non sono le stesse dei sistemi operativi nativi, il threading e la creazione di profili sono interrotti, quindi sarai fuori target e, peggio ancora, non sarai in grado di profilare di conseguenza.

I miei 2 centesimi


1
Anche la latenza di rete può essere un fattore, anche se penso che testare il tuo server in una VM sia spesso prezioso in questi giorni poiché tanta infrastruttura viene virtualizzata nel mondo aziendale per ridurre i costi ...
Bittercoder

Bene, se esegui il tuo server sull'hardware di qualcuno è come essere virtualizzato al giorno d'oggi
Robert Gould,

1

Roberto,

Se si intende eseguire contemporaneamente 8 VM (per sviluppatori o altro), consiglio vivamente di esplorare le opzioni di virtualizzazione del server offerte da VMWare. In generale, la tecnologia di virtualizzazione dei server è molto più ottimizzata ed efficiente nell'utilizzo delle risorse fisiche rispetto alla sua controparte workstation.

Ho avuto l'opportunità di lavorare con VMWare Infrastructure 3 (che è la nomenclatura ombrello per la famiglia di prodotti / tecnologie di virtualizzazione server VMWare) e devo dire che sono rimasto colpito. L'edizione server è estremamente efficiente rispetto alla versione workstation e offre un'incredibile flessibilità.

Non ho esperienza con Hyper-V ma molte persone che l'hanno usato ne parlano molto. Tuttavia, considero VMWare un'alternativa superiore per il semplice fatto che consente di creare VM che eseguono diversi sistemi operativi sullo stesso host fisico, cosa che Hyper-V non può fare (AFAIK)

Per quanto riguarda la RAM, le limitazioni dell'infrastruttura 3 di VMWare si estendono ben oltre i 24Gb e ti consentono di fornire la memoria disponibile e persino ogni core, come desideri tra i tuoi ospiti, purché gli ospiti lo supportino.

Se sei interessato a conoscere VMWare Infrastructure 3, consiglio vivamente questo libro in quanto contiene discussioni sull'architettura del server ESX VMWAre e considerazioni tecniche che difficilmente troverai altrove.

Spero che lo troverai utile, anche se non è una risposta diretta alla tua domanda e scuserai il mio commento (24Gb per una macchina di sviluppo sembra un po 'fuori dal comune .. almeno per un po')


1
Grazie per il link Dato che avrò a che fare solo con il sistema operativo Microsoft, proverò Hyper-V ma lo terrò a mente se dovessi esplorare oltre. Sono d'accordo che 24 GB sembrano estremi ma costa solo $ 500 - $ 750 (dimentico esattamente) più di 12 GB. Tra un paio d'anni la maggior parte dei commenti su questa domanda sembreranno singolari! ;-)

Sono d'accordo sulla RAM. Tuttavia, per quanto riguarda Hyper-V, penso che al momento funzioni solo con Win 2K8 e nel nostro scenario avevamo alcuni strumenti che erano compatibili solo con 2K3. Forse puoi condividere i tuoi risultati più tardi!
Miky Dinescu,

0

Stiamo eseguendo Hyper V e ospitando istanze di Server 2003 e XP sullo stesso computer.

--- questa doveva essere una risposta per l'utente che ha affermato che non è possibile ospitare diversi SO sullo stesso computer in Hyper V. Oppure è così che l'ho letto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.