ข้อมูลถูกเขียนลง SSD ของฉันตลอดอายุการใช้งานเท่าไหร่


15

มีคำสั่งเทอร์มินัลซึ่งจะแสดงจำนวน GB ที่เขียนลง SSD ของฉันตลอดอายุการใช้งานของดิสก์หรือไม่ ฉันถามเพราะฉันต้องการค้นหาว่ามีกี่รอบที่ทำไปแล้ว SSD สามารถทำรอบ 1,000–2000 รอบขึ้นอยู่กับประเภท


SSD ตัวไหนที่คุณใช้อยู่?
bmike

หากคุณเขียน 1,000 รอบในไดรฟ์ 250GB หมายความว่าคุณเขียนข้อมูล 250TB แม้ว่าคุณจะเขียน 50GB ในแต่ละวันมันจะใช้เวลา 13 ปีในการฆ่ามัน
โทมัส Ayoub

2
จริง ๆ แล้วฉันเฉลี่ย 32 GB ต่อวันสำหรับ SSD ของฉัน ฉันมีการบันทึก 42 TB ที่บันทึกไว้แล้วและ "ระดับการสึกหรอ" เพียง 88% และการเขียนทั้งหมด "99%" (อะไรก็ตามที่มีความหมาย) ตาม DriveDx ไดรฟ์ของฉันเปิดเครื่องรวมเป็นเวลา 20 เดือน ฉันไม่มีข้อผิดพลาดหรือเซกเตอร์เสีย
zagadka314

1
@ThomasAyoub 50GB / วันเป็นหนึ่งในนรกของการดูถูกดูแคลนที่จะแลกเปลี่ยน! Host_Writes_MiB SSD 120GiB ของฉันคือ 317296939 (นั่นคือ2421 รอบ ) และ Wear_Leveling_Count คือ FAILING_NOW macbook ของฉันไม่มีที่ไหนเลยใกล้อายุ 13 ปีและมากกว่า 4 ปี
Navin

2
@Navin ดีฉันยอมรับว่าฉันผิดทั้งหมด
โทมัส Ayoub

คำตอบ:


7

อ่านคุณสมบัติ SMART ต่อไปนี้ของ SSD ด้วยเครื่องมือที่เหมาะสม *:

241 - จำนวน LBA ทั้งหมดที่เขียน: จำนวนส่วนของ 512- ไบต์ที่เขียนตลอดช่วงอายุการใช้งานของอุปกรณ์

242 - จำนวน LBA ทั้งหมดที่อ่าน: จำนวนทั้งหมดของเซ็กเตอร์ 512- ไบต์ที่อ่านตลอดช่วงอายุการใช้งานของอุปกรณ์

แอตทริบิวต์ชุดที่สองคือ:

174 - Host_Reads_MiB
175 - Host_Writes_MiB

แต่ฉันไม่รู้ว่าค่าที่พบในชุดที่สองนั้นสมเหตุสมผลหรือไม่ (อย่างน้อยสำหรับฉันที่มี 120 GB SSD เป็นส่วนหนึ่งของฟิวชั่นไดรฟ์) เพราะมีการเขียนข้อมูลไปยัง SSD มากกว่า HDD มากกว่า SSD มีเพียง 1 ใน 25 ของขนาด:

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

เปรียบเทียบกับ HDD 3 TB (ส่วนที่สองของฟิวชั่นไดรฟ์):

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

หลังจากติดตั้ง smartmontools คำสั่งต่อไปนี้จะให้ข้อมูลที่เขียนเป็น GB หากมีแอตทริบิวต์ "242 Total_LBAs_Written" อยู่:

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

หรือในวัณโรค:

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

แทนที่ "DiskIdentifier" กับตัวบ่งชี้ของ SSD diskutil listภายในของคุณพบกับ อาจเป็น disk0

คำสั่งต่อไปนี้ให้ข้อมูลที่เป็นลายลักษณ์อักษรในหน่วย GB หากมีแอตทริบิวต์ "175 - Host_Writes_MiB" อยู่ (ให้ใช้ผลลัพธ์ด้วยความระมัดระวัง):

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

เช่นเดียวกับที่กล่าวถึงแล้วก่อนหน้านี้แทนที่ "DiskIdentifier" กับตัวบ่งชี้ของ SSD diskutil listภายในของคุณพบกับ อาจเป็น disk0

คำสั่ง smartctl ด้านบนไม่ได้ทำงานอย่างน่าเชื่อถือ (อย่างน้อยสำหรับฉัน)
หากคุณได้รับข้อผิดพลาดเช่น "อ่านข้อมูล SMART ล้มเหลว: ข้อผิดพลาดที่ไม่ได้กำหนด: 0" ให้ลองsmartctl -A /dev/disk0ก่อน
หากคุณได้รับข้อผิดพลาดเช่น "ปิดใช้งาน SMART ใช้ตัวเลือก -s พร้อมอาร์กิวเมนต์ 'เปิด' เพื่อเปิดใช้งาน" ให้ลองsmartctl -s on -A /dev/disk0
จากนั้นลองคำสั่งด้านบนอีกครั้งเพื่ออ่านข้อมูลและคำนวณข้อมูลที่เขียนลงดิสก์

