VMware schnell für den ersten Benutzer, träge für den zweiten

Nach dem Start von VMware und dem Öffnen der von einem anderen Benutzer vorbereiteten virtuellen Maschine läuft Windows 7 sehr langsam. Das Lesen/Schreiben von Dateien ist 10-30x langsamer als es sein sollte und Windows hat damit begonnen, Fensterbewegungen/-größen zu animieren, was das Betriebssystem (oder VMware?) in die Knie zwingt.

Wie gehe ich vor, um das Problem zu debuggen?

Klarstellung Die beiden Benutzer sind zwei Konten auf demselben MacBook. Die beiden Benutzer teilen sich dasselbe OSX, und daher erscheint es vernünftig, dass sie auch dieselbe Windows-VM teilen.

Update Nach einer weiteren Neuinstallation von VMware + Windows 7, diesmal ausschließlich von einem Benutzer installiert und genutzt, setzt die gleiche Trägheit ein. Es gibt ein paar Verdachtsmomente.

Mds spielt zum Beispiel verrückt. Könnte es sein, dass es die separate Partition, auf der die Windows-VM installiert ist, indiziert (und irgendwie stört)?

Die Trägheit beginnt nach ein wenig Gebrauch: dem Entpacken meines Codes und ein paar Debugging-Zyklen unter Windows. Könnte es sein, dass ich mich an VMwares Vorgabe halte, die Festplattennutzung nach Bedarf zu erhöhen, so früh zu einer gewissen Fragmentierung beiträgt? VMware schlägt, wie ich jetzt sehe, die Verwendung des Nicht-Standards (Festplattenspeicher ab dem ersten Moment der Installation zuweisen) für die Verwendung in der Produktion vor. (Welche andere Verwendung gibt es? Und wie könnte die Verwendung außerhalb der Produktion der Standard sein?)

"Die Trägheit beginnt nach kurzem Gebrauch" -- sind Sie sicher, dass es nicht Ihre Entwicklungsarbeit ist, die es herunterzieht? Was zeigt Process Explorer auf der VM an, wenn sie träge ist? Wenn Sie eine Hand beim Debuggen wollen, sollten wir es in einen Chat bringen ...

Antworten (2)

Lesen Sie den VMware -Support-Artikel 1015676 , um zu erfahren, was zu Verlangsamungen führen kann und was Sie dagegen tun können.

Als Standardpraxis ändere ich einige Speicherverwaltungseinstellungen, wie ich in dieser Antwort auf eine andere VMware-Leistungsfrage erkläre.

Dinge, die Sie insbesondere überprüfen sollten, wenn "mds berzerk wird":

In Bezug auf die Vorabzuweisung von Festplattenspeicher hängt es vollständig von Ihrem Festplattennutzungsmuster ab, ob dies eine Leistungseinbuße darstellt oder nicht oder wie stark sich dies auf Sie auswirkt. Es ist ein Leistungseinbruch, die Größe des Laufwerks zu erweitern. Wenn Sie selten Daten von der Festplatte löschen, aber häufig Daten hinzufügen (insbesondere wenn Sie Programme ausführen, die Dateien generieren, z. B. Protokolldateien oder transcodierte Mediendateien), werden Sie am meisten darunter leiden. Wenn Sie große Dateien herunterladen, verwenden und dann löschen, wird Ihnen am Ende wahrscheinlich genug freier Speicherplatz zugewiesen, um den Unterschied nicht zu bemerken.

Sie können auch experimentieren mit:

  • Aktivieren Sie die Festplattenpufferung. Dies war für mich kritisch, als sich meine VM auf einem RAID 5-Array befand, aber ansonsten war es egal. VM-Einstellungen -> Erweitert, "Festplattenpufferung" auf "Aktiviert" setzen
  • Windows-Auslagerungsdatei aktivieren/deaktivieren. Für einen echten Computer ist es am besten, die Auslagerungsdatei unter Windows 7 aktiv und vom System verwaltet zu lassen (im Gegensatz zu XP, wo es wahrscheinlich besser ist, sie zu entfernen, wenn Sie über genügend RAM verfügen). Für eine VM, die eine virtuelle Festplatte verwendet, ist dies nicht so eindeutig, aber einfach genug zu testen. Befolgen Sie diese Anweisungen , um zu den Einstellungen für die Auslagerungsdatei zu gelangen, aber anstatt eine Größe auszuwählen, wählen Sie „Keine Auslagerungsdatei“.
