การเปิดใช้งาน TRIM ของ SSD บน Ubuntu

TRIM คืออะไร

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

ทำไมต้องลบมันออกล่ะ

การ ทำงานของ SSD นั้นเวลาอ่านจะจะมีความเร็วเท่าเดิมเสมอ แต่เวลาเขียนนั้นจะช้าลงหากข้อมูลใน Disk มีมากขึ้นเรื่อยๆ เนื่องจากตัว Disk ต้องหาที่ๆไม่ใช้แล้ว จากนั้นจึงต้องเขียนลงไป ในกรณีที่ยังไม่ลบข้อมูลออกอย่างสมบูรณ์ ก็ยังถือว่าที่นั้นยังใช้อยู่ ทำให้ต้องอ่านข้อมูลทั้งหมดมา แล้วหาว่าตรงไหนที่เราเขียนได้แล้วบ้าง ดังนั้นหากไม่เปิด TRIM การเขียนข้อมูลจะทำได้ช้าลง

แล้วข้อเสียของ TRIM ล่ะ

จาก Patrick’s WebLog ได้อ้างว่าจากการทดสอบของเขา การเปิด TRIM ไม่ค่อยช่วยเลยในการทดสอบของเขา การเปิด TRIM ช่วยให้เขียนเร็วขึ้นเพียงเล็กน้อยเท่านั้น แต่การใช้เวลาในการลบ File อย่างสมบูรณ์นั้นมีมากกว่ามาก แต่ในความคิดผมคือปกติ TRIM น่าจะทำงานเบื้องหลัง ดังนั้นเราจึงไม่เห็นว่า TRIM ทำงานอยู่ตลอด และผมไม่แน่ใจว่าการทดสอบนี้ได้ทำ Disk ให้เต็มก่อนหรือมีข้อมูลด้านในเยอะๆก่อนรึเปล่านะครับ

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

จะรู้ได้อย่างไรว่า SSD สามารถใช้งาน TRIM ได้หรือไม่

ทำได้โดยการเปิด Terminal แล้วสั่ง

sudo hdparm -I /dev/sda | grep "TRIM supported"

หากมีบรรทัดใหม่ขึ้นมาคือ SSD ตัวนั้นสามารถใช้งาน TRIM ได้

วิธีการเปิดใช้งาน TRIM

ทำได้ 2 วิธี

1. เพิ่ม Option ไปใน fstab ตรงๆ

จากในเว็บนั้นเค้าบอกว่า วิธีนี้ไม่ควรทำ (เพราะเหตุผลเรื่องความเร็วการเขียนที่ได้ ไม่ได้ดีขนาดที่ยอมรับความเร็วตอนลบ file ได้)

วิธีคือ สั่ง

gksu gedit /etc/fstab

แล้วแก้ส่วนที่ mount root เพิ่ม discard, ส่วนมากเพิ่มหน้าคำว่า error=remount-ro

<file system> <mount point> <type> <options> <dump> <pass> 
# / was on /dev/sdb1 during installation 
UUID=1cd2fc4f-7d99-4c7a-8ea7-6f9a2d5e5960 / ext4 discard,errors=remount-ro 0 1

แล้ว Save จากนั้น retstart เครื่อง

2.สั่งทำงานเป็น cronjon

แบบนี้คือสั่งให้ทำงาน trim ตามกำหนดเวลา ทำได้โดย

gksu gedit /etc/cron.daily/trim

ใส่ Code ตามนี้ลงไป

#!/bin/sh LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

ก่อน Save ให้ลองทดสอบก่อนว่าระบบมี command line สำหรับสั่ง trim ไหมโดยพิมพ์ลง Terminal

sudo fstrim -v /

ที่ถูกต้องจะได้ประมาณนี้

andrei@ubuntu-desktop:~$ sudo fstrim -v /
/: 8158715904 bytes were trimmed

หากถูกต้องสมบูรณ์ให้ Save file แล้วสั่งคำสั่งนี้ใน Terminal

sudo chmod +x /etc/cron.daily/trim

ก็เป็นอันจบกระบวนการครับ

หากทำกับ Disk ที่มีการ encryption ไว้ต้อทำตามขั้นตอนเพิ่มด้วย ดูจากลิงค์ที่มาเองเลยครับ

ตัดมาจาก http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html

Loading Facebook Comments ...