การกู้คืนประสิทธิภาพและการประเมินอายุของไดรฟ์ SSD ที่ใช้แล้วหรือไม่


70

ตอนนี้ไดรฟ์ SSD ขนาด 128 GB ของฉันอายุประมาณหนึ่งปีครึ่งแล้วและตั้งแต่นั้นฉันก็อัพเกรดเป็นไดรฟ์อื่น

ฉันต้องการล้าง SSD เก่าของฉันเป็น ...

  • คืนประสิทธิภาพให้ใกล้ระดับใหม่

  • ฟื้นฟูและโดยทั่วไปให้ตรวจสุขภาพ

ฉันจะทำสิ่งนี้ได้อย่างไร


4
แม้ว่าจะไม่ครอบคลุมถึงการคืนค่าคุณอาจพบว่าการโพสต์บล็อกนี้น่าสนใจเพื่อป้องกันไม่ให้เกิดขึ้น
Tamara Wijsman

1
ฉันอาจพลาดไป แต่ฉันไม่เห็นว่าคำตอบใด ๆ ด้านล่างคือ " ตรวจสอบ " ในกรณีของคำถามนี้ฉันอยากรู้จริงๆว่าเกิดอะไรขึ้นกับการทำงานที่ "ดีที่สุด" สำหรับคุณในที่สุด (ถ้าคุณจำได้ ... )
ไม่มีเหตุผล John

คำตอบ:


56

บน Linux เพียงรัน

hdparm --trim-sector-ranges start:count /dev/sda

ผ่านบล็อกช่วงที่คุณต้องการ TRIM แทนstartและcountอุปกรณ์ SSD /dev/sdaในสถานที่ของ มันมีข้อดีของการเป็นแบบเร็วและไม่เขียนเลขศูนย์บนไดรฟ์ แต่จะส่งคำสั่ง TRIM ไปยังคอนโทรลเลอร์ SSD เพื่อแจ้งให้ทราบว่าคุณไม่สนใจข้อมูลในบล็อกเหล่านั้นและสามารถสันนิษฐานได้ว่าพวกเขาไม่ได้ใช้งานในอัลกอริทึมการรวบรวมขยะ

คุณอาจต้องเรียกใช้คำสั่งนี้เป็นรูท เนื่องจากคำสั่งนี้มีอันตรายอย่างยิ่งเนื่องจากอาจทำให้ข้อมูลสูญหายได้ในทันทีคุณจึงต้องส่ง--please-destroy-my-driveอาร์กิวเมนต์ไปที่hdparm(ฉันไม่ได้เพิ่มสิ่งนี้ลงในบรรทัดคำสั่งเพื่อป้องกันการสูญหายของข้อมูลโดยไม่ตั้งใจซึ่งเกิดจากการคัดลอกและวาง)

ในบรรทัดคำสั่งด้านบน/dev/sdaควรถูกแทนที่ด้วยอุปกรณ์ SSD ที่คุณต้องการส่งคำสั่ง TRIM ไป startคือที่อยู่ของบล็อกแรก (ภาค) ถึง TRIM และcountเป็นจำนวนบล็อกที่จะทำเครื่องหมายว่าว่างจากที่อยู่เริ่มต้นนั้น คุณสามารถส่งหลายช่วงไปยังคำสั่ง

หลังจากทำแบบส่วนตัวกับ hdparm v9.32 บน Ubuntu 11.04 บนแล็ปท็อปของฉันด้วย 128GB Crucial RealSSD C300 ฉันต้องชี้ปัญหา: ฉันไม่สามารถผ่านจำนวนบล็อกดิสก์ทั้งหมด (0: 250069680) เป็นช่วง . ฉันด้วยตนเอง (โดยทั่วไป "ค้นหาด้วยฐานสอง" ด้วยมือ) พบว่ามีค่ามากพอสำหรับการนับบล็อกที่ทำงานได้ (40000) และสามารถออกคำสั่ง TRIM ในลำดับ 40000 ช่วงเพื่อเพิ่มดิสก์ทั้งหมด เป็นไปได้ที่จะทำด้วยเชลล์สคริปต์แบบง่าย ๆ (ทดสอบบน Ubuntu 11.04 ภายใต้รูท):

 # fdisk -lu /dev/sda

 Disk /dev/sda: 128.0 GB, 128035676160 bytes
 255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
 ...  

