Devo deframmentare il mio SSD?


121

Ho appena imparato che si dovrebbe "Non deframmentare mai il tuo SSD". Ma non ho idea se sia vero.

Credo che Windows 10 sia stato pianificato automaticamente per completare la deframmentazione sul mio SSD, ma l'ho annullato. Provocherebbe problemi per le deframmentazioni effettuate in precedenza?

L'SSD non è ancora partizionato, perché non riesco a vedere l'unità SSD nella cartella Risorse del computer, solo in Gestione hardware del sistema. Quali sono i passi corretti che dovrei prendere per installare Windows su un SSD (è il mio primo SSD)?


12
Il consiglio di "non deframmentare mai il tuo SSD" è obsoleto e proviene da un momento in cui gli SSD erano più lenti e avevano una durata di scrittura molto più limitata rispetto ai SSD moderni. Gli SSD moderni tendono ad essere limitati dagli IOPS e i file system deframmentati richiedono meno I / O.
David Schwartz,

5
Per quanto riguarda il punto @DavidSchwartz, la quantità di scritture / eliminazioni necessarie per uccidere spontaneamente un SSD moderno è ridicolmente alta. A meno che tu non stia elaborando una quantità straordinaria di informazioni il tuo SSD probabilmente durerà più a lungo di molti altri componenti anche se stai eseguendo deframmenti convenzionali.
DanK,

29
Perché dovresti deframmentare un SSD? Il punto di deframmentazione è di rendere i file contigui sul disco, quindi le testine di lettura non devono cercare dappertutto (il che richiede tempo, poiché comporta un movimento fisico) per leggere il file. Non sono un esperto, ma gli SSD AFAIK sono a stato solido e accesso casuale. Tutti gli accessi richiedono lo stesso tempo, quindi non dovrebbe importare come sono distribuiti i blocchi di file.
jamesqf


6
Come osserva Ajedi32, le raccomandazioni sulle due domande sono completamente opposte. Ciò dovrebbe influire sulla direzione del duplicato. Se le raccomandazioni sull'altra domanda sono ora considerate errate, l'unico modo in cui i lettori che atterrano lì troveranno le risposte su questa domanda è se quello è un duplicato di questa.
fixer1234

Risposte:


135

Lascia che Windows faccia il suo lavoro. Una volta al mese esegue una deframmentazione completa , anche su un SSD, per ottimizzare i metadati interni.

La risposta breve è, sì, a volte Windows deframmenta gli SSD, sì, è importante deframmentare in modo intelligente e appropriato gli SSD, e sì, Windows è intelligente su come tratta il tuo SSD.

Ecco una risposta da Microsoft:

Storage Optimizer eseguirà la deframmentazione di un SSD una volta al mese se gli snapshot del volume sono abilitati. Questo è di progettazione e necessario a causa della lenta copia volsnap sulle prestazioni di scrittura su volumi SSD frammentati . È anche un po 'un'idea sbagliata che la frammentazione non sia un problema sugli SSD. Se un SSD viene troppo frammentato, puoi colpire la massima frammentazione dei file (quando i metadati non possono rappresentare più frammenti di file) che comporterà errori quando provi a scrivere / estendere un file. Inoltre, più frammenti di file significano più metadati da elaborare durante la lettura / scrittura di un file, il che può portare a prestazioni più lente.

Per quanto riguarda Retrim, questo comando dovrebbe essere eseguito secondo la pianificazione specificata nell'interfaccia utente di dfrgui. Retrim è necessario a causa del modo in cui TRIM viene elaborato nei file system. A causa delle prestazioni variabili dell'hardware che risponde a TRIM, TRIM viene elaborato in modo asincrono dal file system. Quando un file viene eliminato o lo spazio viene altrimenti liberato, il file system mette in coda la richiesta di taglio da elaborare. Per limitare l'utilizzo delle risorse peek, questa coda può aumentare fino a un numero massimo di richieste di assetto. Se la coda ha dimensioni massime, è possibile che le richieste TRIM in entrata vengano eliminate. Questo va bene perché verremo periodicamente e faremo un Retrim con Storage Optimizer. Retrim viene eseguito con una granularità che dovrebbe evitare di colpire la dimensione massima della coda di richieste TRIM in cui vengono rilasciati i TRIM.

