Soll ich die Festplatte auf einer virtuellen Maschine defragmentieren?

Ich weiß, dass es keinen Sinn hat (tatsächlich ist es eine schlechte Idee), Defrag auf einer SSD auszuführen. Was ist mit einer virtuellen Maschine, die auf einer SSD ausgeführt wird, sollte ich die Festplatte defragmentieren, da sie im Grunde auf die gleiche Weise auf die Festplatte zugreift?

Author: Kris Erickson, 2012-02-09

8 answers

Ich defragmentiere meine VHDs aber aus Platzgründen, nicht aus Zeitgründen:

Ich verwende die dynamisch zugewiesene Option für VHDs, damit sie klein beginnen und nach Bedarf erweitert werden. Da die VHD (nicht unbedingt die Dateien) jedoch fragmentiert wird, wird sie um alle zugewiesenen Blöcke erweitert. Das Defragmentieren der VHD ist der erste Schritt, um sie erneut zu komprimieren.

 14
Author: JRobert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-09 20:13:23

Eine SSD muss nicht defragmentiert werden. Eine normale Festplatte muss sich drehen, um (die Teile von) Dateien zu finden. Eine SSD ist vergleichbar mit RAM, alle Dateien können mit der gleichen Verzögerung erreicht werden.

Wikipedia gibt an, dass sich "die Leseleistung nicht ändert, je nachdem, wo Daten auf einer SSD gespeichert sind"

 3
Author: Simon Verbeke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-13 20:43:02

Dies ist nur meine Meinung, ich habe keine Testergebnisse, um es zu sichern. Hier ist eine grobe Annäherung, wie die Dinge wahrscheinlich passieren:

Reales Betriebssystem:

  1. Anwendung fragt nach Daten X (schnell)
  2. OS fragt Datentreiber nach Daten X (schnell)
  3. Physische Festplatte ruft Daten X ab und gibt sie an das Betriebssystem zurück (langsam, wenn fragmentiert)

Hier wäre die äquivalente Befehlskette in einer VM:

  1. VM-Anwendung fragt nach Daten X (schnell)
  2. VM-Betriebssystem fragt Daten X (schnell)
  3. VM-Host fordert echtes Betriebssystem auf, Daten X in einer Datei auf virtueller Festplatte (schnell) zu speichern
  4. Real OS bittet den Datentreiber, Daten X (schnell) zu erhalten
  5. Physische Festplatte ruft Daten X ab und gibt sie an das Betriebssystem zurück (langsam, wenn fragmentiert).

Wie Sie sehen, wird die Fragmentierung in beiden Fällen nur dann wirklich zu einem Problem in der Phase des Vorgangs, in der die physische Festplatte versucht, die Daten zu lesen, und dies geschieht im realen Betriebssystem außerhalb des VM-Kontexts. Davor, alles passiert wahrscheinlich im Speicher.

Da wir wissen, dass SSDs im realen Betriebssystem nicht unter Fragmentierung leiden und dass das Problem der Fragmentierung in einer VM wahrscheinlich nur im letzten physischen Schritt des Vorgangs auftritt, würde ich vermuten, dass das Defragmentieren entweder Ihres virtuellen Betriebssystems oder der virtuellen Festplattendatei in Ihrem Hauptbetriebssystem die Leistung auf einer SSD nicht verbessern würde, während es so schädlich/nutzlos ist, wie das Defragmentieren Ihres realen Betriebssystems.

Edit: Und wenn das stimmt, ist es eine verdammt guter Grund, eine VM auf eine SSD zu setzen! Auf einer Festplatte bricht die Fragmentierung in jedem Stadium (Gastbetriebssystem, virtuelle Festplattendatei, echtes Betriebssystem) die Linearität und führt zu einer Fragmentierung auf der physischen Festplatte.

 2
Author: mtone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-09 19:50:49

