VMware rápido para el primer usuario, lento para el segundo

Después de iniciar VMware y abrir la máquina virtual preparada por otro usuario, Windows 7 funciona muy lentamente. La lectura/escritura de archivos es 10-30 veces más lenta de lo que debería ser y Windows ha comenzado a animar el movimiento/cambio de tamaño de la ventana, lo que pone de rodillas al sistema operativo (¿o VMware?).

¿Cómo hago para depurar el problema?

Aclaración Los dos usuarios son dos cuentas en el mismo MacBook. Los dos usuarios comparten el mismo OSX, por lo que parece razonable que también compartan la misma máquina virtual de Windows.

Actualización Después de otra nueva instalación de VMware + Windows 7, esta vez instalado y utilizado exclusivamente por un usuario, comienza la misma lentitud. Hay algunas sospechas.

Mds se está volviendo loco, por ejemplo. ¿Podría ser que esté indexando (e interfiriendo de alguna manera) con la partición separada en la que está instalada la máquina virtual de Windows?

La lentitud comienza después de un poco de uso: la descompresión de mi código y algunos ciclos de depuración en Windows. ¿Mi acuerdo con el valor predeterminado de VMware de hacer que el uso del disco crezca según sea necesario podría estar contribuyendo a cierta fragmentación tan pronto? VMware, como veo ahora, sugiere usar el no predeterminado (asignar almacenamiento en disco desde el primer momento de la instalación) para uso de producción. (¿Qué otro uso hay? ¿Y cómo podría ser el uso predeterminado el que no es de producción?)

"La lentitud comienza después de un poco de uso": ¿está seguro de que no es su trabajo de desarrollo lo que lo está arrastrando hacia abajo? ¿Qué muestra Process Explorer que sucede en la máquina virtual cuando está lenta? Si quieres una mano para depurar esto, deberíamos llevarlo a un chat...

Respuestas (2)

Lea el artículo de soporte de VMware 1015676 para obtener información sobre las cosas que podrían estar causando ralentizaciones y qué puede hacer al respecto.

Como práctica estándar, cambio algunas configuraciones de administración de memoria como explico en esta respuesta a otra pregunta de rendimiento de VMware.

Cosas para verificar en particular, dado "mds going berzerk":

Con respecto a la preasignación de espacio en disco, si eso es o no una penalización de rendimiento o qué tan grande es el impacto que tiene en usted depende completamente del patrón de uso de su disco. Es un golpe de rendimiento para expandir el tamaño de la unidad. Si rara vez elimina cosas del disco, pero a menudo agrega cosas (especialmente si está ejecutando programas que generan archivos, por ejemplo, archivos de registro o archivos de medios transcodificados), entonces sufrirá más. Si descarga archivos grandes, los usa y luego los elimina, probablemente terminará con suficiente espacio libre asignado para no notar la diferencia.

También puedes experimentar con:

  • Habilite el almacenamiento en búfer del disco duro. Esto fue fundamental para mí cuando mi máquina virtual estaba en una matriz RAID 5, pero por lo demás no importaba. Configuración de VM -> Avanzado, configure "Almacenamiento en búfer del disco duro" en "Habilitado"
  • Habilitar/deshabilitar el archivo de paginación de Windows. Para una computadora real, el mejor consejo es dejar el archivo de paginación activo y el sistema administrado bajo Windows 7 (a diferencia de XP, donde probablemente sea mejor eliminarlo si tiene suficiente RAM). Para una máquina virtual que usa un disco virtual, no es tan claro, pero lo suficientemente fácil de probar. Siga estas instrucciones para acceder a la configuración del archivo de paginación, pero en lugar de elegir un tamaño, seleccione "Sin archivo de paginación".
