¿Hay un comando de Terminal que me muestre cuántos GB se han escrito en mi SSD durante toda la vida útil del disco? Pregunto porque quiero saber cuántos ciclos se han hecho. Los SSD pueden realizar entre 1000 y 2000 ciclos, según el tipo.
Lea los siguientes atributos SMART de su SSD con una herramienta adecuada*:
241 - LBA totales escritos: el número total de sectores de 512 bytes escritos durante toda la vida útil del dispositivo.
242 - LBA totales 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 muchos más datos en el SSD que en el HDD a través del SSD tiene solo 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 HDD 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 brindan 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 tuberculosis:
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 sea 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 }'
Para algunos SSD, como el Sandisk Plus de 120 Gb, el valor de $8 ya está en GB, por lo que deberá usar la división para calcular el valor.
Como ya se mencionó anteriormente, reemplace "DiskIdentifier" con el identificador de su SSD interno que se encuentra con diskutil list
. Probablemente sea disk0.
Los comandos smartctl anteriores no funcionan de manera muy confiable (al menos para mí).
Si obtiene un error como "Error en la lectura de datos SMART: Error indefinido: 0", intente smartctl -A /dev/disk0
primero.
Si obtiene un error como "SMART deshabilitado. 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.
smartctl -s on /dev/DiskIdentifier
. Entonces podrá obtener los datos. Para desactivarlo de nuevo:smartctl -s off /dev/DiskIdentifier
smartctl
se puede instalar fácilmente usando homebrew o port y que incluso hay una GUI para ello.But i don't know if the values found in the second set really make sense […] because considerably more data is written to the SSD than the HDD though the SSD
. Creo que tiene sentido. Simplemente muestra que el algoritmo de coreStorage Fusion Drive hace bien su trabajo y facilita mucho más el SSD que el HDD. ¡Solo piense en todos los archivos temporales y el intercambio de RAM!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 sobreaprovisionamiento y nivelación de escritura hasta la colección patentada de técnicas de deduplicación, compresión y diferenciación de datos de Sandforce, a la 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 retroceder 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 hasta aproximadamente el 20 % de su capacidad declarada y evitar implementar SSD usados sin una copia de seguridad adecuada.
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 consumidor en realidad duran mucho tiempo ". Para obtener más detalles, consulte aquí , en particular la página 5.
Instalé GSmartControl con Homebrew ( brew install gsmartcontrol
), y obtuve esto:
El atributo SMART no. 173 (Recuento de borrados o nivelación de desgaste) debería significar las escrituras del sector general agotadas.
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
smartctl
genera diferentes resultados para diferentes tipos de SSD (PCIe a través de NVMe frente a SATA/PCIe a través de AHCI).
2017 barra táctil MacBook Pro 15 pulgadas
p.ejData Units Written: 44,739,539 [22.9 TB]
Para MacBookPro11,5 de mediados de 2015 (SSD basado en PCIe de 512 GB a través de AHCI)
175 Host_Writes_MiB 0x0022 099 099 000 Old_age Always - 19170887
Haga los cálculos: TB written / designed TBW * 100%
esto se puede usar como un indicador de referencia de cuánto tiempo más puede durar el SSD, pero hay otros factores, por supuesto.
NOTA: Así es como la aplicación Samsung Magician (inútil) de Windows calcula el estado de salud ;-)
Discusión detallada: https://apple.stackexchange.com/a/395220/37419
Se ha dado una respuesta muy detallada en esta pregunta aquí.
El siguiente comando
iostat -Id disco0
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.
bmike
Tomas Ayoub
usuario193393
Navin
Tomas Ayoub
Navin
Tomas Ayoub
no he comprobado