¿Hay alguna ventaja de tener más de 16 GB de RAM en una máquina desarrolladora de Windows?

8

Suponiendo una máquina (Dual Quad Core Xeon (2.26 GHz) con 24 GB de RAM) que ejecuta Windows Server 2008 e Hyper-V. ¿Cuántas máquinas virtuales puedo esperar que se ejecuten al mismo tiempo con un buen rendimiento?

¿Es esto excesivo? ¿Realmente puedes tener demasiada RAM?

Asumiendo 2 GB por VM. Eso es alrededor de 16 GB para las máquinas virtuales con 8 GB sobrantes para el sistema operativo principal y Hyper-V.

¿Suena bien?


Editar:

Traté de hacer que la pregunta pareciera menos alardear. Nunca fue mi intención. Es una pregunta difícil de escribir.

Pablo
fuente
1
Solo curiosidades ... ¿Qué tipo de "dev" estás haciendo? ¿Y cómo se relaciona esto realmente con la programación?
Miky Dinescu
doode! ¿16 gb de ram con 8 máquinas virtuales en una estación de trabajo?
Byron Whitlock
Esto me hace sentir mal en mi laptop débil de 512 mb.
Zifre
44
Suena más como un viaje de ego que una pregunta dev ... de todos modos estoy celoso :)
Robert Gould
1
Sé que suena así, pero realmente tengo curiosidad. Este no es un viaje de ego. Si fuera así, daría especificaciones completas. Me tomo en serio esta pregunta. Es mi primera máquina de 64 bits y la mayor cantidad de memoria RAM que tuve fue de 4 GB, así que quiero saber si algo más de 16 GB es excesivo. Recuerdo lo que se dijo sobre 640k. :)

Respuestas:

7

"Quiero ejecutar alrededor de 8 máquinas virtuales a la vez con Hyper-V".

¿Por qué demonios querrías hacer algo así?

Dado que es poco probable que pueda cargar ALL 8 simultáneamente durante el desarrollo (excepto, tal vez, para una breve prueba de carga), probablemente pueda ejecutar todos los 8VM en 2Gb y aún así hacer un buen uso de todos esos núcleos.

S.Lott
fuente
Para escenarios de prueba de varios niveles con máquinas SQL Server, Web Server y Client.
3
8VM es demasiado complejo para pruebas simples de SQL Server y servidor web.
S.Lott
8 es mucho, si solo se ejercitaran 3 o 4 a la vez, sugeriría escribir código para trabajar con la API de VMWare, para que pueda iniciar / detener un grupo de máquinas dependiendo de las pruebas que está a punto de realizar.
Bittercoder
Si es apropiado en este caso no es el punto: hay muchas razones para usar más de 16 GB de RAM en una caja de Windows, por lo que es una buena pregunta de desarrollo general.
Justicle
No veo por qué 8 es demasiado. Si desea probar un clúster, probar un sistema distribuido, probar un sistema de varios niveles, ¿por qué no 8?
nos
4

Tengo un par de máquinas básicas que ejecutan VMware que utilizamos para pruebas, integración continua, etc.

Estas máquinas tienen un único procesador de cuatro núcleos y 16 GB de RAM cada una; en nuestra configuración actual hemos observado que:

  • Primero estamos vinculados a E / S, a CPU en segundo lugar, y la memoria no es un problema.
  • El uso de iSCSI y OpenFiler para alojar los discos duros virtuales en un servidor de archivos dedicado separado sobre Ethernet de doble gigabit ayudó a reducir los costos y mejorar el rendimiento en comparación con los discos locales.
  • Los 16 GB de memoria están infrautilizados en cada máquina, y la mayoría de las instancias solo se asignan entre 512 MB y 2 GB de RAM, y el sistema operativo tiene 5 o 6 GB libres.
  • Por el costo de una máquina Xeon de doble núcleo cuádruple con 24 GB de RAM, puede comprar 2 o más máquinas probables de 4+, cada una con 16 GB de RAM y una sola CPU de cuatro núcleos (evitar los FBDIMM puede ahorrar mucho dinero) - especialmente porque la redundancia no es un problema con una máquina de prueba / desarrollo.
  • Al probar aplicaciones / entornos complejos, a menudo ayuda tener diferentes máquinas virtuales ubicadas en diferentes entornos físicos, solo para que obtenga un nivel realista de latencia de red entre los diversos servicios.