Quindi installa Windows sull'SSD e dimenticalo. Windows farà tutto da solo.


17
A volte si sogna che Microsoft sia così stupida e tutto il resto. Ma a volte sono solo stupito di quanto siano ben ponderati alcuni elementi di Windows.
BlueWizard,

1
Eppure AFAIK Linux / EXT non ha assolutamente bisogno di farlo.
spruzzo

6
La frammentazione è ridotta al minimo in EXT ma può ancora verificarsi in casi d'uso specifici, almeno in Ext3: en.wikipedia.org/wiki/Ext3#Disadvantages
Bret

6
Le varianti EXT frammentano e perdono le prestazioni. Chiunque dica altrimenti sta vendendo bugie sulla superiorità di Linux. Fonte: ho implementato un driver per esso e lo fa.
imallett,

1
@spraff è perché EXT lascia spazi tra i blocchi e il file non ha bisogno di essere scritto in parte altrove quando cresce. Quando cresce. Fondamentalmente quando si dispone di un file video (che non cresce mai) occupa ancora più spazio del necessario e quindi si spreca spazio. Nessun sistema è perfetto
BlueWizard

50

Ho appena imparato che si dovrebbe "Non deframmentare mai il tuo SSD". Ma non ho idea se sia vero.

Un po 'di conoscenza è pericolosa. Non deframmentare mai il tuo SSD è probabilmente una buona idea se il tuo sistema è completamente all'oscuro di ciò che è un SSD - diciamo Windows XP. E se gli SSD fossero fragili fiocchi di neve che si consumavano e si scioglievano nel duro calore del normale utilizzo - ho una risposta dettagliata al perché non è vero . È piuttosto difficile "consumare" un'unità durante il normale utilizzo. Potrebbe essere utile disimparare questo.

Teniamo conto del fatto che se la tua applicazione uccidesse SSD o addirittura scrivesse pesantemente, come ha fatto Spotify , le persone si ribalterebbero. E abbastanza spesso le persone che scrivono sistemi operativi sono intelligenti.

Sto facendo molto riferimento a questo post di Scott Hanselman per il resto di questa risposta. La risposta di Magicandre fa riferimento anche a questo, ma in un certo senso ho tolto diverse lezioni da esso. Vale la pena leggere per i dettagli. Mi sto prendendo alcune libertà su come rappresento l'informazione. Comincerei con questo

Penso che il malinteso principale sia che la maggior parte delle persone abbia un modello molto obsoleto di layout del disco \ file e di come funzionano gli SSD.

Gli SSD frammentano e questi frammenti devono essere tenuti traccia . A livello fondamentale, la deframmentazione degli SSD aiuta il tuo file system a funzionare in modo efficiente, anche se è diverso da come farebbe un disco ruggine rotante. Il post a cui ho fatto riferimento sottolinea che gli snapshot del volume sarebbero lenti senza deframmentazione.

Gli SSD hanno anche il concetto di TRIM. Mentre TRIM (retrim) è un concetto separato dalla frammentazione, è ancora gestito dal sottosistema Windows Storage Optimizer e la pianificazione è gestita dalla stessa UI dal punto di vista dell'utente.

TRIM è buono. Trim consente di salvare le scritture poiché è un meccanismo per contrassegnare i blocchi come letti senza cancellarli e cancellarli secondo necessità.

Chiunque ti abbia detto di non deframmentare mai un'unità non ha idea che i moderni sistemi operativi siano progettati per gli SSD e che i processi di pulizia necessari vengano implementati.

Mentre è allettante supporre che tu sappia meglio, in questo caso le persone che hanno scritto il sistema operativo hanno ottimizzato le cose per te. Mantieni la calma e lascia che Windows deframmenti il ​​tuo disco.


8
Penso che questa risposta sarebbe notevolmente migliorata menzionando gli indirizzi dei blocchi logici rispetto agli indirizzi dei blocchi fisici. Non è possibile deframmentare un SSD, la procedura a livello di filesystem che si traduce in indirizzi logici sequenziali comporterà comunque la dispersione dei dati in tutto il disco fisico, a causa della mappatura flash, e va bene perché gli SSD sono ad accesso casuale.
Ben Voigt,