หากต้องการลบไดรฟ์ทั้งหมดให้ใช้จำนวนเซกเตอร์ทั้งหมดและแทนที่ 250069680 ในบรรทัดต่อไปนี้ด้วยหมายเลขนั้นและรัน (เพิ่ม--please-destroy-my-drive):

 # i=0; while [ $i -lt 250069680 ]; do echo $i:40000; i=$(((i+40000))); done \
 | hdparm --trim-sector-ranges-stdin /dev/sda

และคุณทำเสร็จแล้ว! คุณสามารถลองอ่านเนื้อหาดิบของดิสก์ด้วยhexedit /dev/sdaก่อนและหลังและตรวจสอบว่าไดรฟ์ได้ทิ้งข้อมูลแล้ว


แน่นอนแม้ว่าคุณจะไม่ต้องการใช้ Linux เป็นระบบปฏิบัติการหลักของเครื่องคุณก็สามารถใช้เคล็ดลับนี้ได้ด้วยการบูตซีดีสดและใช้งานบนไดรฟ์


3
เขียนได้ดี แต่สิ่งนี้น่าเสียดายที่ใช้ไม่ได้กับ SSD ที่ไม่ใช่ TRIM เพื่อที่คุณจะต้องไปอีกหน่อย ดูวิกิ ATA ที่ kernel.orgสำหรับคำแนะนำเกี่ยวกับวิธีการทำเช่นนั้นกับ hdparm มันจะดียิ่งขึ้นถ้าคุณสามารถปรับเปลี่ยนรายการเดิมของคุณมีข้อมูลนี้ :)
เจมส์

"fstrim" เป็นเวอร์ชั่นที่ง่ายด้านบน (ดูคำตอบแยก)
Bryce

@ ไบรซ์ไม่ถูกต้อง; TRIM เป็นคำแนะนำเท่านั้นและมีไว้เพื่อเหตุผลด้านประสิทธิภาพไม่ใช่ความปลอดภัยหมายความว่าไดรฟ์มีอิสระที่จะเพิกเฉยคำสั่งหรือชะลอการลบจนกว่าจะถึงเวลาต่อมา
psusi

24

ก่อนอื่นเรามาเริ่มด้วยการทำความเข้าใจว่าอะไรคือสิ่งที่ทำให้ประสิทธิภาพเสื่อมลง หลายคนจะแนะนำวิธีแก้ปัญหาที่ไม่เพียงพอ (อย่างที่ฉันเห็นอยู่แล้ว) ปมของสถานการณ์ทั้งหมดนี้โดยทั่วไปจะลงมาให้ความจริงต่อไปนี้เช่นอ้างจากวิกิพีเดีย จำไว้ว่ามันเป็นสิ่งสำคัญ:

ด้วยหน่วยความจำแฟลช NAND การอ่านและการเขียนโปรแกรมจะต้องดำเนินการพร้อมกันในขณะที่การปลดล็อคและการลบจะต้องเกิดขึ้นในแบบบล็อกบล็อค

SSD นั้นประกอบด้วยแฟลช NAND และแฟลชประกอบด้วย "บล็อก" แต่ละบล็อกมี "หน้า" จำนวนมาก ลองจินตนาการว่าเราเพิ่งซื้อ SSD ใหม่ที่เป็นประกายซึ่งมีหน่วยความจำบล็อคเดียวและบล็อกนั้นประกอบด้วยหน้าเปล่า 4 หน้า

เพื่อความชัดเจนฉันแยกความแตกต่างระหว่างหน้าว่างหน้าใช้และลบหน้าด้วย∅, 1 และ X คีย์ที่สำคัญคือว่ามีความแตกต่างระหว่างมุมมองของตัวควบคุมเหล่านี้! มันไม่ง่ายอย่างที่ 1 และ 0 ดังนั้นในการเริ่มต้นหน้าต่างๆในไดรฟ์ใหม่ของเรามีลักษณะดังนี้:

∅, ∅, ∅, ∅ (ว่างทั้งหมด)

ตอนนี้เราไปเขียนข้อมูลลงในไดรฟ์แล้วมันก็จะถูกเก็บไว้ในหน้าแรกดังนั้น:

1, ∅, ∅, ∅

ต่อไปเราเขียนข้อมูลอีกเล็กน้อยเพียงคราวนี้เพียงพอที่จะต้องมีสองหน้าและท้ายที่สุดจะถูกเก็บไว้ในหน้า 2 และ 3:

1, 1, 1, ∅

เราหมดพื้นที่แล้ว! เราตัดสินใจว่าเราไม่ต้องการข้อมูลเริ่มต้นที่เราเขียนดังนั้นให้ลบออกเพื่อสร้างห้อง:

X, 1, 1, ∅

สุดท้ายเรามีชุดข้อมูลขนาดใหญ่อีกชุดที่เราจำเป็นต้องจัดเก็บซึ่งจะใช้สองหน้าที่เหลือ นี่คือที่ที่มีประสิทธิภาพเยี่ยมชมการใช้งานโดยไม่ต้องตัด !! ไปจากสถานะสุดท้ายของเราถึงสิ่งนี้:

1, 1, 1, 1

... ต้องการงานมากกว่าที่คนส่วนใหญ่รู้ อีกครั้งนี้เกิดจากความจริงที่ว่าแฟลชสามารถลบในรูปแบบบล็อกฉลาดไม่ใช่หน้าฉลาดซึ่งเป็นสิ่งที่การเปลี่ยนแปลงครั้งสุดท้ายข้างต้นเรียกร้องให้ ความแตกต่างระหว่าง TRIM และที่ไม่ใช่ TRIM ของ SSD คือเมื่อทำงานต่อไปนี้!

เนื่องจากเราจำเป็นต้องใช้หน้าว่างและหน้าที่ถูกลบ SSD จึงจำเป็นต้องอ่านเนื้อหาของบล็อกทั้งหมดในหน่วยความจำภายนอก / หน่วยความจำภายนอกก่อนลบบล็อกเดิมปรับเปลี่ยนเนื้อหาแล้วเขียนเนื้อหาเหล่านั้นกลับเข้ามา บล็อก. มันไม่ง่ายเหมือน "เขียน" แต่ตอนนี้กลายเป็น "อ่าน - ลบ - เขียน" นี่เป็นการเปลี่ยนแปลงครั้งใหญ่และเพื่อให้เกิดขึ้นในขณะที่เรากำลังเขียนข้อมูลจำนวนมากอาจเป็นเวลาที่ไม่เหมาะสมที่สุดที่จะเกิดขึ้น สามารถหลีกเลี่ยงได้ทั้งหมดหากหน้า "ลบ" ถูกกู้คืนก่อนเวลาซึ่งเป็นสิ่งที่ TRIM ตั้งใจจะทำ ด้วย TRIM SSD จะกู้คืนหน้าที่ถูกลบของเราทันทีหลังจากการลบหรือในช่วงเวลาที่เหมาะสมอื่น ๆ ที่อัลกอริทึม TRIM เห็นว่าเหมาะสม ส่วนที่สำคัญก็คือเมื่อใช้ TRIM จะไม่เกิดขึ้นเมื่อเราอยู่ในระหว่างการเขียน!