Mein Festplattennutzungsmuster unter Windows besteht darin, mein Postleitzahlenarchiv von OS X auf die Windows-VM zu kopieren, zu entpacken, zu kompilieren/debuggen und schließlich die ZIP-Datei und das entpackte Verzeichnis in 01, 02, ... umzubenennen, um für das nächste bereit zu sein Iteration nach einigem Debuggen. Mit anderen Worten, ich lösche die Iterationen nicht, während ich gehe, sondern als Stapel, wenn eine neue Version fertig ist. Jeder Kompilier-/Debugzyklus besteht jedoch aus dem Löschen alter Objektdateien durch Visual Studio. Ich bin mir nicht sicher, ob diese Löschungen selbst eine Fragmentierung/Verlangsamung unter VMware verursachen könnten.
@Calaf, hört sich so an, als wären Sie mit einer vorab zugewiesenen Festplatte besser bedient. Die einzigen Gründe, vorab zugewiesene Festplatten nicht zu verwenden, sind, dass sie mehr Festplattenspeicher auf dem Host beanspruchen und die VM zum Kopieren größer machen. Wenn dies keine Probleme sind, weisen Sie die Festplatte definitiv vorab zu. Andernfalls könnten Sie versuchen, das Wachstum zu erzwingen, indem Sie eine zusätzliche Kopie des neuen Codes erstellen und ihn dann löschen und den Papierkorb leeren (um den neu zugewiesenen Speicherplatz freizugeben), jedes Mal, wenn Sie eine neue Version übertragen. (Die virtuelle Festplatte wird nie automatisch verkleinert.)
..und man kann nicht einfach on-the-fly von einer inkrementellen zu einer vorab zugewiesenen Festplatte wechseln. Es ist notwendig, Windows von Grund auf neu zu installieren. Ist das richtig? Die Größe spielt übrigens keine Rolle, da ich der Windows-VM eine Partition widme.
@Calaf, Sie können einfach zu vorab zugewiesen wechseln. Fahren Sie Windows herunter, sodass die VM ausgeschaltet erscheint, wählen Sie dann in den VM-Einstellungen die Festplatte, Erweiterte Optionen und klicken Sie auf „Speicherplatz vorab zuweisen“ und dann auf „Übernehmen“.
Wie schön, aber wie mein Pech es will, erhalte ich "Für die ausgewählte Operation ist nicht genügend Speicherplatz im Dateisystem vorhanden" - obwohl ich 2 GB übrig gelassen hatte, um die unterschiedlichen Interpretationen von "GB" zu berücksichtigen. Auf einer 40GB-Partition sollte das reichen, also muss noch etwas eine Rolle spielen.
Es ist auch hilfreich, die Augenweide in Windows 7 zu deaktivieren: Systemsteuerung (Ansicht: Große Symbole) \ System \ Erweiterte Systemeinstellungen (im linken Bereich) \ Erweitert \ Leistung \ Einstellungen \ Visuelle Effekte \ Für beste Leistung anpassen.

Wie gehe ich vor, um das Problem zu debuggen?

Das Weitergeben von VM-Images ist eine heikle Angelegenheit. Das Image wird häufig mit Hypervisor-Erweiterungen erstellt, die bestimmte Hardwarefunktionen auf dem Computer nutzen, auf dem die VM erstellt wurde. Wenn Sie nicht genau dieselbe Hardware verwenden (insbesondere dieselbe CPU), kann die VM langsam laufen oder sogar Ihr Host-Betriebssystem zum Absturz bringen oder Ihre CPU blockieren.

