web-dev-qa-db-fra.com

TRIM automatique vs. TRIM manuel

J'essaie actuellement de savoir comment couper avec mon nouveau TP et je me demandais quelle était la différence entre le découpage manuel et en ligne.

Voici ma configuration:

ThinkPad T430s avec SSD Samsung 830, 128 Go et Xubuntu 12.10, voici quelques sorties pour vérifier si trim fonctionne correctement sur mon système (obtenu à partir d'ici: 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)

J'ai d'abord essayé le découpage en ligne: Comment activer TRIM?

mon fstab avec la défausse insérée:

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

J'ai essayé de tester si cela fonctionnait (mais je n'ai pas de zéros quand je l'essaie avec/dev/sda), mais j'ai découvert que cette méthode n'est possible qu'avec SSD de type 2 et que je semble avoir le type 3. Je ne sais pas si ça marche ou pas.

Ubuntuwiki (premier lien) recommande le rognage manuel. J'ai donc créé un cronjob quotidien au lieu de le supprimer:

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

l'article du wiki suggère hebdomadaire ou quotidien. Maintenant à mes questions:

À quelle fréquence exécute le découpage automatisé? Quelle est la fréquence recommandée? Découpage en ligne ou manuel?

Merci de votre aide

12
Eike Cochu

La différence entre le découpage automatique et le découpage manuel tient au fait que le découpage automatique (à l'aide de l'option de montage discard) supprime les blocs libérés en synchronisation lorsque tout fichier est supprimé, tandis que le découpage manuel (à l'aide de fstrim) supprime tout l'espace disponible en même temps.

Essai

Une façon de vérifier si le découpage automatique fonctionne est de créer et de supprimer un fichier volumineux:

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

Si la suppression automatique fonctionne, le rognage manuel à nouveau ne supprimera pas beaucoup de blocs, car ils devraient déjà avoir été rognés. Exécutez Sudo discard -v sur votre système de fichiers et voyez combien de blocs sont supprimés.

Recommandation

En ce qui concerne ce qui est recommandé: Selon mon expérience, le découpage automatique tue les performances. Cependant, cela dépend probablement du matériel; cela peut aller sur votre route.

Si vous utilisez un ajustement manuel, déterminez la fréquence à laquelle vous écrivez des données dans votre charge de travail typique, par rapport à la quantité d'espace libre sur votre disque SSD. Vous voulez couper suffisamment de temps avant que votre disque ne se remplisse de données supprimées. Si votre disque SSD est principalement constitué d’espace libre ou si votre charge de travail sur disque est faible, le découpage occasionnel (hebdomadaire ou même plus) devrait suffire. Si votre disque SSD est en grande partie plein ou si vous avez par exemple éditez des fichiers vidéo fréquemment, vous aurez besoin de couper plus souvent.

4
Mechanical snail

Je ne suis pas ingénieur en stockage et j'ai des soucis connexes , mais je peux faire une suggestion éventuellement utile en matière de planification. Je suis assez confiant que TRIM ne cause aucune usure inquiétante sur le SSD. C’est juste le ménage que votre disque devra éventuellement subir avant de pouvoir commencer à recycler des blocs. Le meilleur calendrier pour le traitement par lots dépend de l’utilisation; une fonction de fréquence d'écriture et d'espace libre, je devrais penser. Dans cet esprit, je débrancherais manuellement le travail cron et fstrim -v pendant plusieurs jours.

Le truc, je pense, est de concevoir un calendrier dans lequel batch TRIM prépare le SSD pour l’écriture avant que les blocs usagés ne soient recyclés afin de réaliser une opération d’écriture normale, ce qui nuit aux performances. Attendez 24 heures et fstrim. Si elle prétend avoir coupé beaucoup moins de blocs que l'espace libre, vous êtes probablement bien servi, mais vous effectuez un TRIMming par lots moins souvent que cela.

2
dam

J'ai préparé le démon fstrim https://github.com/dobek/fstrimDemon

Il semble être plus fiable d’exécuter fstrim en fonction du temps disponible, puis de la table cron. S'amuser.

2
Dobek

Je coupe mon SSD à chaque démarrage. J'ai créé un fichier sh appelé 20 secondes après le démarrage. J'ai choisi d'afficher la sortie de fstrim dans une notification système au lieu d'un fichier journal.

commencez par créer le fichier trim.sh dans votre répertoire ~/bin.

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

Nous devons maintenant donner aux utilisateurs les privilèges nécessaires pour exécuter fstrim, de sorte que nous n’avons pas besoin de saisir de mot de passe. Ouvrez votre fichier sudoers avec visudo et ajoutez la ligne suivante:

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

Si vous incluez votre dossier home/yourusername/bin dans votre $PATH, vous pouvez également couper manuellement dans le terminal avec la commande 'trim' sans avoir besoin d'un mot de passe.

Vous pouvez maintenant ajouter votre script aux applications de démarrage et spécifier un délai. Vous devez vous déconnecter/vous reconnecter pour que votre nouvelle entrée sudoers soit chargée.

1
kasper Taeymans