TRIM otomatis vs. TRIM manual

13

Saat ini saya mencoba mencari tahu cara memotong dengan TP baru saya dan bertanya-tanya tentang perbedaan pemangkasan manual / online.

Ini pengaturan saya:

ThinkPad T430s dengan SSD Samsung 830, 128GB dan Xubuntu 12.10, berikut adalah beberapa keluaran untuk memeriksa apakah trim akan berfungsi pada sistem saya (dapatkan dari sini: http://wiki.ubuntuusers.de/SSD/TRIM )

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

Pertama, saya mencoba pemangkasan online: Cara mengaktifkan TRIM?

fstab saya dengan discard dimasukkan:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Saya mencoba untuk menguji apakah itu berhasil (tapi saya tidak mendapatkan angka nol ketika saya mencobanya dengan / dev / sda), tetapi menemukan bahwa metode ini hanya mungkin dengan SSD tipe 2 dan saya tampaknya memiliki tipe 3. Jadi saya tidak tahu apakah itu berfungsi atau tidak.

Ubuntuwiki (tautan pertama) merekomendasikan pemangkasan manual, jadi saya menyiapkan cronjob harian alih-alih membuang:

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

artikel wiki menyarankan mingguan atau harian. Sekarang untuk pertanyaan saya:

Seberapa sering mengeksekusi trim otomatis? Seberapa sering direkomendasikan? Pemangkasan online vs. manual?

Terima kasih untuk bantuannya

Eike Cochu
sumber

Jawaban:

4

Perbedaan antara trim otomatis dan manual adalah trim otomatis (menggunakan discardopsi mount) memotong blok yang dibebaskan pada sinkronisasi setelah file apa pun dihapus, sedangkan trim manual (menggunakan fstrim) memotong semua ruang kosong sekaligus.

Pengujian

Salah satu cara Anda dapat menguji apakah trim otomatis berfungsi adalah dengan membuat dan menghapus file besar:

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

Jika pembuangan otomatis berfungsi, pemangkasan lagi secara manual tidak akan memangkas banyak blok, karena seharusnya sudah dipangkas. Jalankan sudo discard -vpada sistem file Anda dan lihat berapa banyak blok yang dipangkas.

Rekomendasi

Adapun yang direkomendasikan: Dalam pengalaman saya, trim otomatis membunuh kinerja. Namun, ini mungkin tergantung pada perangkat keras; mungkin baik-baik saja di drive Anda.

Jika Anda menggunakan trim manual, seperti seberapa sering, pikirkan tentang tingkat di mana Anda menulis data dalam beban kerja Anda, dibandingkan dengan jumlah ruang kosong pada SSD Anda. Anda ingin memotong cukup sering, sebelum disk Anda diisi dengan data yang dihapus. Jika SSD Anda sebagian besar ruang kosong atau beban kerja disk Anda ringan, pemangkasan sesekali (mingguan atau bahkan lebih lama) sudah cukup. Jika SSD Anda sebagian besar penuh atau Anda mis. Sering mengedit file video, Anda harus memotongnya lebih sering.

Siput mekanik
sumber
2

Saya bukan insinyur penyimpanan dan saya memiliki kekhawatiran terkait saya sendiri , tetapi saya dapat membuat saran yang mungkin berguna tentang penjadwalan. Saya cukup yakin TRIM tidak menyebabkan keausan yang mengkhawatirkan pada SSD. Hanya perlu perawatan yang harus Anda lakukan pada akhirnya, sebelum dapat mulai mendaur ulang blok. Jadwal terbaik untuk TRIMming batch akan tergantung pada penggunaan; fungsi frekuensi menulis dan ruang kosong, saya harus berpikir. Itu dalam pikiran, saya akan mencabut pekerjaan cron dan fstrim -vdengan tangan selama beberapa hari.

Trik yang saya pikirkan adalah membuat jadwal di mana batch TRIM menyiapkan SSD untuk ditulis sebelum blok yang digunakan harus didaur ulang untuk memenuhi operasi penulisan normal, sehingga mengganggu kinerja. Tunggu 24 jam dan fstrim. Jika ia mengklaim telah memangkas blok yang jauh lebih sedikit daripada ruang kosong, Anda mungkin lebih jarang melakukan TRIMming batch daripada itu.

bendungan
sumber
2

Saya memangkas SSD saya di setiap boot. Saya membuat file sh yang disebut 20 detik setelah startup. Saya memilih untuk menampilkan output dari fstrim dalam notifikasi sistem alih-alih file log.

pertama buat trim.shfile di ~/bindirektori Anda

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

Sekarang kita perlu memberikan hak pengguna untuk menjalankan fstrim sehingga kita tidak perlu memasukkan kata sandi. Buka file sudoers Anda dengan visudo dan tambahkan baris berikut:

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

Jika Anda memasukkan home/yourusername/binfolder Anda ke Anda, $PATHAnda juga dapat memotong secara manual di terminal dengan perintah 'trim' tanpa perlu kata sandi.

Sekarang Anda dapat menambahkan skrip Anda ke aplikasi start up dan menentukan penundaan. Anda harus keluar / masuk lagi agar entri sudoers baru Anda dimuat.

kasper Taeymans
sumber