In che modo la compressione NTFS influisce sulle prestazioni?


57

Ho sentito che la compressione NTFS può ridurre le prestazioni a causa dell'utilizzo aggiuntivo della CPU, ma ho letto i rapporti che potrebbero effettivamente aumentare le prestazioni a causa delle letture ridotte del disco. In che modo esattamente la compressione NTFS influisce sulle prestazioni del sistema?

Appunti:

  • Sto eseguendo un laptop con un disco rigido da 5400 RPM e molte delle cose che faccio su di esso sono legate all'I / O.
  • Il processore è un AMD Phenom II con quattro core a 2,0 GHz.
  • Il sistema viene deframmentato regolarmente usando UltraDefrag .
  • Il carico di lavoro è misto lettura-scrittura, con le letture che si verificano un po 'più spesso delle scritture.
  • I file da comprimere includono un sottoinsieme selezionato di documenti personali (non la cartella home completa) e programmi, inclusi diversi giochi (meno impegnativi) e Visual Studio (che tende a essere associato I / O più spesso).

12
Penso che l'unica risposta giusta sia "misurala sul tuo sistema".
Mehrdad,

Penso che questo dovrebbe rimanere una domanda generica. La CPU è più veloce della memoria. Al giorno d'oggi. Supponiamo che. A proposito della performance? Non ne ho idea, ma sono anche curioso.
Apache,

1
Che sistema è? quanti core hai? essendo un'operazione intensiva della CPU, avrai un po 'più di CPU in più rispetto alla velocità del disco rigido per le operazioni che stai per fare? L'effetto sul consumo di energia e sulle temperature. La comprimibilità dei dati. quanto costa Leggi e quanto costa scrivere? Comprimerlo all'inizio è lento, ma rileggerlo (a seconda del caso) dovrebbe essere più veloce con quantità facilmente misurabili.
Psycogeek,

Correlato (ma con circostanze leggermente diverse; specifico per una cartella con molte icone): superuser.com/questions/38605/…
bwDraco

1
Tra una cosa che puoi provare, è deframmentare. Ho sentito meraviglie di UltimateDefrag, ma non l'ho mai provato finora. (Tra Diskeeper e PerfectDisk, io uso quest'ultimo, poiché Diskeeper ha smesso di rilasciare nuovi versios, ecc.)
Apache il

Risposte:


36

Ho sentito che la compressione NTFS può ridurre le prestazioni a causa dell'utilizzo aggiuntivo della CPU, ma ho letto i rapporti che potrebbero effettivamente aumentare le prestazioni a causa delle letture ridotte del disco.

Corretta. Supponendo che la tua CPU, usando un qualche algoritmo di compressione, possa comprimere a C MB / se decomprimere a D MB / s, e il tuo disco rigido abbia la velocità di scrittura W e la velocità di lettura R. Fintanto che C> W, ottieni un miglioramento delle prestazioni quando scrivendo e fintanto che D> R, si ottiene un guadagno in termini di prestazioni durante la lettura. Questo è un presupposto drastico nel caso di scrittura, poiché l'algoritmo di Lempel-Ziv (come implementato nel software) ha un tasso di compressione non deterministico (sebbene possa essere limitato con una dimensione del dizionario limitata).

In che modo esattamente la compressione NTFS influisce sulle prestazioni del sistema?

