Wie viele Daten wurden über die gesamte Lebensdauer auf meine SSD geschrieben?

15

Gibt es einen Terminal-Befehl, der mir anzeigt, wie viele GB während der gesamten Lebensdauer der Festplatte auf meine SSD geschrieben wurden? Ich frage, weil ich herausfinden möchte, wie viele Zyklen durchgeführt wurden. SSDs können je nach Typ zwischen 1000 und 2000 Zyklen ausführen.

Lachtan
quelle
Welche SSD ist in deinem Mac?
bmike
Wenn Sie 1000 Zyklen auf ein 250-GB-Laufwerk schreiben, bedeutet dies, dass Sie 250 TB Daten geschrieben haben. Selbst wenn Sie jeden Tag 50 GB schreiben , würde es 13 Jahre dauern, um es zu töten.
Thomas Ayoub
2
Ich habe durchschnittlich 32 GB pro Tag auf meiner SSD. Ich habe bereits 42 TB an Schreibvorgängen protokolliert und der "Abnutzungsgrad" beträgt nur 88% und die Gesamtzahl der Schreibvorgänge laut DriveDx "99%" (was auch immer das bedeutet). Mein Laufwerk wurde insgesamt 20 Monate lang eingeschaltet. Ich habe absolut keine Fehler oder fehlerhafte Sektoren.
zagadka314
1
@ThomasAyoub 50GB / Tag ist eine verdammt unterschätzte Sache, dank Swap! Die Host_Writes_MiB meiner 120-GB-SSD ist 317296939 (das sind 2421 Zyklen ) und die Anzahl der Wear_Leveling_Counts ist FAILING_NOW. Mein MacBook ist nicht annähernd 13 Jahre alt, eher 4 Jahre.
Navin
2
@ Navin na dann stimme ich zu, ich habe mich total geirrt.
Thomas Ayoub

Antworten:

7

Lesen Sie die folgenden SMART-Attribute Ihrer SSD mit einem geeigneten Tool * aus:

241 - Total LBAs Written: Die Gesamtzahl der 512-Byte-Sektoren, die während der gesamten Lebensdauer des Geräts geschrieben wurden.

242 - Total LBAs Read: Die Gesamtzahl der 512-Byte-Sektoren, die während der gesamten Lebensdauer des Geräts gelesen wurden.

Ein zweiter Satz von Attributen ist:

174 - Host_Reads_MiB
175 - Host_Writes_MiB

Aber ich weiß nicht, ob die im zweiten Satz gefundenen Werte wirklich Sinn machen (zumindest für mich mit einer 120-GB-SSD als Teil eines Fusion-Laufwerks), weil durch die SSD erheblich mehr Daten auf die SSD geschrieben werden als auf die Festplatte hat nur 1/25 der Größe:

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

Im Vergleich zur 3-TB-Festplatte (dem zweiten Teil des Fusion-Laufwerks):

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

Nach der Installation von smartmontools geben die folgenden Befehle die geschriebenen Daten in GB aus, wenn das Attribut "242 Total_LBAs_Written" vorhanden ist:

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

oder in TB:

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

Ersetzen Sie "DiskIdentifier" durch die Kennung Ihrer internen SSD, die Sie mit gefunden haben diskutil list. Wahrscheinlich ist es disk0.

Der folgende Befehl gibt die geschriebenen Daten in GB an, wenn das Attribut "175 - Host_Writes_MiB" vorhanden ist (behandeln Sie das Ergebnis mit Vorsicht):

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

Wie bereits erwähnt, ersetzen Sie "DiskIdentifier" durch die ID Ihrer internen SSD, die Sie mit gefunden haben diskutil list. Wahrscheinlich ist es disk0.