Ich würde damit beginnen, die VM wieder in einen Ausgangszustand zu versetzen:

  1. Löschen Sie alle Snapshots in der VM
  2. Schalten Sie das Gastbetriebssystem aus, sodass es „aus“ und nicht nur angehalten ist
  3. Rufen Sie das Fenster Virtual Machine Library auf (Shift+Cmd+L) und wählen Sie die VM aus
  4. Klicken Sie auf das Schraubenschlüssel-Symbol in der Symbolleiste, um das Einstellungsfenster für diese VM aufzurufen
  5. Wählen Sie „Erweitert“ und stellen Sie sicher, dass die bevorzugte Virtualisierungs-Engine auf „Automatisch“ und die Festplattenpufferung ebenfalls auf „Automatisch“ eingestellt ist.
  6. Klicken Sie auf „Alle anzeigen“, um zu den Haupteinstellungen zurückzukehren
  7. Klicken Sie auf „Kompatibilität“ und stellen Sie sicher, dass die Kompatibilität der VM mit der von Ihnen ausgeführten Version von VMWare oder höher eingestellt ist (in meinem Fall ist dies Fusion 4 oder höher), sodass Sie keine älteren VM-Funktionen benötigen
  8. Klicken Sie auf „Alle anzeigen“ und kehren Sie zu den Haupteinstellungen zurück
  9. Klicken Sie auf „Anzeigen“ und vergewissern Sie sich, dass die 3D-Grafikbeschleunigung aktiviert ist. Wenn es nicht eingeschaltet werden kann, ist dies ein ziemlich guter Hinweis darauf, dass die VM mit einem anderen Chipsatz erstellt wurde und wirklich nicht mit Ihrem Computer kompatibel ist.
  10. Klicken Sie auf „Alle anzeigen“ und kehren Sie zu den Haupteinstellungen zurück
  11. Klicken Sie auf „Allgemein“ und dann auf die Schaltfläche „Virtuelle Maschine bereinigen“. Dadurch wird der gesamte zusätzliche Cruft von Snapshots entfernt und Sie kehren zu einem schönen, sauberen VM-Image-Zustand zurück.
  12. Klicken Sie auf „Alle anzeigen“ und kehren Sie zu den Haupteinstellungen zurück
  13. Klicken Sie auf „Prozessoren & RAM“ und stellen Sie diese nach Ihren Bedürfnissen ein. Sie benötigen mindestens 1 Prozessor, aber wenn Sie eine Multi-Core-Maschine haben, können Sie diese höher einstellen. Idealerweise würden Sie die Anzahl der Prozessoren in der VM niemals auf mehr als Physische Kerne in der Maschine - 1 festlegen. Auf diese Weise hat Ihre physische Maschine immer einen Kern für sich. RAM sollte mindestens auf den empfohlenen Wert eingestellt werden. Wenn Sie viel RAM in der Maschine haben, können Sie dies erhöhen, aber werden Sie nicht zu verrückt damit.
  14. Schalten Sie nun die VM ein und führen Sie eine Neuinstallation des VMWare-Tools durch (Virtual Machine -> Reinstall VMWare Tools...).

Andere Dinge zu beachten:

  • Die VM sollte sich auf einer schnellen Festplatte befinden. Dies bedeutet normalerweise Ihr primäres Laufwerk in Ihrem Computer. Wenn es sich um eine USB-Festplatte oder ein Netzwerklaufwerk handelt, leidet die Leistung.
  • Sie können das VM-Image nicht gleichzeitig verwenden. Ich sage das, falls Sie es auf einem gemeinsamen Laufwerk haben und beide versuchen, es gleichzeitig auszuführen. Sie müssen Ihre eigenen, einzigartigen Kopien des Bildes erstellen.
  • Überprüfen Sie den Task-Manager in der VM, um zu sehen, was ausgeführt wird. Vielleicht haben Sie einen oder zwei Prozesse, die aus dem Ruder laufen und die gesamte VM-CPU auffressen. Wenn dies der Fall ist, stehen Sie vor einer Frage, warum sich dieser Prozess in Windows schlecht benimmt, und Sie müssten sie zu http://superuser.com bringen , vermute ich.

Wenn die VM dadurch nicht in einen brauchbaren Zustand versetzt wird, ist es wahrscheinlich, dass Ihre Hardware und die Hardware, auf der die VM erstellt wurde, in der Kompatibilität zu weit voneinander entfernt sind, als dass Sie die VM weitergeben könnten.

