Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/06/2018, à 14:35

zephirin

Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Pour ceux qui connaissent pas, il s'agit d' une technologie de mise en cache.

Par exemple en mettant une clé USB, d'un simple clic droit puis propriété, on peut la dédier pour accélérer le chargement des applications qu'on veut ouvrir, à la manière d'un disque dur ssd.

Bénéficier de la vitesse d'un disque dur ssd sans en avoir un.


AIO tactile 27" Samsung  i5 8GB DDR3 W11 - tour Antec Asus P5GCMX1333 W11
iMac 27" fin 2009 i5 750 16GBssd2TB cg512 HighSierra - MacBookAir 13" 2017 i5 8GB ssd120 Monterey - MacBookPro mi 2012 8GB DDR3 Catalina

Hors ligne

#2 Le 23/06/2018, à 01:32

JLK

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Comme ce qu'il y a depuis Windows Vista ?
Peut-être en formatant une clé USB au format SWAP avec gparted ?
Mais ce n'est pas recommandé d'effectuer cela, autant que je sache, pour la bonne raison que ça use prématurément la clé USB (à cause du nombre de cycle restreint en écriture).

Hors ligne

#3 Le 23/06/2018, à 07:29

zephirin

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Merci pour ta réponse, user une clé usb pour un petit gain de rapidité d'exécution ce n'est pas un souci.
Je vais regarder ça, merci.


AIO tactile 27" Samsung  i5 8GB DDR3 W11 - tour Antec Asus P5GCMX1333 W11
iMac 27" fin 2009 i5 750 16GBssd2TB cg512 HighSierra - MacBookAir 13" 2017 i5 8GB ssd120 Monterey - MacBookPro mi 2012 8GB DDR3 Catalina

Hors ligne

#4 Le 23/06/2018, à 09:05

Zakhar

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

La techno que tu évoques est totalement "marketting" et un gros pipeau comme pas mal de truc de M$

Il y a plein de choses qui ont été faites sur Linux pour accélérer le démarrage, sans que tu aies recours à une clé USB qui va te bouffer un slot et en plus un slot USB3 sinon tu vas plutôt ralentir vu que l'USB2 est plus lent que ton disque dur !

Les dispositifs d'accélération dépendent de ton matériel. En réalité, si ton système est installé sur un SSD, tu as 0 besoin d'accélération vu les temps d'accès de positionnement voisins de 0.

Si par contre ton système est installé sur un disque dur mécanique, ce qui pénalise c'est qu'au démarrage le système va lire une myriade de petits fichiers et compte tenu du temps d'accès (positionnement mécanique de la tête de lecture du disque) cela pourrait être très très long sans mécanisme accélérateur.

Mais depuis des lustres (sans doute à peu près autant que ReadyBoost) nous avons ureadahead.

Que fait ce truc, tout simplement, quand tu démarres pour la première fois, ou quand il détecte que des morceaux important du système ont été changés, il se met "en écoute" du démarrage.
Il va alors noter tous les fichiers qui sont accédés lors du démarrage (et de mémoire 45 secondes après la mise en session). Une fois qu'il a tout bien noté, il fait un rapport de l'ensemble de ces fichiers, avec l'ordre physique de chacun des fichiers sur le disque.