หากปราศจาก TRIM ในที่สุดเราก็ไม่สามารถหลีกเลี่ยงสถานการณ์ข้างต้นเมื่อเราเติมข้อมูลลงในไดรฟ์ โชคดีที่ SSD รุ่นใหม่บางรุ่นก้าวล้ำกว่า TRIM และทำสิ่งเดียวกันกับ TRIM ในพื้นหลังในระดับฮาร์ดแวร์โดยไม่มีคำสั่ง ATA ที่จำเป็น (บางคนเรียกคอลเลกชันขยะนี้) แต่สำหรับพวกเราโชคไม่ดีที่ไม่มีเช่นกันสิ่งสำคัญคือต้องรู้ว่าการเขียนเลขศูนย์ลงในไดรฟ์ทั้งหมดนั้นไม่เพียงพอสำหรับการเรียกคืนประสิทธิภาพดั้งเดิม !!!!! การเขียนค่าศูนย์ทั้งหมดลงในไดรฟ์ไม่ได้ระบุตัวควบคุมว่าหน้าในแฟลชนั้นว่างสำหรับการเขียน วิธีเดียวที่จะทำเช่นนั้นในไดรฟ์ที่ไม่สนับสนุน TRIM คือการเรียกใช้คำสั่งปลอดภัยลบ ATA บนไดรฟ์ของคุณโดยใช้เครื่องมือเช่นHDDErase (ผ่าน Wayback Machine)

ฉันเชื่อว่ามี SSD รุ่นต้นบางตัวที่รองรับเฉพาะ TRIM เมื่อทำการลบพาร์ติชันหรือสิ่งต่าง ๆ เช่น "diskpart clean all" ของ Windows 7 และไม่ใช่การลบแต่ละไฟล์ นี่อาจเป็นเหตุผลว่าทำไมไดรฟ์รุ่นเก่าดูเหมือนจะได้ประสิทธิภาพกลับคืนมาเมื่อดำเนินการคำสั่งนั้น ดูเหมือนว่าจะเป็นเรื่องเล็กน้อยสำหรับฉัน ...

มากของความรู้ของฉันของ SSD และฮาร์ดแวร์ / แกดเจ็ตโดยทั่วไปมาจากanandtech.com ฉันคิดว่าเขามีบทความที่ยอดเยี่ยมอธิบายทั้งหมดนี้ แต่สำหรับชีวิตของฉันฉันไม่สามารถหามัน!



เหลือเพียงส่วนนี้ แต่ +1 สำหรับการกล่าวถึงการลบที่ปลอดภัยของ ATA และราคาต่อบล็อกเทียบกับราคาต่อหน้า
Christopher Galpin

1
แม้ว่าคำตอบส่วนใหญ่จะถูกต้องส่วนเกี่ยวกับการรวบรวมขยะไม่ถูกต้อง SSD ทั้งหมดมีการรวบรวมขยะ พวกเขาจะไม่ทำงานหากไม่มีมัน การรวบรวมขยะไม่ใช่ทางเลือกสำหรับ TRIM ในสถานะว่างเซลล์ NAND หมายถึง 1 และคุณสามารถเขียนลงใน 0 แต่เพื่อให้กลับเป็นศูนย์คุณต้องลบบล็อกทั้งหมดในครั้งเดียว ดังนั้นแทนที่จะเขียนทับข้อมูลที่มีอยู่การเปลี่ยนแปลงใด ๆ จะถูกเขียนไปยังบล็อกใหม่และข้อมูลเก่าถูกทำเครื่องหมายว่าไม่ถูกต้อง การลบข้อมูลที่ไม่ถูกต้องคือการรวบรวมขยะ TRIM แจ้งให้ SSD ทำเครื่องหมายข้อมูลว่าไม่ถูกต้องเมื่อคุณลบในระบบปฏิบัติการ
Mr Alpha

ไม่ใช่นายอัลฟ่า คำว่า "การเก็บขยะ" มาจากตัวควบคุมที่ดำเนินการตามขั้นตอนที่คุณอธิบายในเวลาที่เหมาะสมเมื่อเทียบกับการตอบสนองเมื่อพวกเขาจำเป็นต้องทำจริง ๆ
James

1
บางทีเราไม่ควรเรียกมันว่า "การ์เบจคอลเลคชัน" และแทนที่จะเรียกชื่อเล่นว่า "นักสะสม" รุ่นเก่า
James

17

