Combien de données ont été écrites sur mon SSD au cours de sa durée de vie?

15

Existe-t-il une commande Terminal qui me montrera combien de Go ont été écrits sur mon SSD pendant toute la durée de vie du disque? Je demande parce que je veux savoir combien de cycles ont été effectués. Les disques SSD peuvent effectuer environ 1 000 à 2 000 cycles selon le type.

Lachtan
la source
Quel SSD est dans votre Mac?
bmike
Si vous écrivez 1000 cycles sur un disque de 250 Go, cela signifie que vous avez écrit 250 To de données. Même si vous écrivez 50 Go par jour, il faudrait 13 ans pour le tuer.
Thomas Ayoub
2
Je fais en moyenne 32 Go par jour sur mon SSD. J'ai 42 To d'écritures déjà enregistrées et le "niveau d'usure" n'est que de 88% et le total d'écritures "99%" (quoi que cela signifie) selon DriveDx. Mon lecteur est allumé depuis 20 mois au total. Je n'ai absolument aucune erreur ou mauvais secteur.
zagadka314
1
@ThomasAyoub 50 Go / jour est une sacrée sous-estimation grâce au swap! Le Host_Writes_MiB de mon SSD 120 Go est 317296939 (c'est 2421 cycles ) et Wear_Leveling_Count est FAILING_NOW. Mon macbook est loin d'avoir 13 ans, plus comme 4 ans.
Navin
2
@Navin bien alors, je conviens que j'avais totalement tort.
Thomas Ayoub

Réponses:

7

Lisez les attributs SMART suivants de votre SSD avec un outil approprié *:

241 - Nombre total de LBA écrits: nombre total de secteurs de 512 octets écrits pendant toute la durée de vie de l'appareil.

242 - Total LBAs Read: nombre total de secteurs de 512 octets lus pendant toute la durée de vie du périphérique.

Un deuxième ensemble d'attributs est:

174 - Host_Reads_MiB
175 - Host_Writes_MiB

Mais je ne sais pas si les valeurs trouvées dans le deuxième ensemble ont vraiment du sens (au moins pour moi avec un SSD de 120 Go en tant que partie d'un lecteur Fusion) car beaucoup plus de données sont écrites sur le SSD que sur le disque dur via le SSD a seulement 1 / 25e de la taille:

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

par rapport au disque dur 3 To (la deuxième partie du lecteur Fusion):

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

Après l'installation de smartmontools, les commandes suivantes donnent les données écrites en Go si l'attribut "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 }'

ou en TB:

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

Remplacez "DiskIdentifier" par l'identifiant de votre SSD interne trouvé avec diskutil list. C'est probablement disk0.

La commande suivante donne les données écrites en Go si l'attribut "175 - Host_Writes_MiB" existe (traitez le résultat avec prudence):

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

Comme déjà mentionné précédemment, remplacez "DiskIdentifier" par l'identifiant de votre SSD interne trouvé avec diskutil list. C'est probablement disk0.

Les commandes smartctl ci-dessus ne fonctionnent pas très fiable (du moins pour moi).
Si vous obtenez une erreur du type "Échec de la lecture des données SMART: erreur non définie: 0", essayez d' smartctl -A /dev/disk0abord.
Si vous obtenez une erreur telle que "SMART désactivé. Utilisez l'option -s avec l'argument" on "pour l'activer.", Essayez smartctl -s on -A /dev/disk0
ensuite réessayez les commandes ci-dessus pour lire et calculer les données écrites sur le disque.

* smartmontools

klanomath
la source
OS X n'active pas SMART dans les SSD par défaut? L'activer fournira-t-il des informations sur l'histoire passée?
grg
@grgarside Avant de poster, j'ai vérifié mon Fusion-SSD et SMART était activé. Impossible de trouver ces attributs cependant.
klanomath
Mon "APPLE SSD SM256E" (rMBP) affiche "Disponible" mais "Désactivé" avec smartctl.
grg
@grgarside Activez-le avec smartctl -s on /dev/DiskIdentifier. Vous pourrez alors obtenir les données. Pour le désactiver à nouveau:smartctl -s off /dev/DiskIdentifier
klanomath
1
Vous voudrez smartctl peut-être ajouter qui peut être facilement installé en utilisant homebrew ou port et qu'il existe même une interface graphique pour cela.
n1000
5

Le message d'origine mentionne que les disques SSD ont une limite de cycle de 1000 à 2000, ce qui simplifie trop le problème. Les cellules individuelles d'un SSD peuvent avoir une telle limite, mais le SSD implémente de nombreuses solutions différentes: du surapprovisionnement et du niveau d'écriture à la collection propriétaire de Sandforce de techniques de déduplication, de compression et de différenciation des données, qu'il appelle «DuraWrite».

Retour à la publication d'origine: des techniques telles iostatque, bien que pertinentes, montrent une activité globale, mais il est très difficile de revenir en arrière pour savoir combien de cycles de programme / d'effacement ont été effectués pour chaque cellule, et à partir de là, combien de vie reste sur le SSD.

Une recommandation utile pourrait être d'éviter de remplir les SSD à moins de 20% de leur capacité déclarée et d'éviter de déployer des SSD utilisés sans sauvegarde adéquate.

Ars Technica a quelques articles vraiment utiles sur le fonctionnement des SSD. Le plus directement utile est celui-ci: " Les SSD grand public durent en fait très longtemps ". Pour plus de détails, voir ici , notamment page 5.

Charles Lindsay
la source
4

J'ai installé GSmartControl avec Homebrew ( brew install gsmartcontrol), et j'ai obtenu ceci:

Capture d'écran de GSmartControl OSX

L'attribut SMART no. 173 (Erase Count ou Wear Leveling) devrait signifier les écritures de secteur utilisées.

Mon MacBook 2015 a répondu à cette question (pas d'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
la source
-2

Une réponse très détaillée a été donnée dans cette question ici

La commande suivante

iostat -Id disk0

reflète les statistiques de transfert de données depuis le moment où l'appareil a été monté jusqu'au moment où la commande iostat a été exécutée.

Chrisii
la source
6
Bien que cela fournisse des informations utiles, comment cela s'applique-t-il à «pendant toute la durée de vie du disque»?
grg
2
Cela n'écrit que la somme des Mo en lecture + écriture depuis le démarrage ou quelque chose. Généralement les mêmes statistiques que dans le Moniteur d'activité, onglet Disque.
Adam Hošek