Ad essere onesti, questo è un concetto che non ho ancora avvolto la testa. Credo che un trattamento completo di questo sarebbe una risposta fantastica per una delle mie domande e ho un rappresentante che fluttua nel mio account di prova che sarei felice di assegnare come ricompensa per questo.
Journeyman Geek

22

Per completezza:

La frammentazione dipende dal filesystem (FS) , non dal disco o dal sistema operativo.

Ciò significa che la risposta alla tua domanda non ha davvero bisogno di chiedere Windows *; L'SSD è un caso speciale: funziona in modo diverso rispetto a un normale disco.

Un FS è un modo di organizzare i tuoi file sul disco. I formati Windows più comuni sono NTFSe FAT32. FSS più comunemente usato su Linux sono ext3/ ext4, ma ci sono molti altri ( zfs, xfs, jfs, ReiserFS, btrfs, e altro ancora).

Un disco è diviso in blocchi . Puoi immaginarlo come un lungo nastro su cui puoi scrivere alcuni dati. Quando scrivi qualcosa sul disco, usi questi blocchi. Ovviamente vuoi che i file correlati vengano scritti uno accanto all'altro e che un singolo file sia scritto in un singolo blocco, quindi non devi saltare il nastro. Quando le cose sono tutte sparse, questo è ciò che chiamiamo frammentazione . La deframmentazione li organizza.