Unabhängig davon, ob Ihre virtuelle Maschine auf Daten zugreift, die auf einer herkömmlichen magnetischen Festplatte oder einer elektronischen SSD gespeichert sind, verlangsamt Windows NTFS file & Free Space Fragmentierung die Zugriffsgeschwindigkeit von Anwendungen, die Daten anfordern. Die Fragmentierung von NTFS-Dateien und freiem Speicherplatz tritt weitaus häufiger auf, als Sie sich vorstellen können. Es kann passieren, sobald Sie das Betriebssystem installieren. Dies kann passieren, wenn Sie Anwendungen oder Systemupdates installieren, auf das Internet zugreifen, Fotos herunterladen und speichern, erstellen Sie E-Mail, Office-Dokumente, etc... Es ist ein normales Auftreten und Verhalten des Computersystems, hat aber einen negativen Einfluss auf über alle Anwendung und Systemleistung. Wenn eine Fragmentierung auftritt, führt das Computersystem und der zugrunde liegende Speicher mehr Arbeit aus als nötig. Jede E / A-Anforderung benötigt eine messbare Zeit. Selbst in SSD-Umgebungen gibt es keine "sofortige" E/A-Anforderung. Jedes Mal, wenn eine Anwendung zum Lesen oder Schreiben von Daten anfordert und diese Anforderung aufgeteilt wird bei zusätzlichen E / A-Anfragen führt dies zu mehr Arbeit. Diese zusätzliche Arbeit verursacht gerade in diesem Moment eine Verzögerung.

Festplattenlaufwerke sind im Laufe der Jahre schneller geworden, aber auch CPUs. Tatsächlich hat sich die Lücke zwischen dem Geschwindigkeitsunterschied zwischen Festplatten und CPU tatsächlich vergrößert. Dies bedeutet, dass Anwendungen viele CPU-Zyklen erhalten können, aber immer noch hungern, um die Daten aus dem Speicher zu erhalten. Darüber hinaus hat die Menge der gespeicherten Daten zugenommen dramatisch. Denken Sie nur an all diese digitalen Fotos, die über die Feiertage aufgenommen und geteilt wurden. Jedes Foto muss ungefähr 1 MB groß sein, jetzt überschreiten sie 15 MB pro Foto und einige gehen weit darüber hinaus. Videobearbeitung und Rendering und Speicherung von digitalen Filmen sind ebenfalls sehr beliebt geworden und infolgedessen manipulieren Anwendungen Hunderte von Gigabyte Daten. Bei typischen Festplattenclustergrößen von 4k könnte eine Datei mit einer Größe von 15 MB möglicherweise in fast 4.000 Bereiche fragmentiert werden. Dies bedeutet ein zusätzliche 4.000 Festplatten-E / A-Anforderungen sind erforderlich, um die Datei zu lesen oder zu schreiben. Unabhängig von der Art des Speichers dauert es einfach länger, bis der Vorgang abgeschlossen ist.

Die physische Platzierung von Daten auf einer SSD spielt keine Rolle wie auf normalen magnetischen Festplatten. Mit einer SSD gibt es keine Rotationslatenz oder keine Zeit zu kämpfen. Viele Experten gehen davon aus, dass Fragmentierung kein Problem mehr ist, aber die Geschwindigkeit des Anwendungsdatenzugriffs ist nicht nur in diesen Begriffen definiert. Jedes I/O Anfrage durchgeführt, dauert eine messbare Menge von Zeit. SSD ' s sind schnell, aber sie sind nicht augenblicklich. Das Windows NTFS-Dateisystem verhält sich nicht anders, da der zugrunde liegende Speicher eine SSD gegenüber einer Festplatte ist und daher immer noch eine Fragmentierung auftritt. Die Reduzierung der unnötigen E/A durch Verhinderung und Beseitigung der Fragmentierung reduziert die Anzahl der E / A-Anforderungen und beschleunigt dadurch die Reaktionszeit der Anwendungsdaten und verbessert die Gesamtlebensdauer der SSD. Im Wesentlichen sorgt dies für mehr sequentielle E / A-Operationen, die im Allgemeinen schneller sind und zufällige Schreibvorgänge übertreffen.

Darüber hinaus erfordern SSD ' s, dass alte Daten gelöscht werden, bevor neue Daten darüber geschrieben werden, anstatt nur über die alten Informationen wie bei Festplatten zu schreiben. Dies verdoppelt den Verschleiß und kann zu großen Problemen mit der Geschwindigkeitsleistung und Lebensdauer der SSD führen. Die meisten SSD-Hersteller verfügen über sehr ausgeklügelte Wear-Leveling-Technologien, um dies zu unterstützen. Das Hauptproblem ist die Verschlechterung der Schreibgeschwindigkeit. um Freiraum Fragmentierung. Kleine Freiräume, die über die SSD verteilt sind, führen dazu, dass das NTFS-Dateisystem eine Datei in fragmentierten Teilen in diese kleinen verfügbaren Freiräume schreibt. Dies hat den Effekt, dass mehr zufälliger E / A-Verkehr verursacht wird, der langsamer ist als sequentielle Operationen.