Les boots suivant, ureadahead va (comme son nom l'indique) "lire en avance" les fichiers tels qu'ils sont "dans l'ordre du disque". Cela permet de diminuer drastiquement les déplacement de la tête de lecture et en conséquence de réduire le temps de boot.

Ce mécanisme ureadahead (chose la plus proche de ReadyBoost) ne nécessite absolument pas de clé USB supplémentaire, il fait ça simplement sur le périphérique que tu utilises pour démarrer.

Tout se fait automatiquement, et si tu chronomètres vraiment, et que tu es dans une configuration où cela se voit (donc usage d'un disque mécanique) tu constateras qu'un boot après avoir changé le kernel va prendre un peu plus de temps (ureadahead en mode "écoute"/apprentissage) qu'un boot où tu n'as rien changé (ureadahead en mode "accélération").


Bien sûr, aussi, le fait de passer de Init System V à SystemD (depuis la 16.04) fait gagner du temps grâce à une meilleure parallélisation des tâches à lancer au démarrage. Mais ce sont des pistes d'optimisation différentes de ureadahead qui se concentre sur la réduction d'un phénomène "physique" qui prend du temps (mouvement de la tête de lecture d'un disque mécanique).


Les techniques d'accélération à base d'hibernation prolongée... je ne recommande pas. Les applications que tu utilises ne sont pas forcément toutes bien écrites pour prendre en compte les "détails" qu'impliquent de telles techniques. Une chose "amusante" par exemple, si ton application a besoin de l'horloge, elle va voir "un gros trou dans la progression du temps" quand le système était en hibernation. C'est le genre de "détail" qui, s'il est mal programmé, peut faire plein de micro-bug ennuyeux.


Maintenant, si effectivement tu as un vieux disque dur mécanique qui se traîne, et un slot USB3 libre (ce qui serait étonnant car c'est contradictoire, si ta machine a de l'USB3 elle est forcément assez récente pour avoir un disque mécanique décent), tu peux tout simplement installer le système sur ta clé extene, en prenant le soin de laisser /home sur le disque. Ainsi tu auras le démarrage (et lancement des logiciels) à la vitesse USB3, intéressant si ton disque mécanique est vraiment très très lent.

Dernière modification par Zakhar (Le 23/06/2018, à 09:15)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#5 Le 23/06/2018, à 12:34

zephirin

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Merci pour tes explications.
Je vais étudier tout ça.


AIO tactile 27" Samsung  i5 8GB DDR3 W11 - tour Antec Asus P5GCMX1333 W11
iMac 27" fin 2009 i5 750 16GBssd2TB cg512 HighSierra - MacBookAir 13" 2017 i5 8GB ssd120 Monterey - MacBookPro mi 2012 8GB DDR3 Catalina

Hors ligne

#6 Le 23/06/2018, à 12:38

Brunod

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Je m'incruste pour te remercier pour l'explication Zakhar,
Je n'avais jamais lu une explication aussi claire et complète de ureadahead, je pensais qu'il s'agissait d'un truc style smartdrv de windows, sans plus.
smile


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#7 Le 23/06/2018, à 14:39

Zakhar

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

De rien ;-)

Non, non, ureadahead fait un "profiling". D'ailleurs tu le vois si tu fais un "sudo apt update" et qu'il y a par exemple un nouveau kernel. Au cours de l'installation il te dit "ureadahead will do a re-profiling during next boot" (ou un machin du genre). Cela signifie qu'au boot suivant, au lieu d'être en état "accélération", ureaahead sera en "écoute" (profiling).

... bon, dans le détail, il fait peut-être les deux, pas essayé de regarder le code !

Avec Linux, tu n'as pas besoin de smartdrv pour la fonction de ureadahead. En réalité, lorsque tu lis un fichier, le kernel le met en cache (sauf si tu lui demandes de ne pas le faire !). Et donc pour accélérer le démarrage, si tu as lu, dans l'ordre physique du disque, tous les fichiers que va réclamer le démarrage... et à condition que la mémoire soit suffisante pour que le kernel ne vide pas la cache... lors le service qui a réellement besoin du fichier au cours du démarrage va lire ledit fichier, il n'y aura pas d'accès physique puisque le fichier est déjà caché par le kernel.

Par contre, une autre recommandation est effectivement de mettre /tmp en mémoire ! (ce que tu appelles smartdrv).

Cela n'est pas fait automatiquement car pourrait poser des problème lors de l'utilisation de certains programmes qui font un usage excessif de /tmp, mais fait effectivement gagner pas mal de temps, puisque le démarrage lance plein de programmes, qui souvent on besoin d'écrire/lire des petits fichiers dans /tmp. En mettant ça en RAM, l'accès est à la vitesse la plus rapide qu'on puisse souhaiter : mieux qu'un SSD. Et surtout, pour un disque mécanique, ça ne rajoute pas de mouvements de tête sur un disque déjà bien chargé à faire démarrer le système.

La mise en RAM de /tmp prend un ligne dans /etc/fstab

none           /tmp		tmpfs   mode=01777,noatime,nodev,nosuid      0       0

On peut forcer la taille, les inodes, etc... par défaut ça met la moitié de la RAM.
C'est aussi très pratique pour certains usages : par exemple tu veux décompresser un seul fichier au milieu d'une archive pour lire son contenu, tu peux le faire dans /tmp (si ça tient dans la taille alloué) si tu n'as pas besoin de garder le fichier ainsi décompressé pour le futur.


Mais bon, à mon sens ureadahead devient assez inutile avec les SSD. Voire même, en mode "profiling" il consomme du temps et en mode "accélération" il ne fait quasi rien gagner. A l'occasion je verrai si en l'enlevant (c'est sans doute possible !) ça change vraiment quelque chose puisque je suis en SSD sur mes 2 PC depuis un bon moment. big_smile

Par contre /tmp en RAM je ne pourrais plus m'en passer, j'utilise ça quotidiennement, y compris les copies de fichiers vers /tmp comme j'explique au dessus !
Bon, avec 32G de RAM installée sur mon PC fixe, les usages sont assez larges, puisque les 16G par défaut de /tmp sont suffisants par exemple pour stocker un film HD en entier big_smile

Dernière modification par Zakhar (Le 23/06/2018, à 14:51)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#8 Le 24/06/2018, à 10:00

Brunod

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Merci pour le complément d'info. Mais pour moi, un vieux portable de 15 ans avec 2Go ram, pas de ssd à l'époque, avec Xu ça me suffit encore, mais ça rame un peu au démarrage wink


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#9 Le 24/06/2018, à 10:46

nam1962

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

@Zakhar, je plussoie Brunod pour le merci !
Je pige enfin  "ureadahead will do a re-profiling during next boot" big_smile

Je vais essayer le /tmp en RAM : as-tu une reco de RAM minimale pour que ce ne soit pas trop casse gu** ?

A propos de stockage en RAM, j'ai trouvé une extension intéressante pour ne pas stocker tous les onglets ouverts dans FF : https://addons.mozilla.org/en-US/firefo … b-discard/


[ Modéré ]

Hors ligne

#10 Le 24/06/2018, à 11:12

alex2423

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Merci Zahkar, j'ai appris quelque chose.
Depuis quelques temps, j'utilise un petit laptop et donc je ne me suis plus interessé au PC fixe et aux upgrade. Poufff, je ne pensais qu'actuellement les PC tournent avec 32Go de RAM, c'est tout simplement énorme.
Le PC de mes parents est un PC fixe de 4Go, Athlon X2 et un disque mécanique 5400, cela tourne magnifiquement bien. J'essaierai de voir pour l'améliorer donc avec le profiling ureadahead.

Hors ligne

#11 Le 24/06/2018, à 18:03

Nuliel

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Pareil, merci Zahkar pour l'explication, et je m'abonne au fil au passage smile
Je testerai aussi la mise en RAM de /tmp d'ici une semaine

Hors ligne

#12 Le 28/06/2018, à 15:04

nam1962

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Alors j'ai même testé sur un vieux dv4000 avec 1.2Go de RAM, eh bien c'est efficace ta mise de /tmp en RAM, Zakhar !

C'est combiné chez moi avec une swappiness à 5 et un cache_pressure à 50 (comme sur toutes mes installs)

(Bon, je ne compile pas et je ne fais pas de traitement d'image 3D sur cette bécane, aussi...)


[ Modéré ]

Hors ligne

#13 Le 28/06/2018, à 19:43

JLK

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

À quoi sert l'option cache_ pressure, nam1962 ?

Hors ligne

#14 Le 28/06/2018, à 20:03

nam1962

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

Le gens qui m'ont amené à ces applications en parlent mieux que moi wink

rudd-o a écrit :

the filesystem cache is important because, without it, file browsing goes extremely slowly as well. Now we'll learn how to tell Linux that we want it to prefer inode/dentry cache to other caches(...)When this knob is closer to 1, the kernel will prefer to protect the inode/dentry cache by freeing block cache first.

https://rudd-o.com/linux-and-free-softw … o-fix-that

Et https://www.usenix.org/legacy/publicati … node8.html


[ Modéré ]

Hors ligne

#15 Le 29/06/2018, à 19:33

zephirin

Re : Existe t'il un équivalent de ReadyBoost (Microsoft) pour Linux ?

nam  tu vas ajouter cette commande dans ton site ?


AIO tactile 27" Samsung  i5 8GB DDR3 W11 - tour Antec Asus P5GCMX1333 W11
iMac 27" fin 2009 i5 750 16GBssd2TB cg512 HighSierra - MacBookAir 13" 2017 i5 8GB ssd120 Monterey - MacBookPro mi 2012 8GB DDR3 Catalina

Hors ligne