Trotz meiner Klarstellung (kein Hardwareunterschied) bleibe ich bei Punkt 1 hängen! Was ist ein „Schnappschuss“?
@Calaf-Snapshots sind gespeicherte Zustände der virtuellen Maschine. Im Fenster Virtual Machine Library (Shift+Cmd+L) können Sie mit der rechten Maustaste auf eine VM klicken und Snapshots... aus der Liste auswählen, um alle gespeicherten Zustände anzuzeigen. Löschen Sie alle.
Ich sehe nur einen Schnappschuss, der mit „Aktueller Status – Ausgeschaltet“ gekennzeichnet ist. Wenn Sie es auswählen, wird die Option "Löschen" im Menü "Bearbeiten" nicht aktiviert. Wenn Sie mit der rechten Maustaste darauf klicken, wird keine Option zum Löschen angezeigt. Was zu tun ist?
Das ist großartig. Das bedeutet, dass Sie keine Snapshots haben und die Maschine bereits heruntergefahren ist! Fahren Sie mit Schritt 3 oben fort.
Die Schritte 5, 7 und 9 waren bereits in der von Ihnen vorgeschlagenen Konfiguration enthalten. Das Ausführen der Schritte 11 und 12 hat nicht geholfen. Nur das Navigieren durch die Elemente im Startmenü ist sehr langsam. Es ist noch lästiger. Die VM ist jetzt sogar für den ersten Benutzer langsam. Gibt es eine einfachere Lösung als Windows neu zu installieren?
Siehe bearbeitete Frage, Schritte 12 und 13. Führen Sie Software in der VM aus, wenn sie langsam ist, oder wird nur das einfache Vanilla-Betriebssystem ausgeführt?
Der Task-Manager zeigt ~0% CPU für jeden Prozess an. Es ist jeweils nur ein Benutzer angemeldet und verwendet die VM (nach einem Neustart von OS X). Das einzige mögliche Problem ist, dass ich weitergemacht und die BOOTCAMP-Partition verwendet habe (die FAT32 ist, nicht UFS +), aber ich bezweifle, dass dies ein Faktor ist, da Windows 7 anfangs sehr reibungslos über VMware lief.
Haben Sie (altes) FileVault auf einem der Benutzerkonten (dem langsameren) aktiviert? Standardmäßig legt VMware Fusion neue VMs in Ihrem ~/Documents-Verzeichnis ab, und daher kann der von FileVault benötigte zusätzliche Overhead die Leistung einer VM erheblich verlangsamen. Ich verschiebe das Verzeichnis Virtual Machines in das Stammverzeichnis auf (älteren) FileVault-Maschinen
Ah ... hier ist etwas, das funktioniert hat. Ich hatte Punkt 14 versucht, indem ich "reparieren ..." auswählte, was nicht half. Jetzt habe ich "Entfernen ..." ausgewählt und eine neue Kopie von VMware Tools installiert. Lassen Sie mich prüfen, ob es für den zweiten Benutzer reibungslos ist.
@binarybob Kein FileVault verwendet, aber die VM befindet sich auf einer separaten FAT32-Partition. Wenn überhaupt, sollte eine separate Partition besser sein, oder? Und der OS X-Treiber scheint im Allgemeinen flink mit FAT32-Zugriff zu sein.
@Calaf ja, die Treiberinstallationsprozesse helfen bei der Optimierung der Gasttreiber für die zugrunde liegende Hardware. Wenn Sie die VM verschieben, müssen Sie die VMWare-Treiber neu installieren.
@Ian C. Ursprünglich wurde VMware in ~/Documents installiert, aber ich habe eine zweite (völlig separate, keine Verschiebung) Installation direkt in /Volumes/BOOTCAMP vorgenommen. Es ist diese Windows 7-VM-Installation (in / Volumes / BOOTCAMP), die ich versuche, von mehreren Konten auf demselben MacBook nutzbar zu machen.
@Calaf, solange sie nicht versuchen, es gleichzeitig zu verwenden , sollte das in Ordnung sein. Hat die Neuinstallation der VMWare Tools geholfen?
Ja, es war immer nur ein Benutzer gleichzeitig angemeldet, und trotzdem ... Das Entfernen und Installieren (nicht das Reparieren) der VMware-Tools hat für den Benutzer geholfen, der es getan hat, aber Windows wurde für den anderen Benutzer träge! Ich gebe auf.
@IanC. Ich bin dabei, die Windows-VM neu zu installieren, nachdem ich in den VM-Einstellungen unter "Festplatte" "Speicherplatz vorab zuweisen" eingestellt habe. Ich bin überrascht, dass Sie es nicht erwähnt haben, obwohl Ihre Nachricht ziemlich ausführlich ist. Macht es Ihrer Erfahrung nach in der Praxis kaum einen Unterschied?
Ich habe keine Leistungseinbußen auf meinen Windows-VMs festgestellt und weise den Speicherplatz nicht vorab zu. Wenn es einen Unterschied macht, melde dich wieder und lass es uns wissen!