¿Cuántos datos se han escrito en mi SSD durante su vida útil?

15

¿Existe un comando de Terminal que me muestre cuántos GB se han escrito en mi SSD durante toda la vida útil del disco? Lo pregunto porque quiero saber cuántos ciclos se han realizado. Los SSD pueden realizar aproximadamente 1000–2000 ciclos según el tipo.

Lachtan
fuente
¿Qué SSD hay en tu Mac?
bmike
Si escribe 1000 ciclos en una unidad de 250 GB, significa que ha escrito 250 TB de datos. Incluso si escribe 50GB cada día , tomaría 13 años matarlo.
Thomas Ayoub
2
En realidad, tengo un promedio de 32 GB por día en mi SSD. Tengo 42 TB de escrituras ya registradas y el "nivel de desgaste" es solo del 88% y las escrituras totales "99%" (lo que sea que eso signifique) de acuerdo con DriveDx. Mi disco ha estado encendido durante un total de 20 meses. No tengo absolutamente ningún error o sectores defectuosos.
zagadka314
1
¡@ThomasAyoub 50GB / día es una subestimación increíble gracias al intercambio! Host_Writes_MiB de mi SSD de 120GiB es 317296939 (Eso es 2421 ciclos ) y Wear_Leveling_Count es FAILING_NOW. Mi macbook no tiene cerca de 13 años, más como 4 años.
Navin
2
@Navin bueno, entonces, estoy de acuerdo en que estaba totalmente equivocado.
Thomas Ayoub

Respuestas:

7

Lea los siguientes atributos SMART de su SSD con una herramienta adecuada *:

241 - Total de LBA escritos: el número total de sectores de 512 bytes escritos durante toda la vida útil del dispositivo.

242 - Total de LBA leídos: el número total de sectores de 512 bytes leídos durante toda la vida útil del dispositivo.

Un segundo conjunto de atributos es:

174 - Host_Reads_MiB
175 - Host_Writes_MiB

Pero no sé si los valores encontrados en el segundo conjunto realmente tienen sentido (al menos para mí con un SSD de 120 GB como parte de una unidad Fusion) porque se escriben considerablemente más datos en el SSD que en el HDD a través del SSD solo tiene 1/25 del tamaño:

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

en comparación con el disco duro de 3 TB (la segunda parte de la unidad Fusion):

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

Después de instalar smartmontools, los siguientes comandos proporcionan los datos escritos en GB si existe el atributo "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 en TB:

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

Reemplace "DiskIdentifier" con el identificador de su SSD interno encontrado con diskutil list. Probablemente es disk0.

El siguiente comando proporciona los datos escritos en GB si existe el atributo "175 - Host_Writes_MiB" (trate el resultado con precaución):

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

Como ya se mencionó anteriormente, reemplace "DiskIdentifier" con el identificador de su SSD interno encontrado con diskutil list. Probablemente es disk0.

Los comandos de smartctl anteriores no funcionan de manera muy confiable (al menos para mí).
Si obtiene un error como "Error al leer datos SMART: Error indefinido: 0", intente smartctl -A /dev/disk0primero.
Si obtiene un error como "SMART Disabled. Use la opción -s con el argumento 'on' para habilitarlo", intente smartctl -s on -A /dev/disk0
Luego vuelva a intentar los comandos anteriores para leer y calcular los datos escritos en el disco.

* smartmontools

klanomath
fuente
¿OS X no habilita SMART en SSD por defecto? ¿Habilitarlo proporcionará información del historial pasado?
grg
@grgarside Antes de publicar, verifiqué mi Fusion-SSD y SMART estaba habilitado. Sin embargo, no pude encontrar esos atributos.
klanomath
Mi "APPLE SSD SM256E" (rMBP) muestra "Disponible" pero "Desactivado" con smartctl.
grg
@grgarside Habilítelo con smartctl -s on /dev/DiskIdentifier. Entonces podrá obtener los datos. Para deshabilitarlo nuevamente:smartctl -s off /dev/DiskIdentifier
klanomath
1
Es posible que desee agregar que smartctl se puede instalar fácilmente usando homebrew o puerto y que incluso hay una GUI para ello.
n1000
5

La publicación original menciona que los SSD tienen un límite de ciclo de 1000-2000, lo que simplifica demasiado el problema. Las celdas individuales en un SSD pueden tener ese límite, pero el SSD implementa muchas soluciones diferentes: desde el aprovisionamiento excesivo y la nivelación de escritura hasta la colección patentada de Sandforce de técnicas de desduplicación, compresión y diferenciación de datos, que llama "DuraWrite".

Volviendo a la publicación original: técnicas como iostat, si bien son relevantes, muestran actividad agregada, pero es muy difícil trabajar hacia atrás para saber cuántos ciclos de programa / borrado se realizaron para cada celda y, a partir de ahí, cuánta vida queda en el SSD.

Una recomendación útil podría ser evitar llenar los SSD dentro del 20% más o menos de su capacidad establecida, y evitar desplegar SSD usados ​​sin un respaldo adecuado.

Ars Technica tiene un par de artículos realmente útiles sobre cómo funcionan los SSD. Lo más directamente útil es esto: " Los SSD de grado de consumo en realidad duran muchísimo tiempo ". Para más detalles, vea aquí , particularmente la página 5.

Charles Lindsay
fuente
4

Instalé GSmartControl con Homebrew ( brew install gsmartcontrol), y obtuve esto:

GSmartControl captura de pantalla OSX

El atributo SMART no. 173 (Erase Count, o Wear Leveling) debería significar las escrituras generales del sector usadas.

Mi MacBook 2015 respondió esto (sin 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
eSzeL
fuente
-2

Aquí se ha dado una respuesta muy detallada en esta pregunta.

El siguiente comando

iostat -Id disk0

refleja las estadísticas de transferencia de datos desde el momento en que se montó el dispositivo hasta el momento en que se ejecutó el comando iostat.

Chrisii
fuente
66
Si bien esto proporciona información útil, ¿cómo se aplica esto a "durante toda la vida útil del disco"?
grg
2
Esto solo escribe la suma de lectura + escritura MB desde el arranque o algo así. Generalmente las mismas estadísticas que en el Monitor de actividad, pestaña Disco.
Adam Hošek