Mi patrón de uso del disco en Windows es copiar mi archivo de código postal de OS X a Windows VM, descomprimir, compilar/depurar y finalmente cambiar el nombre del zip y el directorio desempaquetado a 01, 02, ... para estar listo para el próximo iteración después de alguna depuración. En otras palabras, no estoy eliminando las iteraciones a medida que avanzo, sino como un lote cuando está lista una nueva versión. Sin embargo, cada ciclo de compilación/depuración consiste en la eliminación de archivos de objetos antiguos por parte de Visual Studio. No estoy seguro de si estas eliminaciones podrían causar fragmentación o ralentización en vmware.
@Calaf, parece que estaría mejor atendido por un disco preasignado. Las únicas razones para no usar un disco preasignado son que ocupa más espacio en el disco en el host y hace que la máquina virtual sea más grande para copiar. Si esos no son problemas, entonces definitivamente asigne previamente el disco. De lo contrario, puede intentar forzar el crecimiento haciendo una copia adicional del nuevo código y luego eliminándolo y vaciando la Papelera de reciclaje (para liberar el espacio en disco recién asignado) cada vez que traiga una nueva versión. (El disco virtual nunca se reduce automáticamente).
..y uno no puede simplemente pasar de un disco incremental a uno preasignado sobre la marcha. Es necesario instalar Windows desde cero. ¿Está bien? El tamaño, por cierto, no es un problema, ya que estoy dedicando una partición a la máquina virtual de Windows.
@Calaf, puede cambiar a preasignado fácilmente. Apague Windows para que la VM aparezca apagada, luego en la Configuración de la VM, seleccione el disco duro, Opciones avanzadas y haga clic en "Preasignar espacio en disco" y luego haga clic en "Aplicar".
Qué bueno, pero por mi mala suerte, me sale "No hay suficiente espacio en el sistema de archivos para la operación seleccionada", a pesar de que había dejado 2 GB para dar cuenta de las diferentes interpretaciones de "GB". En una partición de 40 GB eso debería haber sido suficiente, por lo que algo más debe estar jugando un papel.
También es útil deshabilitar el atractivo visual en Windows 7: Panel de control (Ver: Iconos grandes) \ Sistema \ Configuración avanzada del sistema (en el panel izquierdo) \ Avanzado \ Rendimiento \ Configuración \ Efectos visuales \ Ajustar para obtener el mejor rendimiento.

¿Cómo hago para depurar el problema?

Pasar imágenes de máquinas virtuales es un asunto complicado. La imagen a menudo se crea con extensiones de hipervisor que aprovechan funciones de hardware específicas en la máquina donde se creó la VM. Si no está utilizando precisamente el mismo hardware (especialmente la misma CPU), la VM puede funcionar lentamente o incluso bloquear su sistema operativo host o bloquear su CPU.

Comenzaría con hacer que la VM vuelva a un estado inicial:

  1. Eliminar todas las instantáneas en la VM
  2. Apague el sistema operativo invitado para que esté "apagado", no solo suspendido
  3. Abra la ventana Biblioteca de máquinas virtuales (Shift+Cmd+L) y seleccione la VM
  4. Haga clic en el icono de llave inglesa en la barra de herramientas para abrir la ventana de configuración de esta máquina virtual.
  5. Seleccione 'Avanzado' y asegúrese de que el motor de virtualización preferido esté configurado en 'Automático' y que el almacenamiento en búfer del disco duro también esté configurado en 'Automático'
  6. Haga clic en 'Mostrar todo' para volver a la configuración principal
  7. Haga clic en 'Compatibilidad' y asegúrese de que la compatibilidad de la VM esté configurada para ser con la versión de VMWare que está ejecutando o superior (en mi caso, es Fusion 4 o superior) para que no necesite mantener las capacidades de VM heredadas
  8. Haga clic en 'Mostrar todo' y regrese a la configuración principal
  9. Haga clic en 'Mostrar' y asegúrese de que la aceleración de gráficos 3D esté activada. Si no se puede activar, es un buen indicio de que la máquina virtual se creó con otro conjunto de chips y realmente no es compatible con su máquina.
  10. Haga clic en 'Mostrar todo' y regrese a la configuración principal
  11. Haga clic en 'General' y luego presione el botón 'Limpiar máquina virtual'. Esto eliminará toda la basura adicional de las instantáneas y lo devolverá a un estado de imagen de VM agradable y limpio.
  12. Haga clic en 'Mostrar todo' y regrese a la configuración principal
  13. Haga clic en 'Procesadores y RAM' y configúrelos según sus necesidades. Necesita al menos 1 procesador, pero si tiene una máquina multinúcleo, puede configurarlo más alto. Idealmente, nunca establecería la cantidad de procesadores en la VM en más de Núcleos físicos en la máquina: 1. De esa manera, su máquina física siempre tiene un núcleo para sí misma. La memoria RAM debe establecerse al menos en el valor recomendado. Si tiene mucha RAM en la máquina, puede aumentarla, pero no se vuelva loco con ella.
  14. Ahora encienda la máquina virtual y vuelva a instalar la herramienta VMWare (Máquina virtual -> Reinstalar herramientas VMWare...).

Otras cosas a considerar:

  • La máquina virtual debe estar en un disco rápido. Esto generalmente significa su unidad principal en su máquina. Si está en un disco conectado por USB o en una unidad conectada a la red, el rendimiento se verá afectado.
  • No pueden usar la imagen de VM al mismo tiempo. Digo esto en caso de que lo tengas en un disco compartido y ambos intenten ejecutarlo al mismo tiempo. Tienes que hacer tus propias copias únicas de la imagen.
  • Verifique el Administrador de tareas en la máquina virtual para ver qué se está ejecutando. Tal vez tenga uno o dos procesos que se están descarrilando y consumiendo toda la CPU de la máquina virtual. Si ese es el caso, se encuentra en una pregunta directa de por qué este proceso se comporta mal en Windows y sospecho que debería llevarlo a http://superuser.com .