เห็นได้ชัดว่าคำแนะนำมาตรฐานคือการเขียนแบบเต็มไดรฟ์ของศูนย์ทั้งหมด ฉันไม่ได้อย่างสิ้นเชิงแน่ใจว่าทำไมนี้จะช่วย (ไม่ต้องมากของการเขียนในที่สุดก็ฆ่า SSDs?) แต่มันก็ไม่ดูเหมือนจะรับรองโดยฟอรั่มการสนับสนุนผู้ผลิต SSD ที่สำคัญ

ดังนั้นใน Windows:

  • เริ่มต้นพร้อมรับคำสั่งด้วยสิทธิ์ผู้ดูแลระบบ
  • รันคำสั่ง diskpart

เมื่ออยู่ในยูทิลิตี้คุณจะเห็นDISKPART>พรอมต์และออกคำสั่งต่อไปนี้:

DISKPART> list disk
DISKPART> select disk x

เห็นได้ชัดว่าทำให้แน่ใจว่าคุณได้เลือก SSD DRIVE ที่ถูกต้องก่อนดำเนินการต่อ!

DISKPART> clean all
DISKPART> create partition primary
DISKPART> format quick fs=NTFS 

ความมหัศจรรย์ที่นี่คือclean allสิ่งที่เขียนเลขศูนย์ทั้งหมดลงในไดรฟ์ :

หากคุณระบุพารามิเตอร์ทั้งหมดทุกภาคส่วนสามารถเป็นศูนย์และข้อมูลทั้งหมดที่มีอยู่ในไดรฟ์สามารถลบได้

หลังจากทำสิ่งนี้ฉันสามารถยืนยันได้ว่าประสิทธิภาพของดิสก์เพิ่มขึ้นอย่างมาก


11
@Jeff เหตุผลที่การเขียนเลขศูนย์ทั้งหมดมีประโยชน์ได้รับการอธิบายเมื่อเร็ว ๆ นี้โดยDavid Spillett : ผู้ควบคุมบางคนคิดว่าบล็อก zeroed สามารถถูกทิ้งและกลับไปที่กลุ่มของพื้นที่ว่างเลียนแบบผลกระทบของคำสั่ง TRIM
sblair

1
2 คะแนน - อันดับแรกโดยปกติคำสั่งแฟลชลบจะลบบล็อกไปที่ 0xffs ทั้งหมดดังนั้นจึงควรเขียนที่ดีกว่าแทนที่จะเป็น 0 ฉันจะต้องตรวจสอบเอกสารข้อมูลเพื่อให้แน่ใจว่า ข้อที่สอง - ถ้าคุณพยายามหลอกตัวควบคุมเข้ากับ TRIM การขับมันจะเป็นการดีไหมถ้าจะเรียกใช้ยูทิลิตี้บางอย่างที่เพิ่งจะตัดทุกส่วนของไดรฟ์? โดยส่วนตัวแล้วฉันอาจจะทำทั้งสองอย่าง (0xffs และ TRIM) แต่ฉันอาจเป็นคนคลั่งไคล้ที่นี่
Dennis Munsie

2
@ เดนนิสแน่ใจว่าถ้ามียูทิลิตี้ดังกล่าว - โปรดชี้ให้ฉันหนึ่ง
Jeff Atwood

1
@Dennis: หากไดรฟ์ใช้บิต "กายภาพ" "บน" และสิ่งเหล่านี้แปลเป็นตรรกะบนบิตอื่น ๆ จากนั้น 0xff อาจเป็นรูปแบบที่คุณต้องการ พวกเขาอาจใช้ตรรกะแบบกลับด้านดังนั้นเอกสารหรือการสื่อสารกับผู้ผลิตเป็นวิธีเดียวที่จะแน่ใจก่อนดำเนินการต่อ ข้อเสนอแนะของฉันที่จะใช้ sdelete หรือคล้ายกันคือลองตัดทอนบล็อกที่ไม่ได้ใช้ในระบบไฟล์ที่ใช้งานได้ แน่นอนว่ามันจะส่งผลในการเขียนแบบไม่เล็มสำหรับบล็อกทั้งหมดในการแมปของ SSD ซึ่งเป็นการผสมผสานระหว่างการใช้งานและไม่ได้ใช้งาน
David Spillett

