มีคำสั่งเทอร์มินัลซึ่งจะแสดงจำนวน GB ที่เขียนลง SSD ของฉันตลอดอายุการใช้งานของดิสก์หรือไม่ ฉันถามเพราะฉันต้องการค้นหาว่ามีกี่รอบที่ทำไปแล้ว SSD สามารถทำรอบ 1,000–2000 รอบขึ้นอยู่กับประเภท
มีคำสั่งเทอร์มินัลซึ่งจะแสดงจำนวน GB ที่เขียนลง SSD ของฉันตลอดอายุการใช้งานของดิสก์หรือไม่ ฉันถามเพราะฉันต้องการค้นหาว่ามีกี่รอบที่ทำไปแล้ว SSD สามารถทำรอบ 1,000–2000 รอบขึ้นอยู่กับประเภท
คำตอบ:
อ่านคุณสมบัติ 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
จากนั้นลองคำสั่งด้านบนอีกครั้งเพื่ออ่านข้อมูลและคำนวณข้อมูลที่เขียนลงดิสก์
smartctl -s on /dev/DiskIdentifier
เปิดใช้งานด้วย จากนั้นคุณจะสามารถรับข้อมูลได้ หากต้องการปิดใช้งานอีกครั้ง:smartctl -s off /dev/DiskIdentifier
smartctl
สามารถติดตั้งได้ง่ายโดยใช้ homebrew หรือพอร์ตและมีแม้กระทั่งGUIสำหรับมัน
โพสต์ต้นฉบับกล่าวถึงว่า SSD มีขีด จำกัด รอบ 1,000-2,000 ซึ่งทำให้ปัญหาง่ายขึ้น เซลล์แต่ละตัวใน SSD อาจมีข้อ จำกัด ดังกล่าว แต่ SSD ใช้โซลูชันที่แตกต่างกันมากมายตั้งแต่การจัดสรรพื้นที่มากเกินไปและการปรับระดับการเขียนไปจนถึงชุดสะสมที่เป็นกรรมสิทธิ์ของ Sandforce ในเรื่องการทำซ้ำการบีบอัดและเทคนิคต่างกันของข้อมูล
กลับไปที่โพสต์ต้นฉบับ: เทคนิคเช่นเดียวกับiostat
ในขณะที่เกี่ยวข้องแสดงกิจกรรมรวม แต่มันยากมากที่จะทำงานย้อนกลับเพื่อทราบจำนวนรอบการทำงานของโปรแกรม / ลบสำหรับแต่ละเซลล์และจากนั้นปริมาณชีวิตยังคงอยู่บน SSD
คำแนะนำที่เป็นประโยชน์อาจหลีกเลี่ยงการเติม SSD ให้เหลือน้อยกว่า 20% ของความจุที่ระบุไว้และเพื่อหลีกเลี่ยงการปรับใช้ SSD ที่ใช้แล้วโดยไม่มีการสำรองข้อมูลเพียงพอ
Ars Technica มีบทความที่มีประโยชน์จริง ๆ เกี่ยวกับการทำงานของ SSD ประโยชน์โดยตรงที่สุดคือ: " SSD ระดับผู้บริโภคใช้งานได้ยาวนานจริง ๆ " สำหรับรายละเอียดเพิ่มเติมดูที่นี่โดยเฉพาะหน้า 5
ฉันติดตั้งGSmartControlด้วยHomebrew ( brew install gsmartcontrol
) และรับสิ่งนี้:
แอตทริบิวต์ 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
ได้รับคำตอบอย่างละเอียดในคำถามนี้ที่นี่
คำสั่งดังต่อไปนี้
iostat -Id disk0
แสดงสถิติการถ่ายโอนข้อมูลตั้งแต่ช่วงเวลาที่อุปกรณ์ถูกเมาท์จนถึงช่วงเวลาที่คำสั่ง iostat ทำงาน