Ovviamente il modo in cui organizzi le cose (FS) determina quanto bene sono organizzate (se c'è frammentazione). Se organizzi i tuoi file dall'inizio, non avrai frammentazione. Questo è ciò che accade in alcuni filesystem (ad esempio la extfamiglia). Questi filesystem organizzano i tuoi file al volo (prima di scrivere), in modo da non doverli deframmentare se non in particolari circostanze quando non c'era altra scelta che introdurre un piccolo disordine.

Per ulteriori informazioni su ext4come prevenire la frammentazione, è possibile fare riferimento a questa pagina

Ora un SSD funziona in modo diverso; non è un nastro. Puoi avere accesso immediato ovunque. Il punto centrale della deframmentazione è che organizzi i tuoi file in modo ordinato, in modo da non dover saltare. Non c'è modo di saltare in giro su un SSD. Non ti importa se devi andare dall'altra parte del nastro avanti e indietro; non c'è nastro.

Tuttavia, ci sono altri modi per ottimizzare un SSD. Vedi questo argomento per chiarimenti.

*Quasi; la scelta del filesystem è correlata al sistema operativo. La maggior parte degli utenti Linux utilizza FS diversi dagli utenti Windows o OS X.


3
Esattamente questo. La frammentazione avviene a livello di FS, indipendentemente dal supporto di memorizzazione. Alcuni media ne sono più colpiti di altri, ma c'è sempre qualche impatto e non andrà via semplicemente perché hai un SSD.
Dmitry Grigoryev il

1
La differenza principale è davvero Ext3 e FAT vs Ext4 e NTFS; ma anche allora, le applicazioni, il sistema operativo e persino l'hardware contribuiscono , spesso in modo significativo. Windows organizza i file utilizzati all'avvio nell'ordine in cui vengono utilizzati, ad esempio, consentendo alla maggior parte dell'avvio di utilizzare letture di blocchi anziché ricerche. Si potrebbe chiamare quella deframmentazione - è solo che oltre alla deframmentazione a livello di FS (riducendo la frammentazione dei file), "deframmenta" gruppi di file per ottimizzare l'accesso in un modo in cui FS non può davvero aiutare. Potresti immaginare molte ottimizzazioni simili, ad esempio lo spostamento di DLL vicino ad EXE.
Luaan,

Ci sono molti livelli diversi che contano a modo loro. Ad esempio, lo striping è un modo di frammentazione intenzionale che può migliorare le prestazioni. Anche l'organizzazione fisica di un HDD può usarlo, se l'HDD ha più teste in grado di leggere simultaneamente da più piatti. Gli SSD non devono girare il piatto e spostare la testa per cercare, ma hanno ancora un limite IOPS - e con la velocità degli SSD oggi, questo è spesso più importante della larghezza di banda grezza. Le ricerche SSD non sono più abbastanza veloci da saturare la larghezza di banda. La frammentazione è una piccola parte del problema fondamentale: la memorizzazione nella cache.
Luaan,

@Luaan: Non esiste una "ricerca SSD". Penso che tu stia effettivamente parlando dell'overhead di elaborazione per comando.
Ben Voigt,

1
@BenVoigt Penso che Luaan significhi che i file non consolidati richiedono ancora più tempo per essere letti anche su SSD. Non c'è ritardo nella ricerca, ma c'è una differenza significativa tra letture sequenziali e casuali su SSD.
user1306322

7

Le risposte esistenti sono ottime, ma ho alcune cose da integrare ...
Devo deframmentare il mio SSD e disabilito il TRIM automatico , ma per ragioni totalmente diverse da quelle menzionate:

  1. Voglio essere in grado di recuperare file o partizioni se e quando elimino accidentalmente qualcosa.
    No, non succede spesso, ma le poche volte che è successo, è stato abbastanza frustrante non essere in grado di recuperare cose che avrei potuto recuperare su un disco rigido, anche quando ho provato a recuperarle immediatamente dopo l'eliminazione .

  2. Mi espando, restringersi, e persino spostare le partizioni in giro ogni pochi mesi, e la deframmentazione e consolidare file rende questa operazione molto più veloce e meno rischiosa. Oggi penseresti di poterti fidare dei gestori delle partizioni, ma fino a dicembre 2015 ho riscontrato errori (corruzione) in semplici operazioni di spostamento / ridimensionamento. E i gestori delle partizioni più intelligenti tentano di evitare l'esecuzione su volumi fortemente frammentati prima che si verifichino danni (e di solito, sebbene non sempre, abbiano esito positivo).

  3. Uso Linux a volte e sono stato bruciato dalla corruzione dei volumi NTFS negli ultimi due anni. Ciò non è dovuto in particolare alla frammentazione, ma visto che non è nemmeno in grado di gestire correttamente i file non frammentati , sono sulla difensiva e sto cercando di presentare il più pulito possibile di un volume (e anche in questo caso, evito di scrivere di più del tempo).

La parte triste di # 2 e # 3 è che le persone che non hanno visto questi problemi con i propri occhi pensano sempre che io sia pazzo e sto inventando tutto, o che il mio sistema debba essere rotto in qualche modo. Ma ho riprodotto queste diverse volte su più sistemi, e come qualcuno che ha scritto i suoi propri lettori NTFS, so una cosa o due sui file system e di programmazione del kernel ... con NTFS essere al centro. Quindi conosco i bug quando li vedo. Nessuno mi crede, ma avverto comunque le persone, dato che ho visto accadere con i miei occhi - quindi, se si scherza con le partizioni o si usa Linux, ti consiglio di mantenere le tue unità deframmentate. YMMV.

Oh, e non dimenticare di eseguire TRIM manualmente una volta ogni tanto quando non hai bisogno di recuperare nulla. Anche se, se sono sincero, devo ancora trarne beneficio ...


1
Eccellente, è una buona procedura deframmentare (e persino "zero") le unità flash per gli stessi motivi, in particolare per la fotografia. I file contigui sono più facili da recuperare, anche parzialmente. Cerca a parte il tempo, beneficerai anche del pre-fetch (leggi avanti) se il sistema operativo è abbastanza intelligente. Gli SSD tendono ad essere più lenti della memoria (non sempre vero però).
mckenzm,

Il tuo consiglio Linux non è in realtà "se usi Linux e monti il ​​file system NTFS in lettura / scrittura con esso", in realtà non "se usi Linux"? L'uso di Linux con ext4 o XFS su SSD è perfettamente sicuro. (E FAT, del
resto

@mattdm: Sì, immagino. (Strano, pensavo di aver già risposto a questo ...)
Mehrdad,

0

Puoi deframmentare il tuo SSD. Dovresti? Certamente non molto spesso, ma ci sono alcuni casi in cui può essere utile farlo raramente.

a) Hai un Samsung Evo 840 interessato dalla lettura lenta del vecchio bug dei file. La deframmentazione li riscriverà efficacemente e non saranno più vecchi file.

