Forcer ext4lazyinit à finir son truc?

18

Existe-t-il un moyen de «forcer» ext4lazyinitpour terminer ce qu'il fait avec une priorité maximale? Quelque chose comme "Je ne me soucie pas des ressources de mon système, faites votre travail aussi vite que possible"?

Je devrais ajouter: sans reformater le disque. Je connais l'option lazy_itable_init de mkfs.

Marius
la source
Cela me semble assez XY . Qu'essayez-vous réellement de réaliser?
Daniel B
3
Il a fallu plusieurs heures à mon Raspberry Pi pour terminer ext4lazyinit sur un disque dur externe. Je voulais tester si le hd tourne correctement après un certain temps d'inactivité, mais cela n'a pas été possible en raison de ext4lazyinit. Après avoir regardé du code du noyau ( github.com/torvalds/linux/blob/master/fs/ext4/super.c#L2931 ), il ne semble pas possible de forcer le thread à se terminer car les retards sont quelque peu codés en dur. Ce n'est cependant pas une réponse définitive, je ne suis pas un expert en noyau ni en ext4 et je viens de jeter un œil à cette fonction.
Marius
@Marius Vous avez raison, le retard est codé en dur.
Moshe Katz

Réponses:

15

Afin de «forcer» ext4lazyinit à terminer ce qu'il fait avec une priorité maximale, vous devez monter le système de fichiers avec «init_itable = 0». Par défaut, c'est 10 (pour plus de détails, voir le lien ci-dessous)

Une autre solution consiste à désactiver l'option de filetage ext4lazyinit par l'option de montage ' noinit_itable ', ce qui peut cependant ne pas être une bonne idée sur le système de production (pour plus de détails, veuillez consulter le lien ci-dessous).

Source avec des informations détaillées ici ext4lazyinit git commit comment .

Venca B Spam
la source
2
Pour obtenir une commande qui peut être utilisée pour remonter (sans doublure), vous pouvez exécuter mount | grep /path/to/mount/point | sed -E 's/^.* on (.*) type ext4 \((.*)\)$/mount -o remount,init_itable=0,\2 \1/g'- Cela produira quelque chose commemount -o remount,init_itable=0,rw,noatime,seclabel,stripe=512,data=ordered /path/to/mount/point
Iwan Aucamp
-2

Vous pouvez définir le niveau «agréable» du processus sur une priorité plus élevée que les autres. Je ne sais pas si cela le rendra plus rapide et pourrait nuire à la stabilité du système s'il est réglé trop haut (-20 est la priorité la plus élevée).

nice -n [nice value] [command]
Hefewe1zen
la source
1
ce serait bien de lui donner plus de priorité CPU, ce dont il a besoin est plus de priorité IO, @VencaBSpam a la bonne solution
Jens Mühlenhoff