Bene, è esattamente facendo affidamento sulle disuguaglianze di cui sopra. Finché la CPU è in grado di sostenere un tasso di compressione / decompressione superiore alla velocità di scrittura del disco rigido, si dovrebbe verificare un aumento di velocità. Tuttavia, ciò ha un effetto su file di grandi dimensioni, che possono presentare una forte frammentazione (a causa dell'algoritmo) o non essere affatto compressi .

Ciò può essere dovuto al fatto che l'algoritmo Lempel-Ziv rallenta man mano che la compressione procede (poiché il dizionario continua a crescere, richiedendo più confronti man mano che i bit entrano). La decompressione è quasi sempre la stessa velocità, indipendentemente dalle dimensioni del file, nell'algoritmo Lempel-Ziv (poiché il dizionario può essere indirizzato solo usando uno schema base + offset).

La compressione influisce anche sul modo in cui i file sono disposti sul disco . Per impostazione predefinita, una singola "unità di compressione" è 16 volte la dimensione di un cluster (quindi la maggior parte dei filesystem NTFS a cluster da 4 kB richiederà blocchi da 64 kB per memorizzare i file), ma non aumenta oltre i 64 kB. Tuttavia, ciò può influire sui requisiti di frammentazione e spazio su disco.

Come nota finale, la latenza è un altro valore interessante della discussione. Mentre il tempo effettivo necessario per comprimere i dati introduce la latenza, quando la velocità di clock della CPU è in gigahertz (ovvero ogni ciclo di clock è inferiore a 1 ns), la latenza introdotta è trascurabile rispetto alle velocità di ricerca del disco rigido (che si trova sul ordine di millisecondi o milioni di cicli di clock).


Per vedere effettivamente se sperimenterai un aumento di velocità, ci sono alcune cose che puoi provare. Il primo è confrontare il tuo sistema con un algoritmo di compressione / decompressione basato su Lempel-Ziv. Se ottieni buoni risultati (es. C> W e D> R), dovresti provare ad abilitare la compressione sul tuo disco.

Da lì, potresti voler fare più benchmark sulle prestazioni effettive del disco rigido. Un benchmark veramente importante (nel tuo caso) sarebbe vedere quanto velocemente si caricano i tuoi giochi e vedere quanto velocemente vengono compilati i tuoi progetti Visual Studio.

TL, DR: la compressione potrebbe essere praticabile per un filesystem che utilizza molti piccoli file che richiedono un throughput elevato e una bassa latenza. I file di grandi dimensioni sono (e dovrebbero essere) inalterati a causa di problemi di prestazioni e latenza.


Puoi collegare buoni benchmark basati su algoritmi di compressione / decompressione basati su Lempel-Ziv?
user1075375

La frammentazione che crea la compressione NTFS (e che aggiunge quando un file viene modificato) eliminerà facilmente qualsiasi aumento delle prestazioni. Se si dispone di un set di dati molto comprimibili che non verrà modificato spesso e si deframmenta dopo la compressione, può essere un guadagno netto. La modifica dopo la compressione causerà una brutta frammentazione. Ri: benchmark: anche le CPU lente oggi sono veloci in LZ. Il problema della frammentazione è di gran lunga il problema più grande. È un caso classico in cui un'ottimizzazione è utile solo in contesti limitati. Scegli cosa comprimere NTFS con molta attenzione e sarà una vittoria complessiva.
Jody Lee Bruchon,

1
E gli SSD?
Violet Giraffe

Come potrei misurare C, D, W e R?
Geremia,

Gradirei alcuni esempi pratici tipici per quelle astrazioni "C> W e D> R"? Ad esempio, è utile comprimere "Programmi" e / o "Windows" su un laptop a 4 core con HDD? e con SSD? Il consumo della batteria sarà influenzato in modo significativo?
kxr,

7

Hai un disco piuttosto lento, quindi la tua domanda ha merito. La compressione NTFS è ad alta intensità di processore ed è ottimizzata per la velocità piuttosto che per l'efficienza della compressione.

Mi aspetto che vedresti un (molto) piccolo miglioramento per le operazioni di lettura. Tuttavia, quando si accede a un file che risiede nella cache di sistema, si avrà un impatto sulle prestazioni, poiché dovrà essere decompresso nuovamente ad ogni accesso.

Ovviamente vedrai che le operazioni di scrittura saranno più lente a causa della compressione aggiuntiva.

La copia di file su questo stesso disco NTFS richiede decompressione e compressione, quindi questi risentiranno maggiormente.

La compressione NTFS può anche aumentare significativamente la frammentazione, ma questo non è un problema per la maggior parte dei computer "tipici" con carichi di lavoro "tipici".

Molti tipi di file, come immagini JPEG o file video o .zip, sono sostanzialmente non comprimibili, quindi questi file saranno più lenti da usare e senza spazio risparmiato.

I file più piccoli di un cluster di dischi (in genere 4K) non vengono compressi, poiché non vi è alcun guadagno. Tuttavia, quando si comprime l'intero volume, a volte è consigliabile anche una dimensione del cluster inferiore.

La compressione NTFS è consigliata per volumi o file relativamente statici. Non è mai consigliato per i file di sistema o la cartella Users.

Ma poiché la configurazione hardware varia da un modello di computer all'altro, a seconda del disco, del bus, della RAM e della CPU, solo i test diranno quale sarà l'effetto esatto della compressione sul modello del computer.


5

L'ho spiegato qui nella voce Wikpedia per NTFS:


NTFS può comprimere i file usando l'algoritmo LZNT1 (una variante di LZ77 [23]). I file sono compressi in blocchi di 16 cluster. Con cluster da 4 kB, i file vengono compressi in blocchi da 64 kB. Se la compressione riduce 64 kB di dati a 60 kB o meno, NTFS considera le pagine da 4 kB non necessarie come cluster di file sparsi vuoti, non vengono scritti. Ciò consente tempi di accesso casuale non irragionevoli. Tuttavia, i file comprimibili di grandi dimensioni diventano altamente frammentati poiché ogni blocco da 64 kB diventa un frammento più piccolo. [24] [25] La compressione non è consigliata da Microsoft per file superiori a 30 MB a causa del calo delle prestazioni. [Citazione necessaria]

Il miglior uso della compressione è per i file ripetitivi, scritti raramente, di solito accessibili in sequenza e non compressi. I file di registro sono un esempio ideale. La compressione di file di meno di 4 KB o già compressi (come .zip o .jpg o .avi) può renderli più grandi e più lenti. [Citazione necessaria] Gli utenti dovrebbero evitare di comprimere eseguibili come .exe e .dll (potrebbero essere cercapersone in entrata e in uscita in 4 kB di pagine). La compressione dei file di sistema utilizzati all'avvio come driver, NTLDR, winload.exe o BOOTMGR può impedire l'avvio corretto del sistema. [26]

Sebbene l'accesso in lettura e scrittura ai file compressi sia spesso, ma non sempre [27] trasparente, Microsoft consiglia di evitare la compressione sui sistemi server e / o le condivisioni di rete che contengono profili di roaming perché gravano notevolmente sul processore. [28]

I sistemi a utente singolo con spazio su disco rigido limitato possono beneficiare della compressione NTFS per file di piccole dimensioni, da 4 KB a 64 KB o più, a seconda della compressibilità. I file con meno di 900 byte o meno vengono archiviati con la voce della directory nella MFT. [29]

Il collegamento più lento in un computer non è la CPU ma la velocità del disco rigido, quindi la compressione NTFS consente di utilizzare meglio lo spazio di archiviazione limitato e lento, sia in termini di spazio che (spesso) di velocità. [30] (Ciò presuppone che i frammenti di file compressi vengano archiviati consecutivamente.)


Consiglio la compressione solo per file che comprimono a 64 KB o meno (ovvero 1 pezzo). In caso contrario, il file sarà composto da molte frazioni di 64 KB o meno.

MyDefrag esegue meglio la deframmentazione.


La mia esperienza con UltraDefrag è che fa un lavoro decente, offrendo una deframmentazione più completa rispetto alla deframmentazione integrata di Windows, ma per quanto ne so, non è esattamente intelligente come MyDefrag. Sto usando la versione 6 beta, che ha alcuni bug e funzionalità non implementate, ma è molto più veloce delle versioni precedenti.
bwDraco,

1

Renderà le operazioni più lente. Sfortunatamente, non possiamo misurare esattamente quanto o quanto poco influenzerà il tuo sistema. Quando viene aperto un file compresso, è necessaria la potenza del processore per decomprimere il file in modo che il sistema possa utilizzarlo; quando hai finito e premi Salva, utilizza più potenza del processore per comprimerlo di nuovo. Solo tu puoi misurare le prestazioni però.


4
Penso che ti sia perso l'intero punto della domanda. C'è un compromesso tra impiegare più tempo a comprimere / decomprimere i dati e impiegare meno tempo a leggere i dati dal disco (in virtù della lettura di meno dati). Quindi la tua affermazione non è garantita. Un esempio ovvio in cui la compressione può essere facilmente una vittoria è quando stai leggendo un file system di rete. Con un file system locale, è meno chiaro, ma non è garantito che vada in un modo o nell'altro.
jjlin,

@jjlin Hai un esempio di quando è più veloce?
Canadian Luke REINSTATE MONICA

@Luke supponiamo che la tua CPU, usando un algoritmo di compressione, possa comprimere a C MB / se decomprimere a D MB / s, e il tuo disco rigido abbia la velocità di scrittura W e la velocità di lettura R. Finché C> W, ottieni un guadagno prestazionale durante la scrittura e fintanto che D> R, si ottiene un guadagno prestazionale durante la lettura.
Sfondamento

@Luke è più veloce quando lo si utilizza su unità lente, come vecchi driver IDE o pen drive USB 1.0.
Kurast,

-1

chiunque lo veda oggi dovrebbe essere consapevole del fatto che, nel caso dei videogiochi, sì, anche quelli regolarmente patchati, abilitando la compressione sull'unità o sulla cartella possono ridurre i tempi di caricamento, anche su cpus più lenti di oggi, e anche su ssd (altro che il quelli più veloci che la maggior parte delle persone non hanno), è necessario deframmentare regolarmente però, e consiglio vivamente di acquistare un disco perfetto, una volta utilizzata la deframmentazione "Smart aggressiva", DOPO la compressione, lasciando attivata la funzione di prevenzione automatica della frangmentazione, terrà d'occhio sull'attività e l'ottimizzazione automatica per evitare la frammentazione, con pochissimo o nessun colpo perfetto (testato tutto questo fino ai vecchi quad di prima generazione sia di AMD sia di Intel su finestre moderne di recente)

molti file di gioco si comprimono follemente bene, alcuni giochi hanno file che occupano spazio su disco, nonostante siano per lo più vuoti ... un gioco che ho compresso qualche tempo fa è passato da 6 GB in una delle sue cartelle a meno di 16 MB ..... (vorrei stava scherzando ... parlava di spazio sprecato e I / O sprecato ....)

compresso un po 'di tempo una cartella del vapore degli amici, ci sono voluti 4 giorni per comprimerlo (è su un'unità da 4 TB e ha iniziato 3/4 pieno), quando è stato fatto .... stava usando circa 1/3 del totale dell'unità la deframmentazione è durata un altro giorno (ma è iniziata orribilmente frammentata perché, non ci ha mai fatto una deframmentazione su di essa, mai ... nonostante ci siano molti multi-mmo ... e un sacco di giochi steam / uplay / origin / etc ... )