b) Mentre gli effetti della frammentazione sugli SSD sono estremamente minori, il controller deve ancora riassemblare i file che sono distribuiti su molti chip flash. L'impatto sulle prestazioni di questo è molto piccolo, ma di nuovo la deframmentazione dovrebbe riorganizzare i file e renderli più facili da riassemblare per il controller.

c) Se hai qualcosa di simile a un ssd moderno, una deframmentazione occasionale non influirà sul tempo di vita sufficiente per importare. Nel 2018 un sito di tecnologia hw ha effettuato un test di resistenza ssd e il Samsung evo 840 500GB che utilizza 2d tlc (che ha una pessima resistenza) non è riuscito a circa 600 TB di scritture. Qualcosa di meglio è probabilmente usando 3d tlc (chiamato vnand da alcune aziende) che ha molta più resistenza. I modelli più grandi hanno anche più celle su cui scrivere che aumenta ulteriormente la resistenza. E se si dispone di una grande resistenza pro drive è un non-problema completo (nel test che ho menzionato prima che il Samsung pro 512 GB è durato per 9 PB di scritture ... i modelli più grandi / più recenti dovrebbero durare ancora di più). Questi numeri sono praticamente impossibili da raggiungere a meno che tu non stia provando di proposito. Scritti usati per uccidere (quelli economici comunque,


-3

La deframmentazione di un SSD promuove il fallimento anticipato dei blocchi di memoria indirizzati più in basso.

Vedi: http://techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead

"Anche con gli algoritmi di livellamento dell'usura che diffondono le scritture in modo uniforme su tutto il flash, tutte le celle alla fine falliranno o diventeranno inadatte al dovere. Quando ciò accade, vengono ritirate e sostituite con il flash allocato dall'area sovrovisionata dell'SSD. Questa NAND di riserva garantisce che il la capacità accessibile all'utente non è influenzata dalla guerra di logoramento che sta devastando le sue celle ".

"Le perdite alla fine supereranno la capacità del drive di compensare, lasciando domande senza risposta. Quante scritture ci vogliono? Cosa succede ai tuoi dati alla fine? Gli SSD perdono prestazioni o affidabilità quando le scritture si accumulano?"


5
Questo è un caso estremo in cui l'unità ha una grande quantità di dati scritti e sovrascritti su di esso. Cosa c'entra questo con una deframmentazione regolare e di routine?
Journeyman Geek

No, non è un caso estremo ... È un test che mostra la debolezza intrinseca o eventuale del prodotto. I test sono progettati per mostrare i limiti.
jwzumwalt,

-6

Ogni cella su un SSD diventa più lenta ogni volta che viene riscritta. Il disco nasconde quell'usura, tenendo traccia di quali celle sono state scritte e scrivendo prima nelle celle poco utilizzate. Deframmentare significa riscrivere in modo massiccio su molte celle e quindi consumerà l'SSD. Gli HD beneficiano della deframmentazione perché le prestazioni sono migliorate non dovendo spostare spesso il braccio del servo, ma gli SSD non sono rallentati tanto dal posizionamento casuale dei dati.


10
Non ha votato, ma sarebbe interessato a vedere le fonti per questo.
brichins,

3
Stai confondendo l' amplificazione in scrittura con il livellamento dell'usura . Gli SSD devono cancellare prima di poter scrivere, ma cancellano blocchi più grandi di quelli che possono scrivere. Ciò significa che una singola scrittura potrebbe eseguire più scritture per mescolare i dati e liberare un blocco da cancellare. Man mano che si verificano più scritture, questo processo diventa più complicato. Questa è un'amplificazione in scrittura. Esistono vari modi per gestirli come TRIM e over-provisioning. Il livellamento dell'usura si sta diffondendo su quali celle scrivi, in modo che non falliscano completamente.
Schwern,
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.