En cuanto al uso de su plataforma para el desarrollo, la principal preocupación para mí sería la E / S; si está ejecutando tantas máquinas virtuales, verá un impacto negativo en los tiempos de acceso al disco durante el desarrollo, lo que ralentizará la compilación, etc. inclinarse a cambiar la mayor cantidad posible de máquinas virtuales a una caja separada y dejar su máquina de desarrollador sin carga para que la compilación y otras tareas relacionadas con el desarrollador se alivien rápidamente.

Publicación en el blog sobre mi configuración inicial del año pasado.

Bittercoder
fuente
3

Depende de la versión de Windows que estés usando. Aquí hay información: http://msdn.microsoft.com/en-us/library/aa366778.aspx

Windows Vista Business de 64 bits y superior, y Windows 2008 Server Standard de 64 bits y superior deberían poder direccionar la RAM.

Justicle
fuente
Estaba planeando usar Windows Server 2008 64
3

Con Windows de 64 bits, abordar esa cantidad de memoria no debería ser un problema. Creo que su mayor preocupación sería la E / S, con tantas máquinas virtuales ejecutándose a la vez. Sugeriría invertir en unidades SAS a los RPM más rápidos disponibles para admitir efectivamente esa cantidad de máquinas virtuales.

Steve Wranovsky
fuente
Convenido. Elija un montón de unidades SCSI de 15k o unidades flash, según sus necesidades.
Joey Robert, el
3

Tenía una pregunta similar y, en lugar de debatirla en términos teóricos, decidí comprar con la idea de reemplazarla / actualizarla si fuera necesario. Terminé con un Core i7 920 con 12 GB de RAM, 2 SSD Intel 80 GB (RAID 0), dos HDD SATA de 1 TB (RAID 1) y un SATA de 1 TB.