Die obigen smartctl-Befehle funktionieren nicht sehr zuverlässig (zumindest für mich).
Wenn Sie eine Fehlermeldung wie "Lesen von SMART-Daten fehlgeschlagen: Undefinierter Fehler: 0" erhalten, versuchen Sie es smartctl -A /dev/disk0zuerst.
Wenn Sie eine Fehlermeldung wie "SMART Disabled. Verwenden Sie die Option -s mit dem Argument 'on', um sie zu aktivieren." smartctl -s on -A /dev/disk0
Erhalten , versuchen Sie, die obigen Befehle erneut auszuführen, um die auf die Festplatte geschriebenen Daten auszulesen und zu berechnen.

* smartmontools

klanomath
quelle
OS X aktiviert SMART in SSDs nicht standardmäßig? Wird die Aktivierung frühere Verlaufsinformationen liefern?
grg
@grgarside Vor dem Posten habe ich überprüft, ob meine Fusion-SSD und SMART aktiviert sind. Diese Attribute konnten jedoch nicht gefunden werden.
klanomath
Mein "APPLE SSD SM256E" (rMBP) zeigt "Verfügbar", aber "Deaktiviert" mit smartctl.
grg
@grgarside Aktivieren Sie es mit smartctl -s on /dev/DiskIdentifier. Dann können Sie die Daten abrufen. So deaktivieren Sie es erneut:smartctl -s off /dev/DiskIdentifier
klanomath
1
Vielleicht möchten Sie hinzufügen, dass smartctl es einfach über Homebrew oder Port installiert werden kann und dass es sogar eine GUI dafür gibt.
n1000
5

In der ursprünglichen Veröffentlichung wird erwähnt, dass SSDs ein Limit von 1000 bis 2000 Zyklen haben, wodurch das Problem zu stark vereinfacht wird. Einzelne Zellen in einer SSD können eine solche Beschränkung haben, aber die SSD implementiert viele verschiedene Lösungen: von der Über-Bereitstellung und dem Schreiben bis zu Sandforce's proprietärer Sammlung von Deduplizierungs-, Komprimierungs- und Datenunterscheidungstechniken, die sie "DuraWrite" nennt.

Zurück zum ursprünglichen Beitrag: Techniken iostat, die zwar relevant sind, jedoch eine aggregierte Aktivität zeigen, ist es sehr schwierig, rückwärts zu arbeiten, um zu wissen, wie viele Programmier- / Löschzyklen für jede Zelle durchgeführt wurden und wie viel Leben auf der SSD verbleibt.

Eine sinnvolle Empfehlung könnte darin bestehen, das Füllen von SSDs innerhalb von etwa 20% ihrer angegebenen Kapazität und das Bereitstellen gebrauchter SSDs ohne angemessene Sicherung zu vermeiden.

Ars Technica bietet einige wirklich nützliche Artikel zur Funktionsweise von SSDs. Am direktesten nützlich ist dies: " SSDs für Endverbraucher halten eine verdammt lange Zeit ". Weitere Einzelheiten finden Sie hier , insbesondere auf Seite 5.

Charles Lindsay
quelle
4

Ich habe GSmartControl mit Homebrew ( brew install gsmartcontrol) installiert und Folgendes erhalten :

GSmartControl Bildschirmfoto OSX

Das SMART-Attribut Nr. 173 (Erase Count oder Wear Leveling) sollte bedeuten, dass die Sektorschreibvorgänge insgesamt aufgebraucht sind.

Mein MacBook 2015 hat dies beantwortet (keine 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
eSzeL
quelle
-2

Eine sehr detaillierte Antwort wurde in dieser Frage hier gegeben

Der folgende Befehl

iostat -Id disk0

spiegelt die Datenübertragungsstatistik vom Zeitpunkt der Bereitstellung des Geräts bis zum Zeitpunkt der Ausführung des Befehls iostat wider.

Chrisii
quelle
6
Obwohl dies nützliche Informationen liefert, wie gilt dies für die gesamte Lebensdauer der Festplatte?
grg
2
Dies schreibt nur die Summe aus Lesen + Schreiben von MB seit dem Start oder so. Im Allgemeinen die gleichen Statistiken wie im Aktivitätsmonitor, Registerkarte "Datenträger".
Adam Hošek