TRIM è abilitato sulla mia installazione di Ubuntu 18.04?


38

So che il TRIM settimanale è abilitato di default dal 14.10 in poi. Fonte: come abilitare TRIM? Ma l'esecuzione sudo nano /etc/cron.weekly/fstrimrestituisce un file vuoto. tail -n1 /etc/cron.weekly/fstrimDice anche che questo file non esiste.

In esecuzione lsblk -Drestituisce valori diversi da zero per DISC-GRANe DISC-MAX quindi TRIM è supportato sul mio SSD. Il TRIM settimanale è effettivamente abilitato per il mio SSD o no?

Sto usando un SSD Kingston

Risposte:


59

Trim (fstrim / discard) è abilitato per l'esecuzione settimanale per impostazione predefinita in 18.04.
È impostato per funzionare con tutti i filesystem montati su dispositivi che supportano l'operazione di eliminazione.

È un systemdservizio gestito tramite systemctl, non CRON.

Visualizza lo stato di 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 :
(non cambia lo stato di avvio)

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

Abilita / Disabilita fstrim.timer :
(aggiungi / rimuovi all'avvio, non cambia lo stato attivo corrente)

$ sudo systemctl [enable/disable] fstrim.timer

Visualizza la configurazione di 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

Visualizza la configurazione di fstrim.service :

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

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

Nota : ExecStart = / sbin / fstrim -av
Dove:
-a , Taglia tutti i filesystem montati su dispositivi che supportano l'operazione di eliminazione .
-v , esecuzione dettagliata. Emette il numero di byte passati dal filesystem dallo stack dei blocchi al dispositivo per un potenziale scarto.

Visualizza le voci di diario di systemd correlate :

$ 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...

2
Per riferimento, quando è controllato da /lib/systemd/system/fstrim.timer( OnCalendar=weekly) e cosa da /lib/systemd/system/fstrim.service( ExecStart=/sbin/fstrim -av).
Moilleadóir,

1
Bel post! Ti suggerisco di cambiare i comandi "cat" con i comandi systemctl dedicati: cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer. In generale, quel comando mostra la versione del servizio che è in vigore. Potrebbe essere quello in / lib / systemd, ma potrebbe anche essere una versione modificata in / etc / systemd.
vanadio,

Quando è attivo, lo fa per tutti i driver? Ad esempio, ho Ubuntu installato in un SSD ma ho un altro SSD montato come partizione ext4. Li taglierà entrambi automaticamente? (lo stato dice che è attivo)
Eduardo

come attivarlo su richiesta? (ad esempio ora, voglio andare a pranzo)
rasoio l'

È possibile avviare / arrestare / riavviare manualmente qualsiasi servizio systemd con: $ sudo systemctl [avvio / arresto / riavvio] [nome servizio] .service
Broadsworde

2

Modifica: si prega di leggere i commenti, questa risposta mescola due meccanismi!

Vecchia risposta

c'è un punto importante che deve essere aggiunto alla risposta di @Broadsworde per completarlo.

Mentre sul mio laptop erano abilitati tutti i timer e i servizi, mancava la voce del registro fstrim (solo: starting… stopping… reboot… starting…ecc.).

Passo mancante

Potrebbe essere necessario contrassegnare i file system come scartabili . Se un file system non è contrassegnato come scartabile, il trim lo salterà [1].

Per contrassegnare un filesystem come scartabile, hai due opzioni:

1. Opzione: tune2fs

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

Questo imposterà l'opzione di scarto come predefinita per il mio dispositivo ext4. Se non usi la crittografia, prova /dev/sdainvece.

2. Opzione: /etc/fstab

Assicurati di anteporre o aggiungere l'opzione discardalle opzioni di montaggio esistenti. Ad esempio in questo modo:

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

Solo dopo questo il servizio timer farà davvero qualcosa.

Le note

  • [1] in realtà, il dispositivo deve supportare l' TRIMoperazione. Ma su Linux, questo è un flag di file system. Tuttavia, il dispositivo su cui è in esecuzione il file system deve supportare l' TRIMoperazione. Per vedere se il dispositivo lo supporta, uso: sudo hdparm -I /dev/sda | grep -i TRIM.

Nella mia installazione (in origine 18.10; successivamente aggiornato a 19.04) i filesystem non hanno la scarto opzione abilitata. Uso solo SSD nel mio sistema; e non ha mai avuto alcun HD meccanico. Li ho abilitati con tune2fs . Qualche idea o spiegazione del perché il sistema non li ha abilitati per impostazione predefinita?
FedonKadifeli,

1
Non penso sia corretto. L'opzione di eliminazione consente di tagliare i blocchi quando i file vengono eliminati dal file system. Il servizio systemd taglia periodicamente i blocchi non utilizzati sul file system. Queste sono cose diverse. L'opzione di scarto può influire negativamente sulle prestazioni su alcuni sistemi, quindi quella periodica è probabilmente migliore.
xioxox

1
@xioxox ha ragione. Recenti mount's pagina dell'uomo afferma che «Le questioni di funzione degli scarti frequentano i comandi per lasciare lo spazio di recupero dispositivo a blocchi liberato dal file system. [...] può avere un impatto significativo sulle prestazioni . (Il comando fstrim è disponibile anche per avviare i trim batch dallo spazio utente.) »
Fabio A.

Grazie, ho modificato la risposta di conseguenza. Per favore non continuare a sottovalutare questa risposta: voglio mantenerla poiché i tuoi commenti sono preziosi!
Ben
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.