NON comprimere le cartelle di immagini / immagini, non farà nulla di buono e renderà più lento l'accesso ad esse su sistemi lenti (non noterai nemmeno su un impianto decente 1/2 però ...)

ho compresso le mie unità su tutti i sistemi da nt4, MA, selettivamente, decomprimerò effettivamente le cartelle in cui la compressione fa più male che bene, sono le "migliori pratiche" che abbiamo inventato nel corso della giornata come giocatori, geek, " "ragazzi (prima era un termine), e, è rimasto vero, onestamente, vorrei che avessero un modo più preciso per comprimere unità / dati, c'era uno strumento che non era gratuito ma economico, che ti ha fatto molto meglio risultati di compressione senza comprimere i dati che non devono essere compressi ....

in ogni caso, anche molti sistemi dual core più vecchi traggono effettivamente vantaggio in generale se 1. esegui ccleaner 2. esegui chkdsk / f dal prompt dei comandi elevato (digita y quindi riavvia e lascia che esegua il controllo) 3. comprimi l'unità. 4. deframmenta con mydefrag o un disco migliore, perfetto, ci vorrà del tempo .. 5. multa tutte le cartelle che contengono file di grandi dimensioni o immagini / altri contenuti che non comprimono bene / affatto, decomprimono la cartella o solo i file, il mio exp qui è, raramente devi deframmentare dopo questa parte del processo ma, è meglio verificarlo.