Lancé Windows Server 2008 x64 y alojé un par de máquinas virtuales en mis SSD. Muy, muy rápidas respuestas. (Tengo cierta experiencia con máquinas virtuales y sé que la E / S de disco me consumiría al alojar un entorno de desarrollador en una máquina virtual, especialmente al agregar SQL Server a los mismos ejes.

Realmente disfruté esta configuración, pero luego llegó un patio de juegos VM (una Dell 1950 con 32 GB de RAM y una pequeña e ingeniosa SAN). Lancé esas máquinas virtuales junto con algunas otras y cargué Windows 7 en mis SSD. (Sentí que podía jugar con mi sistema porque ahora alojaba algunas máquinas virtuales independientemente de mi nueva estación de trabajo).

Lo más importante que noté fue lo mucho mejor que era desarrollarlo en una máquina sin VM. No tanto la velocidad, sino los efectos visuales, el antialiasing de fuentes, etc. Los SSD realmente hicieron que la E / S no sea un factor, pero hacen que todo se sienta instantáneo. (Además, Windows 7 es dulce).

Sé que tendré que reconstruirlo cuando salga el RTM, pero tengo máquinas virtuales en las que puedo trabajar mientras se está reconstruyendo. Necesitaré usar VPC en lugar de Hyper-V para construir máquinas virtuales con las que necesito asegurarme de que nadie más se haya metido, pero creo que esto es una compensación razonable.

En resumen, me haría eco de los otros que dicen alojar máquinas virtuales en un servidor separado, pero me gustaría agregar que los SSD de Intel son muy rápidos. Las máquinas separadas le dan más flexibilidad. Sus unidades suenan lo suficientemente rápido para las pruebas, pero para el trabajo de desarrollo, los latidos instantáneos son rápidos.


fuente
1

Como cada VM "posee" su propia memoria en Hyper-V, la cantidad de VM que puede alojar activamente está limitada por la RAM disponible. Entonces realmente no puedo tener demasiado.

Por supuesto, el cuello de botella de mayor velocidad en una máquina de desarrollo es el disco duro. Con la memoria RAM adicional, podría configurar una unidad de RAM que podría tener un gran beneficio de rendimiento.

Paul Alexander
fuente
Sí, sin duda, no mencioné las unidades porque quería que la pregunta se concentrara solo en la memoria. La memoria DDR3 no es barata y si no necesito 24 GB y 16 GB estarán bien, desplegaré las especificaciones. Esta máquina tendrá 4 unidades SAS de 15k, por lo que creo que son lo suficientemente rápidas.
1

No tendrá ningún problema para abordar esa RAM, es posible que pueda salirse con 20 GB, pero en este punto también podría obtener los 4 GB adicionales. ¿Por qué haces esto en una máquina desarrolladora? A menos que sea un espectáculo individual, debe haber un servidor central que maneje cosas como esta.

Jared
fuente
Es una prueba. Voy a evaluar esta configuración para que nuestro equipo de control de calidad realice pruebas de varios niveles. Después del período de evaluación, probablemente obtendremos un montaje en rack con especificaciones similares. Además, es una excusa para probar y jugar con máquinas virtuales, lo que no suelo hacer.
1

Si su escenario se trata de servidores + clientes, una configuración de múltiples máquinas sería mejor para la simulación y más barata. Las máquinas virtuales en realidad no son lo mismo que los sistemas operativos nativos, los subprocesos y la creación de perfiles están rotos, por lo que estará bastante alejado del objetivo y, lo que es peor, no podrá perfilarse en consecuencia.

Mis 2 centavos

Robert Gould
fuente
1
La latencia de red también puede ser un factor - aunque creo que las pruebas de su servidor en una máquina virtual es a menudo valiosa en estos días como mucho la infraestructura está siendo virtualizados en el mundo de la empresa para reducir costes ...
Bittercoder
Buen punto, si se ejecuta el servidor en el hardware de alguien que se siente al ser virtualizado de todos modos hoy en día
Robert Gould
1

Robert

Si tiene la intención de ejecutar 8 máquinas virtuales (para desarrolladores u otros) al mismo tiempo, le recomiendo explorar las opciones de virtualización de servidores que ofrece VMWare. En general, la tecnología de virtualización de servidores es mucho más optimizada y eficiente en la utilización de recursos físicos que su contraparte de la estación de trabajo.

Tuve la oportunidad de trabajar con VMWare Infrastructure 3 (que es la nomenclatura general para la familia de productos / tecnologías de virtualización de servidores de VMWare) y debo decir que estoy impresionado. La edición del servidor es extremadamente eficiente en comparación con la versión de la estación de trabajo y ofrece una flexibilidad increíble.

No tengo experiencia con Hyper-V, pero muchas personas que lo han usado hablan muy bien de él. Sin embargo, considero que VMWare es una alternativa superior por el simple hecho de que le permite crear máquinas virtuales que ejecutan diferentes sistemas operativos en el mismo host físico, que es algo que Hyper-V no puede hacer (AFAIK)

En cuanto a RAM, las limitaciones de la infraestructura VMWare 3 superan los 24 Gb y le permite aprovisionar la memoria disponible, e incluso cada núcleo, como desee entre sus invitados, siempre que los invitados lo admitan.

Si está interesado en aprender sobre VMWare Infrastructure 3, le recomiendo este libro, ya que contiene debates sobre la arquitectura del servidor VMWAre ESX y consideraciones técnicas que difícilmente encontrará en ningún otro lugar.

Espero que lo encuentre útil, aunque no es una respuesta directa a su pregunta y disculpe mi comentario (24 Gb para una máquina de desarrollo parece un poco fuera de lo común ... al menos por un tiempo)

Miky Dinescu
fuente
1
Gracias por el enlace. Como solo trataré con Microsoft OS, voy a probar Hyper-V pero lo tendré en cuenta si necesito explorar más allá de eso. Estoy de acuerdo en que 24 GB parece extremo, pero solo cuesta $ 500 - $ 750 (lo olvidé exactamente) más de 12 GB. Dentro de un par de años, la mayoría de los comentarios sobre esta pregunta parecerán pintorescos. ;-)
Estoy de acuerdo con la RAM. Sin embargo, con respecto al Hyper-V, creo que por el momento solo funciona con Win 2K8 y en nuestro escenario teníamos algunas herramientas que solo eran compatibles con 2K3. ¡Quizás puedas compartir tus hallazgos más tarde!
Miky Dinescu
0

Estamos ejecutando Hyper V y hospedando instancias de Server 2003 y XP en la misma máquina.

--- se suponía que era una respuesta del usuario que dijo que no se pueden alojar diferentes sistemas operativos en la misma máquina en Hyper V. O así es como lo leí, de todos modos.


fuente