Ubuntu มีคำสั่ง TRIM สำหรับใช้กับ SSD หรือไม่


34

ไดรฟ์ SSD จำเป็นต้อง "ล้าง / รีเซ็ต" หลังจากไดรฟ์เต็มเพื่อรักษาประสิทธิภาพ สิ่งนี้ทำผ่านคำสั่ง TRIM สำหรับไดรฟ์ SSD ใหม่ Ubuntu สนับสนุนคำสั่ง TRIM (ผ่าน hdparm ฯลฯ ) สำหรับการล้าง / รีเซ็ตไดร์ฟเหล่านี้หรือไม่?


เป็นคำถามที่ดี แต่โปรดทราบว่าระดับที่ TRIM ปรับปรุงประสิทธิภาพนั้นแตกต่างกันไปในบรรดา SSD แต่บางรุ่นก็ไม่ได้สร้างความแตกต่างอย่างที่คุณคิด
— Nicholas Knight

1
ฉันคิดว่าประสิทธิภาพจะได้รับการกู้คืนเป็นค่าเริ่มต้นจากโรงงาน (ถ้าไม่ใกล้เคียง) ดูคำอธิบายได้ที่นี่ -> anandtech.com/show/2738/10
— ssanj

คำตอบ:


24

ดูเหมือนว่ามีการรองรับฟังก์ชั่น TRIM ในรุ่น 10.10 และใหม่กว่า:

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


ฉันคิดว่าคุณยังคงต้องใช้เครื่องมือที่ "ส่ง" คำสั่งตัดไปยัง SDD เป็นเรื่องที่ดีถ้าทำงานตามที่คุณระบุ :) บทความ Anandtech นี้ -> ( anandtech.com/show/2738/10 ) ระบุว่าเพื่อให้ TRIM ทำงานทั้งระบบปฏิบัติการและ SSD ต้องการการรองรับ TRIM ฉันเดาว่าคำถามของฉันเกี่ยวกับการรองรับ OS / Linux สำหรับ TRIM เมื่อใช้กับไดรฟ์ SSD ที่รับรู้ TRIM
— ssanj

3
คำสั่ง TRIM จำเป็นต้องรู้ว่าบล็อกใดที่จะทำให้ว่างดังนั้นมันอาจเป็นอันตรายในการออกโดยไม่ทราบว่าบล็อกใดในดิสก์ที่ไม่ได้ใช้ ใช่ทั้งระบบปฏิบัติการและดิสก์ต้องมีการรองรับการตัดแต่ง ใน Linux สิ่งนี้ถูกเพิ่มเข้ามาในเคอร์เนลเวอร์ชัน 2.6.33 ดังนั้นจะรวมอยู่ใน Maverick ทั้งไดรเวอร์ดิสก์ในระบบไฟล์ที่คุณใช้จำเป็นต้องรองรับการตัดแต่งเพื่อให้ทำงานได้อย่างถูกต้อง หากคุณใช้ ext4 เป็นระบบไฟล์ของคุณบน Maverick คุณน่าจะใช้ได้
— Jeremy Kerr

ฉันสงสัยว่ามันจะเป็นไปได้หรือไม่ที่ SSD ที่มีอยู่จะได้รับการ "ดัดแปลง TRIM" เพื่อทำความสะอาด cruft ที่มีอยู่ก่อนการประมวลผลที่สนับสนุน TRIM หรือจำเป็นต้องติดตั้งใหม่
— Kent Boogaart

20

คำตอบของ Jeremy นั้นไม่แม่นยำ AFAIK ทั้งหมด ฉันใช้เคอร์เนลที่เสถียรล่าสุดบน Lucid มาระยะหนึ่งแล้วและได้ติดตามสถานะของ TRIM ค่อนข้างดีเพราะฉันมี OCZ Agility เป็นดิสก์หลักของฉัน

นี่คือสิ่งที่ฉันรู้:

  • เคอร์เนลมีการรองรับ TRIM ตั้งแต่ 2.6.33 (ไม่ฝักใฝ่ฝ่ายใดคือ 2.6.35)

  • Ext4 มีการสนับสนุน TRIM แต่เมื่อjournalingถูกปิด

  • วิธีการทำงานของ TRIM ในเคอร์เนลนั้นพื้นฐานและช้ามาก ดิสก์ที่ตามข้อกำหนดสามารถยอมรับได้หลายช่วง แต่เคอร์เนลสามารถทำได้ทีละช่วงเท่านั้น นี่มาจากสิ่งที่ฉันอ่านเมื่อเดือนที่แล้ว ฉันหวังว่าฉันมีแหล่งที่มาเนื่องจากอาจไม่เป็นจริงหรืออาจใช้ไม่ได้อีกต่อไป

การจดบันทึกเป็นสิ่งที่ฆ่าเพื่อฉัน ข้อมูลเสียหายเป็น PITA

อย่างไรก็ตามรุ่นใหม่กว่าของ hdparm (v9.25 - ไม่ฝักใฝ่ฝ่ายใดอยู่ที่ v9.27) มาพร้อมกับสคริปต์ที่เรียกว่าwiper.shซึ่งทำการวิเคราะห์อย่างรวดเร็วของไดรฟ์แล้วจดจ้องพื้นที่ว่างทั้งหมด แทนที่จะเสียฟีเจอร์ฉันคิดว่ามันง่ายกว่า cron wiper.shในการรันสัปดาห์ละครั้ง (หรือวันละครั้ง / เดือน / อะไรก็ตาม) การลดลงของ SSD สำหรับไดรฟ์ระบบปฏิบัติการนั้นไม่ได้เกิดขึ้นเร็วขนาดนั้นเว้นแต่คุณจะทำสิ่งต่าง ๆ ขาดหายไป คุณไม่จำเป็นต้องปรับตามเวลาจริง

