web-dev-qa-db-fra.com

Est-ce que TRIM est activé sur mon installation Ubuntu 18.04?

Je sais que TRIM hebdomadaire est activé par défaut à partir de 14h10. Source: Comment activer TRIM? Mais exécuter Sudo nano /etc/cron.weekly/fstrim renvoie un fichier vide. De plus, tail -n1 /etc/cron.weekly/fstrim indique que ce fichier n'existe pas.

L'exécution de lsblk -D renvoie des valeurs non nulles pour DISC-GRAN et DISC-MAX, de sorte que TRIM est pris en charge sur mon SSD. Le TRIM hebdomadaire est-il réellement activé pour mon SSD ou non?

J'utilise un disque SSD Kingston

27
m.umar

Trim (ignorer) est activé pour s'exécuter chaque semaine par défaut dans 18.04.

C'est un service systemd géré par systemctl, pas CRON.

fstrim est configuré pour s'exécuter pour tous les systèmes de fichiers montés sur des périphériques prenant en charge l'opération d'annulation.

Voir statut de 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

Démarrer/Arrêter/Redémarrer fstrim.timer:
(ne change pas le statut de démarrage)

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

Activer/Désactiver fstrim.timer:
(ajouter/supprimer du démarrage, ne change pas le statut actif actuel)

$ Sudo systemctl [enable/disable] fstrim.timer

Voir configuration de 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

Vue configuration de fstrim.service:

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

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

Note: ExecStart =/sbin/fstrim - av
Où:
- a, Coupez tous les systèmes de fichiers montés sur les périphériques prenant en charge l'opération d'annulation.
- v, exécution verbeuse. Indiquez le nombre d'octets passés du système de fichiers par le biais de la pile de blocs au périphérique en vue d'une suppression éventuelle.

Voir associé entrées de journal systemd:

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

il faut ajouter un point important à la réponse de @Broadsworde pour le rendre complet.

Alors que sur mon ordinateur portable, tous les minuteurs et services étaient activés, l’entrée de journal fstrim était manquante (uniquement: starting… stopping… reboot… starting… etc.).

Étape manquante

Vous devrez peut-être marquer les systèmes de fichiers comme éliminables . Si un système de fichiers n'est pas marqué comme pouvant être éliminé, le rognage l'ignorera [1].

Pour marquer un système de fichiers comme pouvant être éliminé, vous avez deux options:

1. Option: tune2fs

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

Cela définira l'option de suppression comme valeur par défaut pour mon périphérique ext4. Si vous n'utilisez pas le cryptage, essayez plutôt /dev/sda.

2. Option: /etc/fstab

Veillez à ajouter ou ajouter l’option discardà vos options de montage existantes. Par exemple comme ceci:

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

Ce n’est qu’après cela que le service de minuterie fera vraiment quelque chose.

Notes de bas de page

  • [1] en réalité, le périphérique doit prendre en charge l'opération TRIMname__. Mais sur Linux, il s'agit d'un indicateur de système de fichiers. Néanmoins, le périphérique sur lequel le système de fichiers est en cours d'exécution doit prendre en charge l'opération TRIMname__. Pour voir si votre appareil le prend en charge, utilisez: Sudo hdparm -I /dev/sda | grep -i TRIM.
1
Ben