Ich habe Benchmark-Ergebnisse, um dies zu sichern. Wenn Sie möchten, schreiben Sie einen Kommentar und fordern Sie diese Ergebnisse an, und ich würde sie gerne mit Ihnen teilen.

 2
Author: Howard Butler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-13 20:31:51

In Bezug auf die ursprüngliche Frage einer traditionellen Defragmentierung einer SSD stimme ich zu, dass dies eine schlechte Idee ist, aber es gibt spezifische Lösungen, die die Bedenken hinsichtlich der Dateibewegung und der SSD-Lebensdauer berücksichtigen.

Bei einer virtuellen Maschine, auf der Windows als Betriebssystem ausgeführt wird, tritt weiterhin eine Fragmentierung auf, und der kombinierte Effekt des zusätzlichen E/A-Datenverkehrs verringert die Geschwindigkeit und Effizienz nicht nur der Gastsysteme, sondern auch des Hosts. Sowohl Microsoft als auch VMware empfehlen Sie die Notwendigkeit, die Fragmentierung auf Gastebene zu beheben.

Hier ist der Grund...

  1. Anwendung fragt nach Daten X

  2. Anfrage wird von NTFS verarbeitet.sys

  3. Die Dateiattribute werden untersucht ($MFT) und wenn die Daten nicht in einer einzelnen Ausdehnung (Fragment) enthalten sind, werden zusätzliche E/A-Anforderungen für jede Ausdehnung/jedes Fragment erstellt, um die ursprüngliche Datenanforderung zu erfüllen.

  4. Jede dieser Anforderungen wird dann an den Festplattenspeicher gesendet Treiber.

  5. Sobald die Daten abgerufen wurden, werden sie wieder an den Stack an den Benutzer/die Anwendung übergeben.

Jede virtuelle Windows-Maschine sendet diese Art von E / A-Datenverkehr an das Hostsystem. Wenn die Dateisystemstruktur auf der Ebene der Gast - /virtuellen Maschine fragmentiert ist, führt dies dazu, dass zusätzlicher und unnötiger E/A-Verkehr vom Host verarbeitet und der Back-End-Speicher bewirtschaftet werden muss. Dies wird weiter verschärft, wenn Sie mehr und mehr virtuelle hinzufügen Maschine. In der Tat können Sie Fragmentierung innerhalb Fragmentierung auf der Host-Dateisystemebene haben.

Unabhängig davon, ob die Daten auf einer SSD oder einer herkömmlichen Festplatte gespeichert sind, wenn Sie Windows ausführen, wird das NTFS-Dateisystem fragmentiert und Sie werden aufgrund der Fragmentierung von NTFS-Dateien und freiem Speicherplatz niemals die erforderliche Nenngeschwindigkeit und den Durchsatz erreichen. Die Effekte können über PerfMon gemessen werden, indem die durchschnittliche Länge der Schreibwarteschlange auf der Festplatte, die durchschnittliche Länge der Schreibwarteschlange und die meisten wichtig: IO / Sec.

 2
Author: Howard Butler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-14 19:09:05

Ab Windows Server 2008 und Windows Vista, seien Sie vorsichtig mit Windows Standard geplante Defrag Aufgabe.

Es kann deaktiviert werden mit: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable

Oder mit PowerShell:

Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask

Extrahiert aus: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html

 1
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-23 15:07:32

Ich habe gerade eine VMLite XPMode VM mit Windows defragmentiert, die auf 240Gb INTEL SSDSC2CW240A3 gehostet wird.

VM-Größe auf Host vor defragmentieren-7.83 GB (Verwendeter Speicherplatz auf C: auf VM, 5.81 GB von 121Gb)

Post defrag-9.86 Gb (Verwendeter Speicherplatz auf C: auf VM, 5.80 Gb von 121Gb)

Nicht das erwartete Ergebnis und ich habe die Pre-Defrag-Version wiederhergestellt.

 0
Author: Essendee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-10-01 12:11:07

Nein, nicht wirklich. Es gibt Sachen wie "Hyperfast" von Diskeeper, aber ich habe keine Ahnung, wie effizient diese Technologien sind. (Es ist vielleicht nur eine Abzocke, damit sie nicht vom Markt fallen, nachdem SSD Mainstream wird.)

 -1
Author: Apache,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-09 18:04:42