Hay un comando de Terminal que me muestre cuántos GB ha sido escrito para mi SSD a través de la vida entera del disco? Estoy preguntando porque quiero averiguar cuántos ciclos se han hecho. SSD son capaces de hacer sobre 1000-2000 ciclos, dependiendo del tipo.
Respuestas
¿Demasiados anuncios?Leyó el siguiente S. M. A. R. T atributos de su SSD con una herramienta adecuada*:
241 - Total Lba Escribió: El número total de sectores de 512 bytes escritos durante toda la vida útil del dispositivo.
242 - Total Lba Leer: El número total de sectores de 512 bytes a leer 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 que se encuentran en el segundo set mucho sentido (al menos para mí, con una de 120 GB SSD como una parte de una unidad Fusion drive) porque considerablemente más que los datos se escriben en el disco SSD de la unidad de disco duro aunque el SSD tiene sólo 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 de 3 TB de HDD (la segunda parte de la Fusión de la unidad):
0xf1 Total_LBAs_Written ------ 100 253 000 - 21361815408 (~10 TiB)
0xf2 Total_LBAs_Read ------ 100 253 000 - 23925221693 (~11 TiB)
Después de la instalación de smartmontools los siguientes comandos dar los datos escritos en GB si el atributo "242 Total_LBAs_Written" existe:
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 }'
Reemplazar "Identificadordedisco" con el identificador de tu SSD interno encontrado con diskutil list
. Probablemente es disk0.
El comando siguiente da los datos escritos en GB si el atributo "175 - Host_Writes_MiB" existe (el tratamiento de los resultados 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 reemplazar "Identificadordedisco" con el identificador de tu SSD interno encontrado con diskutil list
. Probablemente es disk0.
El smartctl comandos de arriba no funciona muy fiable (al menos para mí).
Si se produce un error como "Lectura INTELIGENTE de los Datos de error: Undefined error: 0", intente smartctl -A /dev/disk0
primera.
Si se produce un error como "INTELIGENTE de la Movilidad. Utilice la opción -s con el argumento de 'on' para activarlo.", intente smartctl -s on -A /dev/disk0
A continuación, vuelva a intentar la de arriba de los comandos de lectura y calcular los datos escritos en el disco.
El post original se menciona que los Ssd tienen un 1000-2000 ciclo límite, que simplifica el problema. Las células individuales en una unidad SSD puede tener un límite, pero el SSD implementa muchas soluciones diferentes: el de la sobre-aprovisionamiento y la escritura de nivelación para Sandforce de propiedad de la colección de la deduplicación, compresión de datos y la diferenciación de las técnicas, a las que llama "DuraWrite".
A la entrada original: técnicas como iostat
, mientras relevantes, muestran agregado de la actividad, pero es muy difícil trabajar hacia atrás para saber el número de programa/borrar ciclos se realizaron para cada celda, y a partir de ahí, la cantidad de vida que permanece en la unidad SSD.
Un útil recomendación podría ser la de evitar el llenado de unidades de estado sólido para dentro de 20% o menos de su capacidad, y para evitar la implementación utilizada Ssd sin el respaldo adecuado.
Ars Technica tiene un par de artículos útiles sobre cómo Ssd de trabajo. La mayoría de los directamente útil es esta: "Ssd de duran un infierno de mucho tiempo". Para más detalles, ver aquí, en particular la página 5.
He instalado GSmartControl con homebrew, y obtuve esto:
El SMART atributo no. 173 (Borra la cuenta, o la Nivelación del Desgaste) significa que el utilizado en general del sector escribe.
Mi MacBook 2015 respondió a esta (no 0xf1 ID):
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
Una muy detallada de la respuesta que se ha dado en esta pregunta aquí
El siguiente comando
iostat -Id disk0
refleja los datos de las estadísticas de transferencia desde el momento en que el dispositivo se monta en el momento en que el comando iostat.