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


38

Je sais que TRIM hebdomadaire est activé par défaut à partir de 14h10. Source: Comment activer TRIM? Mais en cours d'exécution sudo nano /etc/cron.weekly/fstrimrenvoie un fichier vide. Indique également tail -n1 /etc/cron.weekly/fstrimque ce fichier n'existe pas.

L'exécution en cours lsblk -Drenvoie des valeurs non nulles pour DISC-GRANet DISC-MAX donc 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

Réponses:


59

Le trim (fstrim / discard) est activé pour s'exécuter chaque semaine par défaut dans 18.04.
Il est configuré pour s'exécuter pour tous les systèmes de fichiers montés sur les périphériques prenant en charge l'opération d'annulation.

C'est un systemdservice géré via systemctl, pas CRON.

Afficher le statut 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 au / supprimer du démarrage, ne change pas le statut actif actuel)

$ sudo systemctl [enable/disable] fstrim.timer

Voir la 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

Affichez la 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

Remarque : ExecStart = / sbin / fstrim -av
Où:
-a , Supprimez 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.

Afficher les entrées de journal système associées :

$ 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
Pour référence, le quand est contrôlé par /lib/systemd/system/fstrim.timer( OnCalendar=weekly) et le quoi par /lib/systemd/system/fstrim.service( ExecStart=/sbin/fstrim -av).
Moilleadóir

1
Beaux post! Je vous suggère de modifier les commandes "cat" à l'aide des commandes systemctl dédiées: cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer. En général, cette commande affiche la version du service en vigueur. Ce pourrait être celui sous / lib / systemd, mais il pourrait aussi s'agir d'une version modifiée sous / etc / systemd.
vanadium le

Quand il est actif, le fait-il pour tous les conducteurs? Par exemple, Ubuntu est installé sur un disque SSD, mais un autre disque SSD est monté en tant que partition ext4. Est-ce que ça coupe les deux automatiquement? (statut dit qu'il est actif)
Eduardo

comment l'activer à la demande? (par exemple maintenant, je veux aller déjeuner)
rasoir du

Vous pouvez manuellement démarrer / arrêter / redémarrer n’importe quel service systemd avec: $ sudo systemctl [démarrer / arrêter / redémarrer] [nom du service] .service
Broadsworde

2

Edit: S'il vous plaît lire les commentaires, cette réponse mélange deux mécanismes!

Ancienne réponse

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

Alors que sur mon ordinateur portable tous les minuteries et tous les 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 pouvant être éliminés . Si un système de fichiers n'est pas marqué comme pouvant être éliminé, le découpage 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 /dev/sdaplutôt.

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' TRIMopération. 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' TRIMopération. Pour voir si votre appareil prend en charge, utilisez: sudo hdparm -I /dev/sda | grep -i TRIM.

Dans mon installation ( à l' origine 18,10, plus tard mis à niveau à 19,04) les systèmes de fichiers n'ont la défausse option activée. J'utilise uniquement le SSD dans mon système; et il n'a jamais eu de HD mécanique. Je les ai activés avec tune2fs . Toute idée ou explication de la raison pour laquelle le système ne les a pas activés par défaut?
FedonKadifeli

1
Je ne pense pas que c'est correct. L'option de suppression supprime les blocs lorsque les fichiers sont supprimés du système de fichiers. Le service systemd supprime périodiquement les blocs inutilisés sur le système de fichiers. Ce sont des choses différentes. L'option d'élimination peut avoir un impact négatif sur les performances de certains systèmes. Par conséquent, l'option périodique est sans doute meilleure.
xioxox

1
@xioxox a raison. Récentes mountde la page de l' homme stipule que «Les problèmes de la fonction défausse fréquente des commandes pour laisser le dispositif de bloc espace de récupération libéré par le système de fichiers. [...] peut avoir un impact significatif sur les performances . (La commande fstrim est également disponible pour lancer des ajustements par lots à partir de l'espace utilisateur.) »
Fabio A.

Merci, j'ai édité la réponse en conséquence. Ne continuez pas à réduire cette réponse: je souhaite la conserver car vos commentaires sont précieux!
Ben
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.