Quanti dati sono stati scritti sul mio SSD nel corso della sua vita?


15

Esiste un comando Terminal che mi mostrerà quanti GB sono stati scritti sul mio SSD per tutta la durata del disco? Lo sto chiedendo perché voglio scoprire quanti cicli sono stati fatti. Gli SSD sono in grado di eseguire circa 1000–2000 cicli a seconda del tipo.


Quale SSD è presente sul tuo Mac?
bmike

Se scrivi 1000 cicli su un'unità da 250 GB, significa che hai scritto 250 TB di dati. Anche se scrivi 50 GB ogni giorno ci vorrebbero 13 anni per ucciderlo.
Thomas Ayoub,

2
In realtà ho una media di 32 GB al giorno sul mio SSD. Ho già registrato 42 TB di scritture e il "livello di usura" è solo dell'88% e le scritture totali "99%" (qualunque cosa significhi) secondo DriveDx. Il mio disco è stato acceso per un totale di 20 mesi. Non ho assolutamente errori o settori danneggiati.
zagadka314,

1
@ThomasAyoub 50 GB / giorno è un inferno di sottostima grazie a swap! Host_Writes_MiB del mio SSD da 120GiB è 317296939 (sono 2421 cicli ) e Wear_Leveling_Count è FAILING_NOW. Il mio macbook non ha quasi 13 anni, più o meno 4 anni.
Navin,

2
@Navin bene, sono d'accordo che mi sbagliavo totalmente.
Thomas Ayoub,

Risposte:


7

Leggi i seguenti attributi SMART del tuo SSD con uno strumento appropriato *:

241 - Totale LBA scritti: il numero totale di settori a 512 byte scritti durante l'intero ciclo di vita del dispositivo.

242 - LBA totali letti: il numero totale di settori a 512 byte letti durante l'intero ciclo di vita del dispositivo.

Un secondo set di attributi è:

174 - Host_Reads_MiB
175 - Host_Writes_MiB

Ma non so se i valori trovati nel secondo set abbiano davvero senso (almeno per me con un SSD da 120 GB come parte di un'unità Fusion) perché un numero considerevolmente maggiore di dati viene scritto sull'SSD rispetto all'HDD attraverso l'SSD ha solo 1/25 della dimensione:

0xae Host_Reads_MiB          ----CK   100   100   000    -    12268569 (~12 TiB)  
0xaf Host_Writes_MiB         ----CK   100   100   000    -    16481745 (~16 TiB) 

rispetto all'HDD da 3 TB (la seconda parte dell'unità Fusion):

0xf1 Total_LBAs_Written      ------   100   253   000    -    21361815408 (~10 TiB)  
0xf2 Total_LBAs_Read         ------   100   253   000    -    23925221693 (~11 TiB)

Dopo l'installazione di smartmontools i seguenti comandi forniscono i dati scritti in GB se esiste l'attributo "242 Total_LBAs_Written":

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/DiskIdentifier | grep 0xf1 | awk '{ print $8/1953125 }'

o in TB:

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/DiskIdentifier | grep 0xf1 | awk '{ print $8/1953125000 }'

Sostituisci "DiskIdentifier" con l'identificatore del tuo SSD interno trovato con diskutil list. Probabilmente è disk0.

Il seguente comando fornisce i dati scritti in GB se esiste l'attributo "175 - Host_Writes_MiB" (trattare il risultato con cautela):

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/DiskIdentifier | grep 0xaf | awk '{ print $8/953.67 }'

Come già accennato in precedenza, sostituire "DiskIdentifier" con l'identificatore del proprio SSD interno trovato diskutil list. Probabilmente è disk0.

I comandi smartctl sopra non funzionano in modo molto affidabile (almeno per me).
Se viene visualizzato un errore del tipo "Lettura dati SMART non riuscita: errore non definito: 0", provare smartctl -A /dev/disk0prima.
Se viene visualizzato un errore del tipo "SMART disabilitato. Utilizzare l'opzione -s con argomento 'on' per abilitarlo", provare smartctl -s on -A /dev/disk0
quindi riprovare i comandi precedenti per leggere e calcolare i dati scritti sul disco.

* smartmontools


OS X non abilita SMART negli SSD per impostazione predefinita? Abilitarlo fornirà informazioni sulla storia passata?
grg

@grgarside Prima di pubblicare ho controllato Fusion-SSD e SMART era abilitato. Tuttavia, non è stato possibile trovare quegli attributi.
klanomath,