2
ฉันรู้สึกงุนงงนิดหน่อยที่เห็นได้ชัดว่าผู้คนจำนวนมากไม่รู้ว่าจะลบ SSD อย่างปลอดภัย ไม่จำเป็นต้องตัดแต่งทุก ๆ บล็อก เพียงเรียกใช้ยูทิลิตี้ที่ส่งคำสั่ง Secure Erase ATA ไปยัง SSD และปัญหาของคุณจะได้รับการแก้ไขไม่ว่า SSD นั้นรองรับ TRIM หรือไม่ก็ตาม
James

16

ฉันยังพบเครื่องมือSSD ชีวิต Pro มันมีข่าวร้ายสำหรับฉัน

SSDLife Pro - สุขภาพไดรฟ์ไม่ดี!

สำหรับวิธีการคำนวณนั้นจะใช้ตัวบ่งชี้ SMART SSD เห็นได้ชัดว่ามันพยายามทำนายตามข้อมูล SMART :

  • อายุการใช้งานของหน่วยความจำแฟลชซึ่งใช้ SSD นั้น จำกัด อยู่ที่ 10,000 เขียนต่อเซลล์
  • ไดรฟ์ส่วนใหญ่ยังแสดงข้อมูลเกี่ยวกับข้อมูลที่เขียนและ / หรืออ่านในพารามิเตอร์ SMART

นี่เป็นเรื่องยากเพราะมันจำเป็นต้องรู้เมื่อข้อมูลถูกเขียนเพื่อประเมิน แต่นี่คือข้อมูลพื้นฐาน:

01 อ่านอัตราความผิดพลาด 7
09 ชั่วโมงเปิดเครื่องนับ 7085
0C Power Cycle Count 318
B8 Initial Bad Block Count 15
บล็อกโปรแกรมนับความล้มเหลว C3 0
C4 ลบบล็อกความล้มเหลวนับ 0
C5 Read Failure Block Count 0
C6 อ่านภาค 5468243171
C7 ส่วนการเขียน 41640920876
คำสั่งในการอ่าน C8 100482453
คำสั่งการเขียน C9 417315851
CA Error Bits จาก Flash 345270
ภาคการอ่าน CB ที่มีข้อผิดพลาดบิตที่แก้ไขได้ 340001
CC Bad Block ธงเต็ม 0
ข้อมูลจำเพาะการนับ P / E สูงสุดของซีดี 5000
จำนวนลบขั้นต่ำ CE 3774
จำนวนการลบสูงสุดของ CF 65348
การลบค่าเฉลี่ย D0 นับ 4837
D1 ไดรฟ์ที่เหลืออยู่ชีวิต 4

จำนวนที่น่ากลัวนั่นก็คือRemaining Drive Lifeซึ่งก็คือ 4 .. เปอร์เซนต์!

และการคำนวณผลลัพธ์:

รุ่น: CRUCIAL_CT128M225
ขนาด: 128 GB
หมายเลขซีเรียล: xxxxxxxxxxxxxxxxxxx6
เฟิร์มแวร์: 2030
ขับเคลื่อนในเวลา: 318    
การสนับสนุน TRIM ในไดรฟ์ / OS: เปิดใช้งาน / เปิดใช้งาน
เวลาทำงาน: 9 เดือน 16 วัน 5 ชั่วโมง
การอ่านข้อมูลทั้งหมด: 2607.46 GB
เขียน: 19855.94 GB

สำหรับบันทึกแล้วไดรฟ์นี้ถูกซื้อมาตั้งแต่เดือนตุลาคม 2552 ดังนั้นมันจึงเกินกว่าหนึ่งปีครึ่ง


3
@ Jeff ในขณะที่หน่วยความจำแฟลชได้ดีขึ้นในขนาดที่กระบวนการที่จำนวนของโปรแกรม / ลบรอบได้ลดลง ค่า 0xCD แสดงให้เห็นว่าคุณมีไดรฟ์ที่ใช้ 34nm ที่มีค่า P / E ที่จัดอันดับ 5,000 รอบมากกว่า 10,000
sblair