Si esto no hace que la máquina virtual esté en un estado utilizable, es probable que su hardware y el hardware en el que se creó la máquina virtual estén demasiado separados en compatibilidad para que pueda pasar la máquina virtual.

A pesar de mi aclaración (sin diferencia de hardware), ¡estoy atascado en el elemento 1! ¿Qué es una "instantánea"?
Las instantáneas de @Calaf son estados guardados de la máquina virtual. Desde la ventana Biblioteca de máquinas virtuales (Shift+Cmd+L) puede hacer clic derecho en una VM y seleccionar Instantáneas... de la lista para ver todos los estados guardados. Eliminar todos ellos.
Solo veo una instantánea, marcada como "Estado actual - Apagado". Seleccionarlo no habilita la opción "Eliminar" en el menú Editar. Al hacer clic con el botón derecho en él, no se muestra una opción para eliminarlo. ¿Qué hacer?
Genial. ¡Eso significa que no tiene instantáneas y que la máquina ya está apagada! Vaya al paso 3 anterior.
Los pasos 5, 7 y 9 ya estaban en la configuración que sugirió. Ejecutar los pasos 11 y 12 no ayudó. Solo moverse a través de los elementos en el menú Inicio es muy lento. Es aún más molesto. La máquina virtual ahora es lenta incluso para el primer usuario. ¿Hay alguna solución más simple que reinstalar Windows?
Consulte los pasos 12 y 13 de la pregunta editada. ¿Está ejecutando algún software en la VM cuando es lento o es solo el sistema operativo estándar que se está ejecutando?
El Administrador de tareas muestra ~0% de CPU para cada proceso. Solo un usuario inicia sesión y usa la VM a la vez (después de reiniciar OS X). El único problema potencial es que seguí adelante y usé la partición BOOTCAMP (que es FAT32, no UFS+), pero dudo que sea un factor, ya que Windows 7 funcionó inicialmente sin problemas sobre VMware.
¿Tiene habilitado FileVault (heredado) en una de las cuentas de usuario (la más lenta)? De forma predeterminada, VMware Fusion coloca nuevas máquinas virtuales en su directorio ~/Documentos y, por lo tanto, la sobrecarga adicional que requiere FileVault puede ralentizar considerablemente el rendimiento de una máquina virtual. Muevo el directorio de máquinas virtuales a la raíz en las máquinas (heredadas) de FileVault
Ah... aquí hay algo que ha funcionado. Probé el elemento 14 seleccionando "reparar...", lo que no ayudó. Ahora seleccioné "eliminar..." e instalé una copia nueva de VMware Tools. Déjame comprobar si es suave para el segundo usuario.
@binarybob No se usa FileVault, pero la VM se encuentra en una partición FAT32 separada. En todo caso, una partición separada debería ser mejor, ¿no? Y el controlador OS X parece ser generalmente ágil con acceso FAT32.
@Calaf sí, los procesos de instalación del controlador ayudan a optimizar los controladores invitados para el hardware subyacente. Si mueve la VM, es casi un hecho que debe reinstalar los controladores VMWare.
@Ian C. Inicialmente, VMware se instaló en ~/Documentos, pero hice una segunda instalación (completamente separada, sin mover) directamente en /Volumes/BOOTCAMP. Es esa instalación de Windows 7 VM (en /Volumes/BOOTCAMP) que estoy tratando de hacer utilizable por varias cuentas en la misma MacBook.
@Calaf, siempre y cuando no intenten usarlo al mismo tiempo, debería estar bien. ¿La reinstalación de VMWare Tools ayudó?
Sí, solo un usuario inició sesión a la vez, y aun así... Eliminar e instalar (no reparar) las herramientas de VMware ayudó al usuario que lo hizo, ¡pero Windows se volvió lento para el otro usuario! Me estoy dando por vencido.
@IanC. Estoy a punto de reinstalar la VM de Windows después de configurar "Preasignar espacio" en "Disco duro" en la Configuración de VM. Me sorprende que no lo hayas mencionado a pesar de que tu mensaje es bastante completo. ¿Es su experiencia que hace poca diferencia en la práctica?
No he notado un impacto en el rendimiento de mis máquinas virtuales de Windows y no asigno previamente el espacio. Si hace una diferencia, ¡infórmenos y háganoslo saber!