* smartmontools


OS X ไม่เปิดใช้งาน SMART ใน SSD ตามค่าเริ่มต้นหรือไม่ การเปิดใช้งานจะให้ข้อมูลประวัติที่ผ่านมาหรือไม่
grg

@grgarside ก่อนโพสต์ฉันตรวจสอบว่า Fusion-SSD และ SMART เปิดใช้งานอยู่ ไม่พบคุณลักษณะเหล่านั้น
klanomath

"APPLE SSD SM256E" ของฉัน (rMBP) แสดง "พร้อมใช้งาน" แต่ "ปิดการใช้งาน" ด้วย smartctl
grg

@grgarside smartctl -s on /dev/DiskIdentifierเปิดใช้งานด้วย จากนั้นคุณจะสามารถรับข้อมูลได้ หากต้องการปิดใช้งานอีกครั้ง:smartctl -s off /dev/DiskIdentifier
klanomath

1
คุณอาจต้องการเพิ่มที่smartctl สามารถติดตั้งได้ง่ายโดยใช้ homebrew หรือพอร์ตและมีแม้กระทั่งGUIสำหรับมัน
n1000

5

โพสต์ต้นฉบับกล่าวถึงว่า SSD มีขีด จำกัด รอบ 1,000-2,000 ซึ่งทำให้ปัญหาง่ายขึ้น เซลล์แต่ละตัวใน SSD อาจมีข้อ จำกัด ดังกล่าว แต่ SSD ใช้โซลูชันที่แตกต่างกันมากมายตั้งแต่การจัดสรรพื้นที่มากเกินไปและการปรับระดับการเขียนไปจนถึงชุดสะสมที่เป็นกรรมสิทธิ์ของ Sandforce ในเรื่องการทำซ้ำการบีบอัดและเทคนิคต่างกันของข้อมูล

กลับไปที่โพสต์ต้นฉบับ: เทคนิคเช่นเดียวกับiostatในขณะที่เกี่ยวข้องแสดงกิจกรรมรวม แต่มันยากมากที่จะทำงานย้อนกลับเพื่อทราบจำนวนรอบการทำงานของโปรแกรม / ลบสำหรับแต่ละเซลล์และจากนั้นปริมาณชีวิตยังคงอยู่บน SSD

คำแนะนำที่เป็นประโยชน์อาจหลีกเลี่ยงการเติม SSD ให้เหลือน้อยกว่า 20% ของความจุที่ระบุไว้และเพื่อหลีกเลี่ยงการปรับใช้ SSD ที่ใช้แล้วโดยไม่มีการสำรองข้อมูลเพียงพอ

Ars Technica มีบทความที่มีประโยชน์จริง ๆ เกี่ยวกับการทำงานของ SSD ประโยชน์โดยตรงที่สุดคือ: " SSD ระดับผู้บริโภคใช้งานได้ยาวนานจริง ๆ " สำหรับรายละเอียดเพิ่มเติมดูที่นี่โดยเฉพาะหน้า 5


4

ฉันติดตั้งGSmartControlด้วยHomebrew ( brew install gsmartcontrol) และรับสิ่งนี้:

ภาพหน้าจอ GSmartControl OSX

แอตทริบิวต์ SMART หมายเลข 173 (จำนวนลบหรือระดับการสึกหรอ) ควรหมายถึงการเขียนเซกเตอร์ทั้งหมดที่ใช้หมด

MacBook 2015 ของฉันตอบสิ่งนี้ (ไม่ใช่ 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

-2

ได้รับคำตอบอย่างละเอียดในคำถามนี้ที่นี่

คำสั่งดังต่อไปนี้

iostat -Id disk0

แสดงสถิติการถ่ายโอนข้อมูลตั้งแต่ช่วงเวลาที่อุปกรณ์ถูกเมาท์จนถึงช่วงเวลาที่คำสั่ง iostat ทำงาน


6
ขณะนี้มีข้อมูลที่เป็นประโยชน์อย่างไรสิ่งนี้นำไปใช้กับ 'ตลอดอายุการใช้งานของดิสก์' ได้อย่างไร
grg

2
สิ่งนี้จะเขียนผลรวมของการอ่าน + เขียน MB ตั้งแต่บูตหรือบางอย่าง โดยทั่วไปสถิติเดียวกันกับในการตรวจสอบกิจกรรมแท็บดิสก์
Adam Hošek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.