capisco perché alcune persone sono contrarie alla compressione, ma, dopo averlo testato, se usato correttamente, ssd o hdd, e in particolare i vecchi hdd e ssd lenti, la compressione se usata correttamente può seriamente aiutare non solo a risparmiare spazio ma, prestazioni, anche la maggior parte dei vecchi i core sono in grado di gestire i cicli medi di compressione / decompressione più velocemente di quanto l'unità in quei sistemi possa muoversi, avendo testato questo, di prima generazione e meno costoso ssd di progettazione precedente, possono beneficiare della compressione, non tanto quanto gli HDD più lenti nella maggior parte dei casi ma, un amico ha un netbook che ha un SSD MOLTO lento, difficile da sostituire, così come uno slot SSD di facile accesso facile da sostituire, ma la cosa stupida NON PUO 'avviarsi dall'SSD aggiunto senza rimuovere l'altro fisicamente ... (bios orribile, ma ... per quello che è l'unità, è davvero bello, più potente di quanto sembri ...al di fuori del lento ssd installato in modo tale che devi smontare tutto per raggiungerlo ......), comprimere quell'unità e avere solo Windows e le app di base (come l'ufficio) al rallentatore ssd lo ha effettivamente accelerato, anche in lettura / scrittura, perché la sua CPU in realtà finisce per aspettare il maledetto ssd..it dosnt per quello più veloce che ha insallato ... ho suggerito di mettere il boot loader sul ssd interno e sul sistema operativo sull'aggiunta ma ... speriamo di uccidere la cosa stupida usando la maggior parte di essa per il file di paging .... (i suoi 128 GB, ma empiamente lenti, come se avessi unità flash USB3 che hanno meglio scrivere spead ... che è costato tutto in vendita su newegg / amazon ......)comprimere quell'unità e avere solo Windows e le app di base (come Office) sul lento ssd lo ha effettivamente accelerato, anche in lettura / scrittura, perché la sua CPU in realtà finisce per aspettare il dannato ssd..it dosnt per il più veloce uno ha insallato ... ho suggerito di mettere il boot loader sul ssd interno e il sistema operativo sull'aggiunta ma ... sperando di uccidere la cosa stupida usando la maggior parte di esso per il file di paging .... (128 gb ma, empiamente lento, come se avessi delle chiavette USB3 che hanno una migliore scrittura di spead .... che costa tutto in vendita su newegg / amazon ......)comprimere quell'unità e avere solo Windows e le app di base (come Office) sul lento ssd lo ha effettivamente accelerato, anche in lettura / scrittura, perché la sua CPU in realtà finisce per aspettare il dannato ssd..it dosnt per il più veloce uno ha insallato ... ho suggerito di mettere il boot loader sul ssd interno e il sistema operativo sull'aggiunta ma ... sperando di uccidere la cosa stupida usando la maggior parte di esso per il file di paging .... (128 gb ma, empiamente lento, come se avessi delle chiavette USB3 che hanno una migliore scrittura di spead .... che costa tutto in vendita su newegg / amazon ......)sta sperando di uccidere la cosa stupida usando la maggior parte di essa per il file di paging .... (i suoi 128 GB, ma ungodly lenti, come se avessi unità flash USB3 che hanno migliori spote di scrittura .... che costano tutto in vendita su newegg / amazon ......)sta sperando di uccidere la cosa stupida usando la maggior parte di essa per il file di paging .... (i suoi 128 GB, ma ungodly lenti, come se avessi unità flash USB3 che hanno migliori spote di scrittura .... che costano tutto in vendita su newegg / amazon ......)

ti consiglio vivamente di comprimere almeno l'unità / cartella dei tuoi giochi ... mio Dio, il dif che può fare anche su sistemi veloci !!!


la maggior parte dei giochi comprime già i propri dati, che non possono essere ulteriormente compressi
M.kazem Akhgary,

-2

Windows comprime i dati non utilizzati di recente nella RAM, con persino gli SSD che rappresentano una frazione della velocità, immagino che l'hit di prestazioni sia un problema. Sono più preoccupato per i blocchi compressi che sviluppano un errore di 1-2 bit e non riescono a recuperare alcuni o tutti i dati ... o un errore del dizionario nel peggiore dei casi. Tutto ciò che produce un disco che non è leggibile su sistemi operativi alternativi e che potenzialmente riduce l'affidabilità non vale la velocità aggiuntiva che (potrebbe) portare, IMHO. I file di texture pack di videogiochi e simili di solito sono già compressi, quindi non vedo come stratificare un altro set di compressione migliorerà le cose. Mi piacerebbe vedere un sistema operativo che supporti la marcatura dei file come layout lineare sulla geometria del disco, quindi non viene utilizzato il r / w casuale. Accelera le cose anche su SSD per determinati casi d'uso. L'altro mio problema con la compressione è che, poiché immagini e filmati sono già compressi, così come i documenti di MS Office e tonnellate di altri formati, sei bloccato a contrassegnare i file come comprimibili e gestirli in modo micromanage. Per un albero dei sorgenti di Linux o un grande progetto open source potrebbe essere di grande aiuto poiché la compressione è generalmente ottimale sui file di testo.


1
Chiarire la cosa sulla geometria lineare aiuterà principalmente gli HDD e file di dimensioni superiori a 500 MB circa. Ho lavorato con file TIFF da 500 GB prima che avrebbero beneficiato un bel po 'di caricamento. Windows tenta di eseguire questa operazione, ma ciò si basa sulla deframmentazione periodica dell'unità e su una dimensione del cluster appropriata che potrebbe non essere ottimale per altre applicazioni. Per ovviare a questo casino, uso un SSD per l'avvio, un'unità da 2 TB per progetti di musica / film, un altro 2 TB per i file RAW da DSLR e un 4 TB che memorizza enormi quantità di codice sorgente che potrei comprimere per un grande guadagno in spazio.
Guesty McGuesterson,

1
Idealmente, vorrei un secondo SSD solo per "file di programma" per limitare la contesa tra i file di sistema e quelli, ma Windows tende a interrompere i tentativi di impostazione dopo alcune settimane. Posso creare D: \ Programmi o altro, ma troppi programmi sono hardcoded per fare letteralmente schifo sull'unità di sistema ovunque.
Guesty McGuesterson,

-2

La compressione NTFS di Microsoft Windows non deve essere utilizzata per file diversi da file di registro o, in generale, file di testo o file altamente comprimibili.

Considera questo: storicamente ho visto prestazioni di compressione dei file bloccate a 20-25 MiB / s. Questa è la velocità normale per zippare un file con un processore 2.4-3.0 Ghz. La compressione NTFS non è multithread. Questo è un grosso problema!

Considerare una velocità decente per un disco rigido al giorno d'oggi è di 100 MiB / s. Se non si ottiene una compressione di circa 4-5 volte, si stanno perdendo enormemente le prestazioni sia in lettura che in scrittura. Questo è ciò che succede.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.