Il mio "APPLE SSD SM256E" (rMBP) mostra "Disponibile" ma "Disabilitato" con smartctl.
grg

@grgarside Abilitalo con smartctl -s on /dev/DiskIdentifier. Quindi sarai in grado di ottenere i dati. Per disabilitarlo di nuovo:smartctl -s off /dev/DiskIdentifier
klanomath,

1
Potresti voler aggiungere che smartctl può essere facilmente installato usando homebrew o port e che esiste anche una GUI per questo.
n1000,

5

Il post originale menziona che gli SSD hanno un limite di ciclo di 1000-2000, che semplifica eccessivamente il problema. Le singole celle in un SSD possono avere un tale limite, ma l'SSD implementa molte soluzioni diverse: dall'over-provisioning e dal livellamento della scrittura alla raccolta proprietaria di Sandforce di tecniche di de-duplicazione, compressione e differenziazione dei dati, che chiama "DuraWrite".

Torna al post originale: tecniche come iostat, sebbene pertinenti, mostrano attività aggregata, ma è molto difficile lavorare all'indietro per sapere quanti cicli di programma / cancellazione sono stati eseguiti per ogni cella e da lì, quanta vita rimane sull'SSD.

Una raccomandazione utile potrebbe essere quella di evitare di riempire gli SSD entro il 20% circa della loro capacità dichiarata e di evitare di distribuire SSD usati senza un backup adeguato.

Ars Technica ha un paio di articoli davvero utili su come funzionano gli SSD. Il più direttamente utile è questo: " Gli SSD di livello consumer durano davvero molto tempo ". Per ulteriori dettagli, vedere qui , in particolare pagina 5.


4

Ho installato GSmartControl con Homebrew ( brew install gsmartcontrol) e ho ottenuto questo:

Schermata di GSmartControl OSX

L'attributo SMART n. 173 (Cancella conteggio o livellamento dell'usura) dovrebbe indicare le scritture di settore complessive esaurite.

Il mio MacBook 2015 ha risposto a questo (nessun ID 0xf1):

smartctl -s on -i -A -f brief -f hex,id -l devstat /dev/disk0 
smartctl 6.4 2015-06-04 r4109 [x86_64-apple-darwin15.0.0] (local build)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     APPLE SSD SM0256G
...
LU WWN Device Id: 5 002538 900000000
Firmware Version: BXW1SA0Q
User Capacity:    251 000 193 024 bytes [251 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
...
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID#  ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
0x01 Raw_Read_Error_Rate     -O-RC-   200   200   000    -    0
0x05 Reallocated_Sector_Ct   PO--CK   100   100   000    -    0
0x09 Power_On_Hours          -O--CK   099   099   000    -    180
0x0c Power_Cycle_Count       -O--CK   099   099   000    -    650
0xa9 Unknown_Attribute       PO--C-   229   229   010    -    1975773037504
0xad Unknown_Attribute       -O--CK   200   200   100    -    4296081414
0xae Unknown_Attribute       -O---K   099   099   000    -    2547718
0xaf Program_Fail_Count_Chip -O---K   099   099   000    -    1304888
0xc0 Power-Off_Retract_Count -O--C-   099   099   000    -    1
0xc2 Temperature_Celsius     -O---K   059   022   000    -    41 (Min/Max 19/78)
0xc5 Current_Pending_Sector  -O---K   100   100   000    -    0
0xc7 UDMA_CRC_Error_Count    -O-RC-   200   199   000    -    0
                             ||||||_ K auto-keep
                             |||||__ C event count
                             ||||___ R error rate
                             |||____ S speed/performance
                             ||_____ O updated online
                             |______ P prefailure warning

ATA_READ_LOG_EXT (addr=0x00:0x00, page=0, n=1) failed: 48-bit ATA commands not implemented
Read GP Log Directory failed

Device Statistics (GP/SMART Log 0x04) not supported

-2

Una risposta molto dettagliata è stata data in questa domanda qui

Il seguente comando

iostat -Id disk0

riflette le statistiche di trasferimento dei dati dal momento in cui il dispositivo è stato montato al momento in cui è stato eseguito il comando iostat.


6
Mentre ciò fornisce informazioni utili, come si applica a "per tutta la vita del disco"?
grg

2
Questo scrive solo la somma di read + write MB dall'avvio o qualcosa del genere. Generalmente le stesse statistiche di Monitor attività, scheda Disco.
Adam Hošek,
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.