1
@sblair รู้ดี; ฉันลองเครื่องมือบน OCZ Vertex 2 ใหม่และมันมีฟิลด์และค่า SMART ที่แตกต่างกันโดยสิ้นเชิง
Jeff Atwood

2
ข้อมูลนั้นดูออกไปเล็กน้อย - มันบอกว่าคุณเขียนข้อมูลได้เกือบ 10 เท่าตามที่คุณได้อ่าน เสียงนั้นไม่สูงใช่ไหม ฉันคาดว่าจะอ่านมากกว่านั้น คุณมีไฟล์เพจในไดรฟ์นั้นหรือไม่?
Dennis Munsie

1
จุดข้อมูลเพิ่มเติม - ฉันมี SSD ที่คล้ายกันติดตั้งใน MacBook ของภรรยาของฉัน ก่อนหน้านี้แล็ปท็อปของฉันซึ่งใช้เพื่อการพัฒนา ฉันเพิ่งดูสถิติของ SSD นั้นและในช่วง 8 เดือนหรือมากกว่านั้นในชีวิตของไดรฟ์นั้นมันมีพลังงานทั้งหมด 17 ชั่วโมงต่อชั่วโมงเมื่อเทียบกับ 7085 สำหรับคุณ (295 วัน) ฉันรู้ว่าเครื่องมีความยาวเกินกว่า 17 ชั่วโมง แต่ปรากฏว่าระบบปฏิบัติการกำลังปิดฮาร์ดไดรฟ์อย่างจริงจัง
Dennis Munsie

2
20TB เขียนไปยังไดรฟ์ 128GB!? คุณใช้ไดรฟ์นี้เพื่ออะไร
BlueRaja - Danny Pflughoeft

6

ฉันพบว่าการเขียนศูนย์ผ่านไดรฟ์ไม่ใช่วิธีที่ดีที่สุด ในขณะที่มันอาจช่วยในระยะสั้นฉันพบว่ามันไม่ได้กู้คืนไดรฟ์ของฉันให้เต็มประสิทธิภาพ (ฉันมี Intel-SSD ที่ไม่รองรับ TRIM) หลังจากการใช้งานค่อนข้างหนักเป็นปีฉันเริ่มใช้งานใน 1-2 วินาทีค้างเมื่อ SSD จะพยายามเขียนไปยังไฟล์ใด ๆแม้ว่าจะเป็นศูนย์ SSD ก็ตาม

สิ่งเดียวที่ฉันได้พบว่าอย่างเต็มที่เรียกคืนประสิทธิภาพการทำงานที่เป็นลบที่เชื่อถือได้hdparmโดยใช้ ฉันทำให้เป็นนิสัยในการลบ SSD ของฉันอย่างปลอดภัยทุก ๆ 6-12 เดือนเมื่อเริ่มพบอาการสะอึกเล็กน้อย ใครบางคนใน Macrumors ได้ทำแบบฝึกหัดเฉพาะสำหรับ Mac เกี่ยวกับวิธีการทำสำหรับอุปกรณ์ mac *

จากคำกล่าวอ้างทั้งหมดที่ฉันได้เห็นการลบที่ปลอดภัยส่งคำสั่งพิเศษไปยัง SSD ที่ทำให้มันตั้งค่าเซกเตอร์ทั้งหมดให้เป็นศูนย์ในระดับที่ต่ำกว่ามากจากนั้นใช้ddหรืออะไรซักอย่าง


หากไดรฟ์ไม่รองรับ TRIM การเดิมพันทั้งหมดจะปิด ..
Jeff Atwood

