
Dieses Themadiskutiert die NTFS-Komprimierung auf Festplatten als Methode zur Verbesserung der Festplattenzugriffsleistung und kommt zu dem Schluss, dass sie in dieser Hinsicht häufig nicht gut genug ist. Ich habe Komprimierung jedoch immer als Möglichkeit zur Speicherplatzersparnis betrachtet und dabei ihre Wirksamkeit erkannt. Und jetzt habe ich eine SSD, bei der Speicherplatz teuer ist und die Leistungseinbußen, z. B. beim Lesen/Schreiben von 2 Clustern statt 1, viel geringer sind.
Andererseits bin ich der Meinung, dass ein höherer Durchsatz zu einer höheren CPU-Auslastung führt, da SSDs viel schneller sind als HDDs. Kann das zu einem Problem werden? Gibt es noch andere Gedanken zu diesem Thema?
Mir gefällt der Platzspareffekt, er ist nicht riesig, aber er ist da. Wenn es allerdings um die Leistung geht, würde ich ihn lieber ausschalten:
Antwort1
Microsoftschrieb dies vor einiger Zeit in einem Blog:
NTFS komprimiert Dateien, indem es den Datenstrom in CUs aufteilt (das ist ähnlich wie Sparse-Dateien funktionieren). Wenn der Stream-Inhalt erstellt oder geändert wird, wird jede CU im Datenstrom einzeln komprimiert. Wenn die Komprimierung zu einer Reduzierung um einen oder mehrere Cluster führt, wird die komprimierte Einheit in ihrem komprimierten Format auf die Festplatte geschrieben. Dann wird ein Sparse-VCN-Bereich zur Ausrichtung an das Ende des komprimierten VCN-Bereichs angehängt (wie im folgenden Beispiel gezeigt). Wenn die Daten nicht ausreichend komprimiert werden, um die Größe um einen Cluster zu reduzieren, wird die gesamte CU in ihrer unkomprimierten Form auf die Festplatte geschrieben.
Dieses Design ermöglicht einen sehr schnellen Direktzugriff, da nur eine CU dekomprimiert werden muss, um auf eine einzelne VCN in der Datei zuzugreifen. Leider ist ein großer sequentieller Zugriff relativ langsamer, da für sequentielle Vorgänge (wie Backups) die Dekomprimierung vieler CUs erforderlich ist.
Und in einemKB-Artikel schreibt dies:
Durch die Komprimierung des NTFS-Dateisystems lässt sich zwar Speicherplatz sparen, die Datenkomprimierung kann sich jedoch negativ auf die Leistung auswirken.Die NTFS-Komprimierung weist die folgenden Leistungsmerkmale auf. Wenn Sie eine komprimierte NTFS-Datei in einen anderen Ordner kopieren oder verschieben, dekomprimiert NTFS die Datei, kopiert oder verschiebt die Datei an den neuen Speicherort und komprimiert sie anschließend erneut. Dieses Verhalten tritt auch dann auf, wenn die Datei zwischen Ordnern auf demselben Computer kopiert oder verschoben wird. Komprimierte Dateien werden außerdem vor dem Kopieren über das Netzwerk entpackt, sodass die NTFS-Komprimierung keine Netzwerkbandbreite spart.
Da die NTFS-Komprimierungprozessorintensiv, die Leistungseinbußen sind auf Servern, die häufig prozessorgebunden sind, stärker spürbar. Stark ausgelastete Server mit viel Schreibverkehr sind keine guten Kandidaten für die Datenkomprimierung.Bei schreibgeschützten, überwiegend schreibgeschützten oder gering ausgelasteten Servern kommt es jedoch möglicherweise nicht zu einer nennenswerten Leistungsverschlechterung.
Wenn Sie ein Programm ausführen, das Transaktionsprotokollierung verwendet und ständig in eine Datenbank oder ein Protokoll schreibt, konfigurieren Sie das Programm so, dass seine Dateien auf einem nicht komprimierten Datenträger gespeichert werden. Wenn ein Programm Daten über zugeordnete Abschnitte in einer komprimierten Datei ändert, kann das Programm „schmutzige“ Seiten schneller erstellen, als der zugeordnete Writer sie schreiben kann. Programme wie Microsoft Message Queuing (auch als MSMQ bekannt) funktionieren aus diesem Grund nicht mit NTFS-Komprimierung.
Da Benutzer-Basisordner und Roaming-Profile zahlreiche Lese- und Schreibvorgänge erfordern, empfiehlt Microsoft, dass Sie Benutzer-Basisordner und Roaming-Profile auf einem Volume ablegen, dessen übergeordneter Ordner oder das Volume-Stammverzeichnis keine NTFS-Komprimierung aufweist.
Zusammenfassung:
Komprimieren Sie nur kleine Dateien, die sich nie ändern (nur Lesen und kein Schreiben), da das Lesen schnell ist, das Schreiben jedoch eine Dekomprimierung und erneute Komprimierung erfordert, was CPU-Leistung beansprucht und der Speichertyp nicht so wichtig ist.
Antwort2
Da Claudio viele Dinge sehr ausführlich erklärt, werde ich seine Meinung wiedergeben, die auch meine ist. Ich habe die gleichen Effekte gesehen, nachdem ich das ausprobiert habe, was er sagt.
Für SSD darf die NTFS-Komprimierung nicht verwendet werden.
Ich werde nun einige Gründe für diese Behauptung aufzählen:
Motiv Nr. 1: Die SSD wird dadurch viel schneller zerstört, da zwei Schreibvorgänge durchgeführt werden. Bei der NTFS-Komprimierung werden unkomprimierte Daten immer in den RAM geschrieben, bevor mit der Komprimierung begonnen wird, und komprimierte Daten werden dann nur dann erneut geschrieben, wenn ein Zugewinn von mindestens 4 KiB erzielt wird.
Motiv Nr. 2: Bei Verwendung eines NTFS 4-KiB-Clusters auf einer SSD geht 50 % der SSD-Geschwindigkeit verloren. Überprüfen Sie einen beliebigen Benchmark und Sie werden feststellen, dass 128-KiB-Blöcke die SSD doppelt so schnell machen als die Verwendung von 4-KiB-Blöcken, und dass die NTFS-Komprimierung nur auf NTFS-Partitionen mit 4-KiB-Clustern verwendet werden kann.
Motiv Nr. 3: Es gibt Container (wie PISMO File Mount), die einen Container erstellen können, der als „on the fly“-Komprimierung und/oder -Verschlüsselung angesehen werden kann. Solche Container führen die Komprimierung im RAM durch und senden keine unkomprimierten Daten auf die Festplatte, bevor sie in komprimierter Form neu geschrieben werden. Darüber hinaus erreicht PISMO eine bessere Komprimierungsrate als NTFS.
Es gibt noch viele weitere Motive, aber das sind die wichtigsten.
Der andere Punkt ist die GESCHWINDIGKEIT. Jede Komprimierung wird auf der CPU durchgeführt. Wenn Sie also keine sehr schnelle CPU haben (für solche Zwecke wird bei NTFS Mono-Threading verwendet, während bei einigen Containern Multi-Threading zum Einsatz kommt), werden Sie beim Komprimieren sehr langsame Lese-/Schreibvorgänge feststellen. Im schlimmsten Fall können Sie eine sehr schnelle CPU haben, diese aber für andere Dinge (wie Rendering, Transkodierung usw.) verwendet wird, sodass keine CPU mehr für die Komprimierung übrig bleibt und Sie auch hier eine schlechte Leistung erzielen.
Die NTFS-Komprimierung ist nur für herkömmliche langsame Festplatten geeignet, wenn die CPU nicht stark beansprucht wird. Sie erfordert jedoch nach jedem Schreibvorgang eine gründliche Defragmentierung (auf Dateiebene), da jeder 64-KiB-Block (komprimiert oder nicht) an einer Position geschrieben wird, die ein Vielfaches von 64 KiB beträgt. Die einzige Möglichkeit, solche Fragmente zu packen, besteht darin, nach der Komprimierung (oder dem Schreiben in einen komprimierten Ordner) eine Defragmentierung der entsprechenden Datei durchzuführen.
PD: Vorsicht, wir sprechen über Windows auf echter Hardware, nicht innerhalb virtueller Maschinen. Wichtig ist, wer auf das physische Medium schreibt. Andere haben möglicherweise Cache-Ebenen, die die Auswirkungen abmildern und die Dinge auch deutlich verbessern können.
Antwort3
Ich sehe die Kommentare anderer und ich denke, die Leute vergessen oft das nützlichste Szenario, in dem die NTFS-Datei-/Ordnerkomprimierung auf SSD einen großen Vorteil bietet: moderne Entwicklungstools. Meineuniversitätslizenziertes Matlabhat in seinem (für normale Benutzer nur lesbaren) Installationsordner die folgenden Datenmengen:
28,5 GB Daten, 30,6 GB Größe auf der Festplatte, enthält 729.246 Dateien und 15.000 Ordner (!!!)
Dies ist auf meinem Laptop mit 500 GB SSD, wobei die Windows-Partition 200 GB groß ist.
Ich weiß, dass Matlab in dieser Hinsicht etwas extrem ist, aber viele Devtools haben ähnliche Eigenschaften: eine Menge kleiner, hoch komprimierbarer Textdateien (Header, Code, XML-Dateien). Ich komprimiere Matlab gerade, bevor ich es installiereIntel Quartus FPGAdevtool undOktaveist bereits wie folgt komprimiert:
1,55 GB Datengröße auf der Festplatte: 839 GB Enthält 34.362 Dateien 1.955 Ordner
Dieses Zeug wird einmal geschrieben und während der Projekterstellung zigmal gelesen. Es macht durchaus Sinn,mancheCPU-Leistung zum Dekomprimieren und Einsparen von möglicherweise der Hälfte Ihres wertvollen SSD-Speicherplatzes.
Antwort4
Sie müssen zweimal Benchmarks durchführen, um das herauszufinden. Komprimiert. Unkomprimiert. Vergessen Sie den Verschleiß von SSDs. Sie benötigen eine schnelle SSD und CPU, damit kein Engpass auftritt.
Eine SSD mit 512 GB kostet heutzutage 50 Dollar. Der schnellste Festplattenzugriff für mich ist bisher die Verwendung von Linux, wo möglich, und des LIFO-Festplattenwarteschlangenmechanismus. Anstelle von CFQ.
Windows 10 erzeugt unendliche Festplattenaktivität mit 12 GB RAM auf meinem Laptop. Linux Mint wird geladen und danach erfolgt fast kein Festplattenzugriff mehr. Es sei denn, Sie leiten es ein. Windows hat einfach eine Art, sich selbst zu beschäftigen, ohne sichtbare Aufgaben zu erledigen.