Berita ini kemungkinan akan menjadi kejutan bagi banyak orang, yang berasumsi bahwa Ubuntu dan distribusi Linux lainnya sudah menggunakan TRIM. TRIM mencegah SSD melambat seiring waktu dan merupakan bagian penting dari pemeliharaan SSD.
Mengapa TRIM itu Penting
Kami telah membahas mengapa TRIM penting sebelumnya. Saat Anda menghapus file pada hard disk lama yang magnetis, komputer hanya menandai file itu sebagai dihapus. Data file menempel di hard drive - itu sebabnya file yang dihapus dapat dipulihkan. Komputer pada akhirnya akan menimpa file yang dihapus ketika itu menimpa sektor mereka dengan data baru.
Solid-state drives (SSD) bekerja secara berbeda. Setiap kali Anda menulis file ke SSD, komputer terlebih dahulu harus menghapus data apa pun di sektor yang digunakan untuk menulis data. Tidak dapat hanya "menimpa" sektor dalam satu operasi - pertama-tama harus menghapusnya, lalu menulis ke sektor kosong.
Ini berarti bahwa SSD akan melambat seiring waktu. Menulis ke sektor SSD akan menjadi yang tercepat untuk pertama kalinya. Setelah Anda menghapus beberapa file dan mencoba menulis lagi, itu akan memakan waktu lebih lama. Ini adalah bagian besar dari alasan Nexus 7 asli Google melambat begitu banyak dari waktu ke waktu. Google memperbaikinya dengan menerapkan TRIM di Android 4.3. (Android juga menggunakan kernel Linux.)
Dengan TRIM diaktifkan, sistem operasi memberi tahu SSD setiap kali ia menghapus file. Drive kemudian dapat menghapus sektor yang berisi konten file, sehingga menulis ke sektor akan cepat di masa mendatang.
Dengan kata lain, jika Anda tidak menggunakan TRIM, SSD Anda akan melambat seiring waktu. Itu sebabnya sistem operasi modern, termasuk Windows 7+, Mac OS X 10.6.8+, dan Android 4.3+ menggunakan TRIM. TRIM diimplementasikan di Linux pada Desember 2008, tetapi Ubuntu tidak menggunakannya secara default.
Mengapa Ubuntu Tidak TRIM Secara Default?
Alasan sebenarnya Ubuntu tidak TRIM SSD secara default adalah karena implementasi TRIM oleh kernel Linux lambat dan menghasilkan kinerja yang buruk dalam penggunaan normal.
Pada Windows 7 dan 8, Windows mengirim perintah TRIM setiap kali ia menghapus file, memberi tahu drive untuk segera menghapus bit-bit file. Linux mendukung ini ketika sistem file di-mount dengan opsi "discard". Namun, Ubuntu - dan distribusi lainnya - jangan lakukan ini secara default karena alasan kinerja.
OpenSUSE berisi beberapa informasi mendetail dari pengembang yang lebih akrab dengan kernel Linux daripada kami. Ini sedikit tertanggal, tetapi kemungkinan masih berlaku dalam hal kinerja:
“The kernel implementation of realtime trim in 11.2, 11.3, and 11.4 is not optimized. The spec. calls for trim supporting a vectorized list of trim ranges, but as of kernel 3.0 trim is only invoked by the kernel with a single discard / trim range and with current mid 2011 SSDs this has proven to cause a performance degradation instead of a performance increase. There are few reasons to use the kernels realtime discard support with pre-3.1 kernels. It is not known when the kernels discard functionality will be optimized to work beneficially with current generation SSDs.” [Source]
Dengan kata lain, kernel Linux menangani perintah TRIM real-time dengan cara yang lambat dan tidak dioptimalkan. Mengaktifkan TRIM serupa dengan bagaimana Windows melakukannya - yaitu, menggunakan opsi "buang" - hasil dalam sistem benar-benar menjadi lebih lambat daripada jika TRIM tidak digunakan sama sekali. Ubuntu dan distribusi Linux lainnya tidak mengaktifkan "discard" secara default untuk sistem file Anda, dan Anda tidak seharusnya juga.
Ada Jalan Lain
Karena "membuang" operasi kernel Linux secara real-time, operasi TRIM tidak berjalan dengan baik, sebagian besar distribusi Linux - termasuk Ubuntu - tidak menggunakan TRIM secara otomatis. Android juga tidak menggunakan TRIM hingga Android 4.3.
Tetapi ada cara lain untuk menggunakan TRIM. Daripada hanya mengeluarkan perintah TRIM setiap kali file dihapus, fitur FITRIM dapat digunakan. Ini terjadi melalui perintah fstrim. Pada dasarnya, perintah fstrim menganalisis sistem file dan memberi tahu drive yang bloknya tidak lagi diperlukan, sehingga drive dapat membuangnya. Ini mengubah TRIM dari operasi real-time menjadi tugas yang dijadwalkan. Dengan kata lain, fstrim dapat melakukan TRIM sebagai tugas cron. Tidak ada alasan untuk tidak melakukan ini. Itu tidak akan memperlambat apa pun; itu hanyalah tugas pembersihan rumah yang harus dilakukan oleh sistem dengan jadwal.
Bahkan, ini adalah pendekatan yang Google ambil dengan Android 4.3. Android menjalankan tugas fstrim sesekali ke TRIM sistem file, memperbaiki masalah yang memperlambat semua Nexus 7 asli.
Ubuntu juga melihat mengaktifkan TRIM secara otomatis dengan memiliki sistem secara teratur menjalankan fstrim. Ini diharapkan akan menjadi bagian dari Ubuntu 14.04 sehingga pengguna Ubuntu tidak akan dipaksa untuk menghadapi penurunan kinerja SSD atau menjalankan fstrim sendiri.
Cara Mengaktifkan TRIM
Kami tidak menyarankan pemasangan sistem file Anda dengan operasi "buang", karena ini kemungkinan akan menghasilkan kinerja yang lebih lambat dalam penggunaan normal. Namun, Anda dapat menggunakan TRIM sendiri dengan sesekali menjalankan perintah fstrim atau membuat cronjob Anda sendiri yang berjalan sesuai jadwal.
Untuk TRIM SSD Anda di Ubuntu, cukup buka terminal dan jalankan perintah berikut:
sudo fstrim -v /
Jika Anda ingin menjalankan TRIM secara teratur, Anda cukup membuat cronjob yang menjalankan perintah fstrim untuk Anda.Berikut cara membuat tugas cron barebone yang akan melakukan ini secara otomatis.
Pertama, jalankan perintah berikut untuk membuka editor teks nano dengan izin root:
sudo nano /etc/cron.daily/fstrim
Ketik kode berikut ke dalam file:
#!/bin/sh
fstrim /
Terakhir, jalankan perintah berikut untuk membuat skrip dieksekusi:
sudo chmod +x /etc/cron.daily/fstrim
Perhatikan bahwa TRIM hanya didukung pada sistem file modern, jadi Anda memerlukan sesuatu seperti ext4 dan bukan ext3 atau ext2. Jika Anda tidak tahu sistem file apa yang Anda gunakan, jangan khawatir - ext4 dipilih secara default.
Banyak dari saran ini juga berlaku untuk distribusi Linux lainnya. Sementara Linux memang mengimplementasikan dukungan TRIM di kernel sejak lama, dukungan TRIM nampaknya tidak pernah diaktifkan secara default untuk pengguna tipikal dalam distribusi Linux.