1
เจฟฟ์ไม่ถูกต้องการลบที่ปลอดภัยเป็นอิสระอย่างสมบูรณ์จาก TRIM นี่เป็นคำสั่ง ATA จริงและเป็นสิ่งเดียวที่คุณสามารถทำได้เพื่อกู้คืนไดรฟ์ที่ไม่ใช่ TRIM ที่สนับสนุนอย่างเต็มที่ เมื่อ SSD ได้รับคำสั่งนี้เซลล์ NAND ทั้งหมดจะถูกทำเครื่องหมายว่าว่างเปล่าและเรียกคืนประสิทธิภาพการเขียนต้นฉบับของไดรฟ์โดยไม่ต้องใช้ TRIM มีเครื่องมือมากมายที่สามารถทำได้รวมถึง hdparm ซึ่งอ้างอิงในคำตอบด้านบนป่านนี้
James

5

ใน Mac ตรวจสอบdigilloydTools DiskTester นอกจากนี้ยังมีจุดข้อมูลที่น่าสนใจเพื่อดูผลกระทบของการปรับสภาพใหม่ต่อประสิทธิภาพของไดรฟ์


ฉันเชื่อว่าสิ่งที่ทำคือเขียนไฟล์ที่มีขนาดใหญ่มากเป็นศูนย์ไปยัง SSD ของคุณ cat /dev/zero > /tmp/bigfileคุณสามารถบรรลุบันทึกผลโดยการทำ
Kendall Hopkins

4

ThinkPads มีเมนู BIOS ที่ซ่อนอยู่ (เปิดใช้งานด้วยhttp://www-307.ibm.com/pc/support/site.wss/MIGR-68369.html ) ที่รีเซ็ต SSD ของคุณ


มันอาจทำสิ่งเดียวกันกับเครื่องมือที่แนะนำอื่น ๆ เขียนเลขศูนย์ไปยังไดรฟ์ทั้งหมดซึ่งตีความโดยคอนโทรลเลอร์ว่าเป็นคำสั่งที่ชัดเจนของ TRIM ในทุกบล็อค
Jeff Atwood

อาจจะ? ฉันไม่รู้.
chx

2

ในการตรวจสอบอายุการใช้งานของ ssd บน (โซลิดสเตทไดร์ฟ) ssd คุณจะต้องติดตั้งแพ็คเกจ smartmontools มันมีสองโปรแกรมยูทิลิตี้ (smartctl และ smartd) เพื่อควบคุมและตรวจสอบระบบจัดเก็บข้อมูลโดยใช้การตรวจสอบตนเองการวิเคราะห์และการรายงานเทคโนโลยีระบบ (SMART) ที่สร้างไว้ในฮาร์ดดิสก์ ATA และ SCSI ที่ทันสมัยที่สุด

สำหรับการแจกแจงแบบ Ubuntu, Mint หรือ Debian

# apt-get install smartmontools

For Fedora, Centos, or Red Hat based distributions
# yum install smartmontools

Media_Wearout_Indicator คือสิ่งที่คุณกำลังมองหา สำหรับ 100 หมายความว่า ssd ของคุณมีชีวิต 100% จำนวนที่ต่ำกว่าหมายถึงชีวิตที่เหลือน้อยลง

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

ส่งออกจากแล็ปท็อปของฉัน

233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0

หากคุณต้องการดูรายละเอียดเพิ่มเติมและคุณสมบัติทั้งหมดจากไดรฟ์ของคุณคุณสามารถเรียกใช้

# smartctl -data -A /dev/sda

ที่มา: namhuy.net/1024/how-to-check-ssd-life-left.html


2

ตอนนี้มีคำตอบที่ดีกว่าสำหรับระบบ Linux เมื่อเทียบกับคำตอบ @LeakyCode:

sudo fstrim -v / boot

คำสั่ง "fstrim" จาก "util-linx" จะทำงานผ่านระบบไฟล์และออกคำสั่ง TRIM สำหรับพื้นที่ที่ไม่ได้ใช้ทั้งหมด ในการแจกจ่ายเช่น Ubuntu สิ่งนี้จะถูกปิดใช้งานโดยค่าเริ่มต้นยกเว้นรายการที่เลือกของไดรฟ์ "รู้จักปลอดภัย" จาก Intel และ Samsung แต่คำสั่งสามารถเรียกใช้ด้วยตนเองบนพาร์ติชันใด ๆ สำหรับไดรฟ์ใด ๆ

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