นอกจากนี้ยังมีส่วนหน้า GUI ที่เรียกว่าDiskTRIMซึ่งดูเหมือนจะไม่อยู่ใน repos ผู้ใช้ที่มีประสบการณ์น้อยอาจพบว่าการใช้งานนี้ง่ายกว่าการตั้งค่างาน cron

มี PPAs สำหรับ hdparm และ disktrim และทั้งหมดสามารถเรียกใช้บน Lucid (และเพิ่มเติมจากด้านหลัง) โดยไม่จำเป็นต้องใช้ 2.6.33+ เคอร์เนล


คุณสามารถลิงค์ไปยัง PPAs เหล่านั้นได้ไหม?
— Jorge Castro

ดังนั้นการเปิดใช้งานdiscardตัวเลือกเมานท์สำหรับ ext4 จะเป็นการปิดการใช้งาน journalling หรือไม่? ฉันเพิ่งค้นหาการอ้างอิง แต่ไม่สามารถหาได้นอกเหนือจากคำตอบนี้ - คุณสามารถให้แหล่งข้อมูลได้หรือไม่
— Hamish Downer

2
ใน Ubuntu 12.04 wiper.sh ถูกแทนที่ด้วย fstrim
— tomodachi

1
@Oli: ฉันได้อ่านเพิ่มขึ้นและตอนนี้ฉันค่อนข้างมั่นใจว่าตัวเลือกการยกเลิกไม่ได้ปิดการใช้งานวารสาร เดิมทีตัวเลือกการยกเลิกใช้งานได้กับวารสารเท่านั้น (ฉันพบว่าแพทช์นี้อนุญาตให้ทิ้งโดยไม่มีวารสาร) หน้าเคอร์เนล ext4เอกสารตัวเลือกทิ้ง แต่ไม่ได้พูดถึงวารสารเข้ากันไม่ได้
— Hamish Downer

8

Linux มีการรองรับ TRIM อัตโนมัติพร้อมระบบไฟล์ ETX4 ตั้งแต่เคอร์เนล 2.6.33

Ubuntu รุ่นแรกที่มีการสนับสนุน TRIM อัตโนมัติคือ 10.10 (Maveric) แต่จะต้องเปิดใช้งานใน fstab (ดังอธิบายที่นี่ )


4

โดยทั่วไปใช่เพราะมีหลายวิธีที่จะได้รับเมล็ดใหม่ หากเราชี้แจงคำถามของคุณให้ชัดเจนว่า "10.04 LTS ได้รับการสนับสนุนนอกกรอบคำสั่งหรือไม่" ดังนั้นคำตอบคือไม่ อย่างไรก็ตามทั้งสองไม่ฝักใฝ่ฝ่ายใดและเมล็ดของ Natty (-generic, -generic-pae, -Server และรสชาติ -virtual) ได้รับการ backported 10.04 LTS และมีอยู่จาก $ ปล่อยอัปเดตในที่เก็บ Ubuntu เช่นlinux-image-generic-lts-backport-maverickเป็นย้ายกลับไม่ฝักใฝ่ฝ่ายใดสุวิมล .


2

ฉันใช้ 11.04 และดูเหมือนว่า TRIM จะทำงานได้ตามกรอบ

ฉันทดสอบโดยใช้คำแนะนำที่นี่เพื่อสร้างไฟล์ลบมันและดูว่าภาคส่วนต่าง ๆ เป็นศูนย์ / ลบออกหรือไม่

ฉันพยายามเปิดใช้งาน TRIM โดยใช้คำแนะนำที่นี่แต่ไม่มีลูกเต๋า

ฉันวิ่ง wiper.sh ฉันเข้าใจ

/sbin/wiper.sh --verbose --commit / dev / sda1
wiper.sh: ยูทิลิตี้ Linux SATA SSD TRIM เวอร์ชัน 3.3 โดย Mark Lord
rootdev = / dev / sda1
fsmode2: fsmode = อ่าน - เขียน
/: fstype = ext4
freesize = 13785252 KB, สงวน = 137852 KB
การเตรียมสำหรับการตัดแต่งออนไลน์ของพื้นที่ว่างบน / dev / sda1 (ติดตั้งแบบอ่าน - เขียน ext4 ที่ /)

การดำเนินการนี้สามารถทำลายข้อมูลของคุณได้อย่างเงียบ ๆ คุณแน่ใจ (y / N)? Y
สร้างไฟล์ชั่วคราว (13647400 KB) ..
กำลังซิงค์ดิสก์ ..
การเริ่มต้นใช้งาน TRIM ..
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / SDA:
ตัดแต่งเซกเตอร์ 27294800 จาก 462 ช่วง
ที่ประสบความสำเร็จ
ลบไฟล์ชั่วคราว ..
กำลังซิงค์ดิสก์ ..
เสร็จสิ้น

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

อยากรู้อยากเห็นถ้าใครได้รับมันไปทำงาน


หากคุณเพิ่มตัวเลือกทิ้งลงใน fstab และมันยังไม่ทำงานอาจเป็นจุดบกพร่องในอัลฟา คุณควรยื่นรายงานข้อผิดพลาด
— Uli

ฉันเพิ่งทดสอบสิ่งนี้ใน natty (ทำตามคำแนะนำเหล่านี้: askubuntu.com/questions/18903/how-to-enable-trim ) และทำงานได้ดียิ่งขึ้นใน natty TRIM เกือบจะทันที
— Uli

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