Quando si impara di più sui computer e su come funzionano, occasionalmente si imbattono in qualcosa che non sembra avere senso. Con questo in mente, lo svuotamento dello spazio su disco accelera effettivamente i computer? Il post di Q & A di SuperUser di oggi ha la risposta alla domanda di un lettore perplesso.
La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte. nchenga (Flickr).
La domanda
Ho visto molti video e ora capisco come i computer funzionano un po 'meglio. Capisco cos'è la RAM, la memoria volatile e non volatile e il processo di scambio. Capisco anche perché l'aumento della RAM accelera un computer.
Quello che non capisco è perché pulire lo spazio su disco sembra accelerare un computer. Accelera davvero un computer? Se è così, perché lo fa?
Ha qualcosa a che fare con la ricerca di spazio di memoria per salvare le cose o con lo spostamento di cose per creare uno spazio continuo abbastanza lungo per salvare qualcosa? Quanto spazio vuoto devo lasciare libero su un disco rigido?
Perché lo spazio su disco di svuotamento sembra velocizzare un computer?
La risposta
" Perché lo svuotamento dello spazio su disco accelera i computer? "
Non lo fa, almeno non da solo. Questo è un mito molto comune. Il motivo per cui è un mito comune è perché riempire il tuo disco rigido spesso accade contemporaneamente ad altre cose che tradizionalmente potrebbero rallentare il tuo computer
(A) . Le prestazioni dell'SSD tendono a peggiorare mentre si riempiono, ma questo è un problema relativamente nuovo, unico per gli SSD, e non è particolarmente evidente per gli utenti occasionali. Generalmente, lo spazio su disco insufficiente è solo una falsa pista. Ad esempio, cose come:
1.
Frammentazione dei file. La frammentazione dei file è un problema (B) , ma la mancanza di spazio libero, sebbene sicuramente uno dei molti fattori che contribuiscono, non è la sola causa di ciò. Alcuni punti chiave qui: Le possibilità che un file sia frammentato sono
- non correlate alla quantità di spazio libero rimasto sul disco. Sono correlati alla dimensione del più grande blocco contiguo di spazio libero sul disco (cioè "buchi" di spazio libero), che la quantità di spazio libero avviene per mettere un limite superiore su . Sono inoltre correlati al modo in cui il file system gestisce l'allocazione dei file ( più sotto ). Considerare: Un'unità piena al 95% con tutto lo spazio libero in un singolo blocco contiguo ha zero percentuale di possibilità di frammentare un nuovo file (C) (e la possibilità di frammentare un file aggiunto è indipendente dallo spazio libero). Un'unità piena al cinque percento ma con dati distribuiti in modo uniforme sull'unità presenta un'elevata possibilità di frammentazione. Tenere presente che la frammentazione dei file
- influisce solo sulle prestazioni quando si accede ai file frammentati . Considera: Hai una bella unità deframmentata che contiene ancora molti "buchi" gratuiti. Uno scenario comune. Tutto funziona senza intoppi. Alla fine, però, arrivi ad un punto in cui non ci sono più grandi blocchi di spazio libero rimanenti. Se scarichi un film enorme, il file risulta gravemente frammentato. Questo non rallenterà il tuo computer . Tutti i file dell'applicazione e quelli che in precedenza erano soddisfacenti non verranno improvvisamente frammentati. Ciò potrebbe rendere più lungo il caricamento del film (sebbene i bit rate tipici del film siano così bassi rispetto alle velocità di lettura del disco rigido che molto probabilmente saranno impercettibili) e potrebbe influire sulle prestazioni legate all'I / O durante il caricamento del film, ma a parte questo, non cambia nulla. Mentre la frammentazione dei file è certamente un problema, spesso gli effetti vengono mitigati dal sistema operativo e dal buffering e dalla memorizzazione nella cache a livello hardware. Scritture ritardate, read-ahead, strategie come il prefetcher in Windows, ecc., Aiutano a ridurre gli effetti della frammentazione. Generalmente non
- in realtà ha un impatto significativo fino a quando la frammentazione diventa grave (oserei anche dire che fino a quando il file di swap non è frammentato, probabilmente non lo noterete mai. 2.
L'indicizzazione della ricerca è un altro esempio . Supponiamo di avere l'indicizzazione automatica attivata e un sistema operativo che non gestisce questo con garbo. Man mano che salvi sempre più contenuti indicizzabili sul tuo computer (documenti e simili), l'indicizzazione potrebbe richiedere più tempo e più tempo e potrebbe iniziare a influire sulla velocità percepita del tuo computer mentre è in esecuzione, sia in I / O che nell'utilizzo della CPU . Questo non è legato allo spazio libero, è correlato alla quantità di contenuto indicizzabile che hai. Tuttavia, l'esaurimento dello spazio libero va di pari passo con la memorizzazione di più contenuti, quindi viene disegnata una connessione falsa. 3.
Software antivirus (simile all'esempio di indicizzazione della ricerca). Supponiamo che tu abbia un software anti-virus configurato per effettuare una scansione in background del tuo disco. Poiché il tuo contenuto è sempre più scansionabile, la ricerca richiede più risorse di I / O e CPU, interferendo potenzialmente con il tuo lavoro. Di nuovo, questo è correlato alla quantità di contenuti scansionabili che hai. Più contenuti spesso equivalgono a meno spazio libero, ma la mancanza di spazio libero non è la causa. 4.
Software installato. Supponiamo che tu abbia un sacco di software installato che si carica all'avvio del tuo computer, rallentando così i tempi di avvio. Questo rallentamento si verifica perché viene caricato molto software. Tuttavia, il software installato occupa spazio sul disco rigido. Pertanto, lo spazio libero del disco rigido diminuisce allo stesso tempo in cui ciò accade, e di nuovo una connessione falsa può essere facilmente effettuata. 5.
Molti altri esempi lungo queste linee che, quando presi insieme, appaiono associare strettamente la mancanza di spazio libero con prestazioni inferiori. Quanto sopra illustra un'altra ragione per cui questo è un mito così comune: mentre la mancanza di spazio libero non è una causa diretta del rallentamento, la disinstallazione di varie applicazioni, la rimozione indicizzata o contenuto scansionato, ecc. a volte (ma non sempre, al di fuori dello scopo di questa risposta) aumenta di nuovo le prestazioni per ragioni non correlate alla quantità di spazio libero rimanente. Ma anche questo naturalmente libera lo spazio del disco rigido. Quindi, di nuovo, può essere stabilita una connessione apparente (ma falsa) tra "più spazio libero" e un "computer più veloce".
Considera:
Se hai una macchina che funziona lentamente a causa di molti software installati, ecc. ., clonare il disco rigido (esattamente) su un disco rigido più grande, quindi espandere le partizioni per guadagnare più spazio libero, la macchina non si accelera magicamente. Lo stesso software viene caricato, gli stessi file sono ancora frammentati nello stesso modo, lo stesso indicizzatore di ricerca continua a funzionare, non cambia nulla nonostante abbia più spazio libero. "Ha qualcosa a che fare con la ricerca di spazio di memoria per salvare le cose? “
No. Non è così. Ci sono due cose molto importanti che vale la pena notare qui:
1.
Il tuo disco rigido non cerca in giro per trovare posti dove mettere cose. Il tuo disco rigido è stupido. Non è niente. È un grande blocco di memoria indirizzata che mette ciecamente le cose a cui il sistema operativo glielo dice e legge tutto ciò che gli viene chiesto. Le unità moderne dispongono di sofisticati meccanismi di memorizzazione nella cache e di buffering progettati per prevedere ciò che il sistema operativo richiederà in base all'esperienza acquisita nel tempo (alcune unità sono anche a conoscenza del file system su di esse), ma in sostanza, pensate al vostro guida come un muto pezzo di memoria con caratteristiche di prestazioni occasionali bonus. 2.
Il tuo sistema operativo non cerca nemmeno i posti dove mettere le cose. Non c'è ricerca. Sono stati fatti molti sforzi per risolvere questo problema poiché è fondamentale per le prestazioni del file system. Il modo in cui i dati sono effettivamente organizzati sull'unità è determinato dal file system. Ad esempio, FAT32 (vecchi PC DOS e Windows), NTFS (edizioni successive di Windows), HFS + (Mac), ext4 (alcuni sistemi Linux) e molti altri. Persino il concetto di "file" e di "directory" sono semplicemente prodotti di file system tipici - i dischi rigidi non sanno nulla delle misteriose bestie chiamate file . I dettagli non rientrano nell'ambito di questa risposta. Ma in sostanza, tutti i comuni file system hanno dei modi per rintracciare dove lo spazio disponibile si trova su un disco in modo tale che una ricerca di spazio libero sia, in circostanze normali (ad esempio, i file system in buona salute), non necessaria. Esempi: NTFS ha una tabella di file principale, che include i file speciali
- $ Bitmap , ecc. E molti meta dati che descrivono l'unità. In sostanza tiene traccia di dove sono i prossimi blocchi liberi in modo che i nuovi file possano essere scritti direttamente su blocchi liberi senza dover eseguire la scansione dell'unità ogni volta. Un altro esempio: Ext4 ha quello che viene chiamato l'allocatore di bitmap, un miglioramento rispetto a ext2 e ext3 che fondamentalmente aiuta a determinare direttamente dove sono liberi i blocchi invece di scansionare la lista dei blocchi liberi. Ext4 supporta anche
- allocazione ritardata , ovvero il buffering dei dati nella RAM del sistema operativo prima di scriverlo sull'unità per prendere decisioni migliori su dove collocarlo per ridurre la frammentazione. Molti altri esempi.
- "O spostando le cose in giro per creare uno spazio continuo abbastanza lungo per salvare qualcosa?"
No. Questo non succede, almeno non con qualsiasi file system di cui sono a conoscenza. I file finiscono per essere frammentati.
Il processo di "spostare le cose in giro per creare uno spazio contiguo abbastanza lungo per il salvataggio di qualcosa" è chiamato
deframmentazione . Questo non succede quando i file sono scritti. Questo succede quando si esegue l'utilità di deframmentazione del disco. Nelle ultime versioni di Windows, almeno, ciò avviene automaticamente in base a una pianificazione, ma non viene mai attivato scrivendo un file. Essere in grado di
evitare spostare le cose in questo modo è fondamentale per le prestazioni del file system ed è il motivo per cui avviene la frammentazione e perché la deframmentazione esiste come passaggio separato. "Quanto spazio vuoto devo lasciare libero su un disco rigido?"
Questa è una domanda più complicata a cui rispondere (e questa risposta è già diventata in un piccolo libro).
Regole pratiche:
1.
Per tutti i tipi di unità: Soprattutto, lasciare spazio sufficiente per
- per utilizzare il computer in modo efficace . Se hai poco spazio per lavorare, ti servirà un'unità più grande. Molti strumenti di deframmentazione del disco richiedono una quantità minima di spazio libero (penso che quello con Windows richieda il 15 percento, il caso peggiore) per lavorare. usa questo spazio libero per tenere temporaneamente i file frammentati mentre le altre cose sono riorganizzate.
- Lascia lo spazio per altre funzioni del sistema operativo. Ad esempio, se la tua macchina non ha molta RAM fisica e hai la memoria virtuale abilitata con un file di paging di dimensioni dinamiche, ti consigliamo di lasciare abbastanza spazio per la dimensione massima del file di pagina. Oppure, se hai un laptop che metti in modalità di sospensione, avrai bisogno di abbastanza spazio libero per il file di stato di ibernazione. Cose del genere.
- 2.
Specifico per SSD: Per un'affidabilità ottimale (e in misura minore, prestazioni), gli SSD richiedono uno spazio libero, che, senza entrare troppo nel dettaglio, utilizza per diffondere i dati attorno all'unità per evitare di scrivere costantemente nello stesso posto (che li logora). Questo concetto di lasciare spazio libero è chiamato over-provisioning. È importante,
- ma in molti SSD, lo spazio obbligatorio sovrasportato esiste già . Cioè, le unità hanno spesso qualche dozzina di GB in più rispetto a quanto riportano al sistema operativo. Le unità di fascia bassa richiedono spesso di lasciare manualmente spazio non partizionato , ma per le unità con OP obbligatorio, non è necessario lasciare uno spazio libero . Una cosa importante da notare qui è che lo spazio sovraccosto viene spesso preso solo dallo spazio non partizionato . Quindi se la tua partizione occupa tutto il tuo disco e lasci dello spazio libero su di esso, ciò non conta sempre . Molte volte, il sovra-provisioning manuale richiede di ridurre la partizione in modo che sia più piccola della dimensione dell'unità. Controlla il manuale utente del tuo SSD per i dettagli. TRIM, garbage collection e simili hanno anche effetti, ma quelli non rientrano nell'ambito di questa risposta. Personalmente, di solito prendo un disco più grande quando ho circa il 20-25% di spazio libero rimanente. Questo non è legato alle prestazioni, è solo che quando arriverò a quel punto, mi aspetto che presto avrò poco spazio per i dati ed è ora di ottenere un disco più grande.
Più importante che guardare lo spazio libero è assicurarsi che la deframmentazione pianificata sia abilitata laddove appropriato (non su SSD) in modo da non arrivare mai al punto in cui diventa così terribile da influire.
C'è un'ultima cosa che vale la pena menzionare. Una delle altre risposte ha menzionato che la modalità half-duplex di SATA impedisce la lettura e la scrittura allo stesso tempo. Sebbene sia vero, questo è molto semplificato e per lo più non è correlato ai problemi di prestazioni discussi qui. Ciò significa, semplicemente, che i dati non possono essere trasferiti contemporaneamente in entrambe le direzioni
sul filo . Tuttavia, SATA ha una specifica abbastanza complessa che coinvolge minuscole dimensioni massime dei blocchi (circa 8kB per blocco sul filo, penso), leggere e scrivere le code di operazioni, ecc. E non preclude le scritture ai buffer che si verificano mentre le letture sono in corso, intercalate operazioni, ecc. Qualsiasi blocco che si verifica sarebbe dovuto alla competizione per risorse fisiche, solitamente mitigate da un sacco di cache. La modalità duplex di SATA è quasi del tutto irrilevante qui.
(A)
"Rallentamento" è un termine generico. Qui lo uso per riferirsi a cose che sono vincolate all'I / O (cioè se il tuo computer è seduto lì a scricchiolare numeri, il contenuto del disco rigido non ha impatto) o legato alla CPU e in competizione con cose legate tangenzialmente che hanno Utilizzo della CPU (ovvero software anti-virus che esegue la scansione di tonnellate di file). (B)
Gli SSD sono interessati dalla frammentazione in quanto le velocità di accesso sequenziali sono generalmente più veloci dell'accesso casuale, nonostante gli SSD non si trovino alle stesse limitazioni di un dispositivo (anche in questo caso, la mancanza di frammentazione non garantisce l'accesso sequenziale a causa dell'usura, ecc.). Tuttavia, praticamente in ogni scenario di uso generale, questo è un non-problema. Le differenze di prestazioni dovute alla frammentazione su SSD sono in genere trascurabili per cose come il caricamento di applicazioni, l'avvio del computer, ecc. (C)
Supponendo un file system sano che non stia frammentando i file di proposito. Assicurati di leggi il resto della vivace discussione su SuperUser tramite il link sottostante!
Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla il thread completo di discussione qui.
Quanto potrei scaricare se avessi raggiunto la mia connessione Internet per un mese?
Probabilmente non l'hai mai nemmeno provato, ma non sarebbe un esperimento divertente? Quanto si può scaricare da Internet se si mette il pedale in basso e si raggiunge la connessione per un mese intero? Caro How-To Geek, Ho adorato la domanda e la risposta dello zapper NES. Hai detto in questa risposta che ti piacciono le domande divertenti e geek, quindi eccone uno per te.
Come utilizzare lo smartphone per inviare facilmente denaro a familiari e amici
Se hai mai provato a dividere la scheda dopo un pasto con gli amici in un ristorante, sai quanto è frustrante può essere cercare di pagarsi l'un l'altro quando l'istituto impone un limite di due carte per tavolo. Alcuni amici hanno soldi, altri stanno scavando nelle loro tasche per i quarti e altri "dimenticano di colpire l'ATM" come hanno detto che lo avrebbero fatto il giorno successivo.