Apakah TRIM diaktifkan pada instalasi Ubuntu 18.04 saya?

38

Saya tahu bahwa TRIM mingguan diaktifkan secara default dari jam 14.10 dan seterusnya. Sumber: Bagaimana mengaktifkan TRIM? Tetapi menjalankan sudo nano /etc/cron.weekly/fstrimmengembalikan file kosong. Juga tail -n1 /etc/cron.weekly/fstrimmengatakan bahwa file ini tidak ada.

Menjalankan lsblk -Dmengembalikan nilai bukan nol untuk DISC-GRANdan DISC-MAX karenanya TRIM didukung pada SSD saya. Apakah TRIM mingguan benar-benar diaktifkan untuk SSD saya atau tidak?

Saya menggunakan SSD Kingston

mumum
sumber

Jawaban:

59

Trim (fstrim / discard) diaktifkan untuk berjalan mingguan secara default di 18.04.
Ini diatur untuk dijalankan untuk semua sistem file yang terpasang pada perangkat yang mendukung operasi discard.

Ini adalah systemdlayanan yang dikelola melalui systemctl, bukan CRON.

Lihat status fstrim.timer :

$ systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2018-07-05 05:45:11 BST; 4h 42min ago
  Trigger: Mon 2018-07-09 00:00:00 BST; 3 days left
     Docs: man:fstrim

Start / Stop / Restart fstrim.timer :
(tidak mengubah status startup)

$ sudo systemctl [start/stop/restart] fstrim.timer

Aktifkan / Nonaktifkan fstrim.timer :
(tambahkan ke / hapus dari startup, tidak mengubah status aktif saat ini)

$ sudo systemctl [enable/disable] fstrim.timer

Lihat konfigurasi fstrim.timer :

$ systemctl cat fstrim.timer
# /lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target

Lihat konfigurasi fstrim.service :

$ systemctl cat fstrim.service
# /lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av

Catatan : ExecStart = / sbin / fstrim -av
Tempat:
-a , Pangkas semua sistem file yang terpasang pada perangkat yang mendukung operasi discard.
-v , eksekusi Verbose. Keluarkan jumlah byte yang diteruskan dari sistem file ke tumpukan blok ke perangkat untuk kemungkinan dibuang.

Lihat entri jurnal systemd terkait :

$ journalctl -u fstrim.timer
Jul 04 14:18:41 user-laptop systemd[1]: Started Discard unused blocks once a week.
Jul 04 21:59:26 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
etc...

$ journalctl -u fstrim.service
Jun 25 10:59:44 user-laptop systemd[1]: Starting Discard unused blocks...
Jun 25 10:59:48 user-laptop fstrim[955]: /: 92.5 GiB (99335237632 bytes) trimmed
Jun 25 10:59:48 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
Jul 02 04:27:41 user-laptop systemd[1]: Starting Discard unused blocks...
Jul 02 04:27:46 user-laptop fstrim[1032]: /: 92.3 GiB (99150807040 bytes) trimmed
Jul 02 04:27:46 user-laptop systemd[1]: Started Discard unused blocks.
etc...
Broadsworde
sumber
2
Untuk referensi, kapan dikontrol oleh /lib/systemd/system/fstrim.timer( OnCalendar=weekly) dan apa dengan /lib/systemd/system/fstrim.service( ExecStart=/sbin/fstrim -av).
Moilleadóir
1
Posting yang bagus! Saya sarankan Anda mengubah perintah "cat" dengan perintah systemctl khusus: cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer. Secara umum, perintah itu menunjukkan versi layanan yang berlaku. Itu mungkin yang di bawah / lib / systemd, tetapi mungkin juga versi yang dimodifikasi di bawah / etc / systemd.
vanadium
Saat aktif, apakah itu berfungsi untuk semua driver? Sebagai contoh, saya telah menginstal ubuntu dalam satu SSD tetapi SSD lain dipasang sebagai partisi ext4. Apakah ini akan memotong keduanya secara otomatis? (status mengatakan itu aktif)
Eduardo
bagaimana cara mengaktifkannya sesuai permintaan? (misalnya sekarang, saya ingin pergi makan siang)
pisau cukur
Anda dapat secara manual memulai / menghentikan / memulai kembali layanan systemd dengan: $ sudo systemctl [start / stop / restart] [service name] .service
Broadsworde
2

Sunting: Silakan baca komentar, jawaban ini mencampur dua mekanisme!

Jawaban lama

ada poin penting yang perlu ditambahkan ke jawaban @Broadsworde untuk membuatnya lengkap.

Sementara di laptop saya semua timer dan layanan diaktifkan, entri log fstrim hilang (hanya: starting… stopping… reboot… starting…dll.).

Langkah hilang

Anda mungkin perlu menandai sistem file sebagai yang dapat dibuang . Jika sistem file tidak ditandai dapat dibuang, trim akan melewatinya [1].

Untuk menandai sistem file sebagai discardable, Anda memiliki dua opsi:

1. Opsi: tune2fs

sudo tune2fs -o discard /dev/mapper/ubuntu--vg-root

Ini akan menetapkan opsi buangan sebagai standar untuk perangkat ext4 saya. Jika Anda tidak menggunakan enkripsi, coba /dev/sdasaja.

2. Opsi: /etc/fstab

Pastikan untuk menambahkan atau menambahkan opsi discardke opsi pemasangan yang ada. Contohnya seperti ini:

/dev/mapper/ubuntu--vg-root / ext4 discard,relatime,errors=remount-ro 0 1

Hanya setelah ini layanan pengatur waktu akan benar - benar melakukan sesuatu.

Catatan kaki

  • [1] sebenarnya, perangkat perlu mendukung TRIMoperasi. Tetapi di linux, ini adalah flag sistem file. Namun, perangkat yang menjalankan sistem file perlu mendukung TRIMoperasi. Untuk melihat apakah perangkat Anda mendukungnya, gunakan: sudo hdparm -I /dev/sda | grep -i TRIM.
Ben
sumber
Dalam instalasi saya (awalnya 18,10; kemudian upgrade ke 19,04) filesystem tidak memiliki membuang pilihan diaktifkan. Saya hanya menggunakan SSD di sistem saya; dan tidak pernah memiliki HD mekanis. Saya mengaktifkannya dengan tune2fs . Adakah ide atau penjelasan mengapa sistem tidak mengaktifkannya secara default?
FedonKadifeli
1
Saya pikir ini tidak benar. Opsi buang memotong blok ketika file dihapus dari sistem file. Layanan systemd memotong blok yang tidak digunakan secara berkala pada sistem file. Ini adalah hal yang berbeda. Opsi buang dapat berdampak negatif pada kinerja pada beberapa sistem, sehingga yang berkala bisa dibilang lebih baik.
xioxox
1
@xoxox benar. Baru-baru ini mount's halaman man menyatakan bahwa «Masalah fungsi membuang sering perintah untuk membiarkan ruang reclaim perangkat blok dibebaskan oleh filesystem. [...] mungkin memiliki dampak kinerja yang signifikan . ( Perintah fstrim juga tersedia untuk memulai trim batch dari userspace.) »
Fabio A.
Terima kasih, saya mengedit jawabannya secara otomatis. Tolong jangan terus-menerus memilih jawaban ini: Saya ingin menyimpannya karena komentar Anda sangat berharga!
Ben