Inconvénients de l’utilisation de la précharge? Pourquoi n'est-il pas inclus par défaut?

110

Je voudrais savoir quels sont les inconvénients de l'utilisation preload? S'il n'y avait aucun inconvénient, preloadserait activé par défaut, donc je suppose qu'il y en a.

Ok, vous avez besoin d’un peu plus de RAM, mais la plupart des gens ont de loin plus de RAM qu’Ubuntu - alors quels sont les inconvénients de l’utilisation preload?

Paradiesstaub
la source
6
Merci pour votre question utile. Je veux savoir, est-ce un mythe?
Saeed Zarinfam
1
L'utilisation du processeur et de la batterie peut être un inconvénient pour certains ... bugs.launchpad.net/ubuntu/+source/preload/+bug/481861
Mateo
1
Bonne question. Certaines distributions sont chargées en préchargement, comme le système d'exploitation élémentaire (c'est ce que je lance sur mon ordinateur portable car le gala est bien plus rapide que l'unité d'Ubuntu).
1
Juste une supposition: une des raisons pour ne pas l'inclure par défaut est le fait qu'il n'est pas utilisable sur tous les systèmes (la configuration matérielle requise peut être différente de la configuration standard).
don.joey
2
brainstorm.ubuntu.com/idea/1122 un article suggère qu'il "s'exécute en tant que démon avec les privilèges root". Ce qui peut être un problème de sécurité, il y a aussi ce brainstorming qui veut son inclusion par défaut brainstorm.ubuntu.com/idea/14092
Mateo

Réponses:

65

En termes simples, la précharge n'est pas pour tout le monde. C'est bien si vous ouvrez beaucoup d'applications ou de bibliothèques. Cela est dangereux si vous ne chargez que des applications ou des bibliothèques occasionnellement. Je vais utiliser deux exemples de mon utilisation réelle (et oui j'utilise le préchargement).

Tout d'abord, Google Chrome. Désormais, un navigateur n’est ouvert qu’une fois par démarrage, peut-être deux fois (pour moi, je suis un développeur Web). Chrome et ses bibliothèques associées restent en mémoire car je l'utilise toujours. Même lorsque je ferme toutes les fenêtres chromées, il est toujours à l’arrière-plan. Ainsi, tout le bélier dédié à la conservation d'une copie préchargée de Chrome est un gâchis total. Ce n'est jamais (ou rarement) déchargé. Pour l'utilisateur moyen, cela est vrai pour un grand nombre d'applications. Un utilisateur Office aura presque toujours son application de messagerie ouverte. Ainsi, les petites économies de temps de démarrage sont complètement perdues, car elles n'ouvrent leur application de messagerie qu'une fois par jour et la laissent ouverte.

Le deuxième exemple est rake. En tant que développeur ruby ​​qui croit aux tests, je lance rake a TON. rake s'exécute, s'exécute pendant quelques secondes - minutes, puis se termine. Le préchargement me permet d’accélérer mon travail quotidien car il charge à l’avance rake et les bibliothèques nécessaires (qui peuvent être très volumineuses). Donc, il y a beaucoup de démarrages et d'arrêts à la course de rake. Le bélier supplémentaire utilisé pour accélérer les 400 ou 500 lancements de râteau en quelques heures en vaut la peine.

La raison pour laquelle il n'est pas activé par défaut est que sa capacité à améliorer les performances repose en grande partie sur la façon dont vous utilisez votre système. Pour certaines personnes, ce sera négatif et pour d'autres positif.

Enfin, le préchargement, même si vous ne l'utilisez pas, consomme de la RAM. Par conséquent, si vous ne lancez pas fréquemment d’applications, vous pouvez ralentir légèrement l’ensemble de votre système en ne disposant pas de ce ram disponible pour d’autres types de mise en cache. N'oubliez pas que même si vous avez 32 Go de RAM, Linux essaiera d'en utiliser le plus possible pour mettre en cache des données afin de rendre votre interaction plus rapide. En utilisant le préchargement, vous réduisez cette mémoire libre. Même s'il ne s'agit que d'un tout petit peu, les 2 secondes que vous avez sauvegardées en lançant chrome 1 fois peuvent vous coûter 60 secondes au cours du mois où il reste en cours d'exécution.

coteyr
la source
1
En outre, l'utilisation de la précharge ralentit le démarrage. Plus le nombre d'éléments préchargés est élevé, plus le système met du temps à être opérationnel. Maintenant, imaginez que tout ce que vous voulez faire est de démarrer, d’écrire une phrase sur un mémo et d’arrêter juste après. Vous serez même en mesure d’écrire le mémo, car votre système précharge les éléments qui n’ont probablement pas de lien avec cette tâche. Ainsi, d’une certaine manière, le préchargement (en général) est une arme à double tranchant.
F-3000
1
Le préchargement ne fonctionne pas réellement de cette façon ... Il donne des indications au noyau telles que "hé, chargez-le dans votre cache pendant que vous y êtes, j'en aurai besoin bientôt" et le noyau le fait. Donc, en fait, il n’utilise pas la RAM comme vous le décrivez. Deux choses peuvent se produire, cependant: Le chargement dans le cache supprime les applications que vous allez bientôt utiliser - ce qui entraîne un gel bref et une activité du disque dur lorsque vous revenez à l'application.
hurikhan77
1
Deuxièmement: si le préchargement prédit une mauvaise utilisation de votre modèle d’utilisation (ce qui peut très bien être le cas si vous avez constamment chargé des applications), il met en cache des éléments qui seront ultérieurement repoussés hors de la RAM et qui seront à leur tour repoussés en mémoire cache. mieux utiliser pour. Mais au final, il ne "consomme" que de la RAM, comme le cache vfs - il s'agit donc en réalité d'une RAM non récupérable et donc d'une "mémoire RAM libre". Il entre toutefois en concurrence avec le "cache normal" au fur et à mesure que vous écrivez.
hurikhan77
1
Compte tenu des rappels mentionnés ci-dessus à propos des projets coteyr et @ hurikhan77, convenez-vous que le préchargement est un moyen contre-efficace d’aider à améliorer la vitesse perçue sur les anciens postes de travail à faible mémoire vive (~ 800 Mo disponibles au démarrage). Pour que FYI active le préchargement sur de telles boîtes remises à neuf, le gestionnaire de mémoire virtuelle du noyau aura beaucoup de travail pour peu d’amélioration.
tuk0z
2
@lliseil Si ces 800 Mo sont vraiment de la RAM non allouée, le préchargement peut aider ... Mais cela fonctionne probablement mieux avec plus de RAM. Et cela à son tour signifie que: le préchargement sera en conflit avec les applications gourmandes en mémoire que vous pourrez démarrer plus tard. Réduire le swappiness peut être nécessaire ici, ce qui rendra probablement le préchargement inutile dès que vous utiliserez trop de RAM.
hurikhan77
21

Question posée par le bountier Saeed Zarinfam le 5 septembre 2012:

Bonjour à tous, je veux savoir, est-ce un mythe? Est-ce que [précharge] améliore vraiment mes performances? Quels sont les inconvénients de l'utiliser? J'ai un ordinateur portable avec cette spécification (processeur Core i5, 4 Go de RAM, 128 Go de disque dur SSD). Merci beaucoup.

  • Il n'y a pas de réel besoin de précharge si vous avez un SSD
    • En effet, les disques SSD fournissent des temps d’accès aléatoires bien plus rapides que les disques durs; par conséquent, le "préchargement" des fichiers binaires / dépendances en mémoire est une perte de temps, IMO
    • L'inconvénient fondamental est que le préchargement consiste à "utiliser" de la mémoire supplémentaire sans procurer d'avantage tangible.
ish
la source
20
Cela ne couvre pas la question du PO car existe-t-il des inconvénients à l’utilisation de la précharge? Deuxièmement, vous avez formé une opinion, fait une déclaration sur le "préchargement", puis introduit "SSD" dans l'équation. À quel moment alliez-vous réellement répondre à la question?
Ringtail
12

Le préchargement est un «démon adaptatif en lecture anticipée» qui s'exécute en arrière-plan de votre système et observe les programmes que vous utilisez le plus souvent, en les mettant en cache afin d'accélérer le temps de chargement des applications. En utilisant le préchargement, vous pouvez exploiter au mieux votre RAM et améliorer les performances globales de votre système de bureau.

Ne vous attendez pas à un changement radical des performances tout de suite. De plus, si vous ouvrez / fermez les applications de manière répétitive, votre ordinateur stockera quand même ces fichiers dans le cache (il s'agit d'une charge «à chaud»), de sorte que vous ne verrez aucune différence de vitesse là-bas. Cependant, vous constaterez une amélioration de la vitesse si, par exemple, vous utilisez un programme par intermittence; ces programmes démarreront plus rapidement que sans préchargement.

La précharge peut améliorer considérablement le temps de démarrage des applications. Comme la plupart des machines modernes disposent de beaucoup de mémoire, Preload utilise cette mémoire vive à bon escient. 1

Cela étant dit, il semble que la précharge soit un outil très utile, et c’est peut-être le cas.

Je pense que la raison pour laquelle le système d'exploitation n'est pas préchargé, c'est parce que l'utilisateur doit savoir exactement ce qu'il fait, et avoir suffisamment d'expérience pour pouvoir l'utiliser, et le système doit disposer de suffisamment de RAM.

Sur un aspect plus technique, le préchargement consiste à déplacer les données du disque dur vers la RAM, ce qui oblige la plupart des disques durs à passer en mode veille s'ils ne sont pas utilisés, puis à revenir en arrière si nécessaire. Une rotation vers le haut / vers le bas du disque entraînerait le décompte du cycle de chargement / déchargement et une augmentation du nombre de temps de mise sous tension, ce qui raccourcirait la durée de vie du lecteur.

Nous avons conçu et mis en œuvre le préchargement, un schéma de prélecture adaptative basé sur Markov qui fonctionne sur les prévisions au niveau de l'application. De plus, le préchargement est implémenté dans l'espace utilisateur et ne modifie en rien l'environnement d'exécution de l'application. Il s’agit du premier travail expérimentant avec la pré-extraction de système de fichiers à ce niveau, à notre connaissance.

Nos résultats expérimentaux montrent des améliorations prometteuses sur le temps de démarrage des applications par rapport aux caches à froid, et un taux de réussite décent par rapport à un algorithme de prédiction na¨ıve.

Cependant, le fait d'être dans l'espace utilisateur crée des obstacles majeurs pour faire du préchargement une solution compétitive au problème du démarrage. En particulier, le fait de ne pas disposer d'informations complètes sur les demandes d'E / S des applications et de l'absence de canaux de communication puissants avec le sous-système de cache de pages dégrade considérablement l'efficacité du préchargement, en particulier dans des conditions de mémoire insuffisante.

Un autre problème inhérent à la conception de la précharge est la variance élevée et la confiance faible des prévisions due à la corrélation relativement vague des démarrages d'applications. Bien que nous ayons réussi à construire un modèle permettant de suivre les corrélations d’applications, le fait que les lancements d’applications soient très rares comparés à l’échelle de temps sur laquelle travaillent les ordinateurs est condamné. Cette mémoire peut être utilisée pour améliorer le comportement du cache à court terme.

Enfin, nous proposons un ensemble de recommandations aux développeurs système sur la manière d’améliorer le temps de démarrage, le temps de connexion et le temps de démarrage des applications sans recourir à un outil de préfet intégré au sous-système de cache du noyau. Bien entendu, un préfetcher basé sur le fichier dans le noyau peut s’améliorer par la suite. 2

1 Source: techthrob

2 Source: Preload - Un démon adaptatif de prélecture de Behdad Esfahbod - Thèse soumise conformément aux exigences du diplôme de maîtrise en sciences - Département de premier cycle en informatique - Université de Toronto. Copyright (c) 2006 de Behdad Esfahbod.

Mitch
la source
1
Merci pour votre réponse, Mitch. C'étaient aussi mes pensées. Surtout sur les ordinateurs portables, la précharge peut poser problème. Néanmoins, j'aimerais bien trouver une source / discussion officielle sur les raisons pour lesquelles l'équipe Ubuntu a décidé de ne pas envoyer la précharge.
Glutanimate
9

Désavantages? Il n'y en a pas!

Augmentation de la performance des applications d'ouverture par l'utilisateur. Je l'utilise depuis des années sur mes systèmes et en lecture anticipée et je n'ai aucun problème. La page de bogues pour le préchargement ne suggère pas non plus d'inconvénients.

Préchargement surveille les applications que les utilisateurs exécutent et en analysant ces données, prédit quelles applications les utilisateurs pourraient exécuter, et va chercher les binaires et leurs dépendances en mémoire pour les temps de démarrage plus rapide.

Cela augmente légèrement le temps de démarrage, mais le temps de récupération de la vitesse des applications dépasse de loin ce petit problème.

voir l' article

Si vous utilisez constamment des applications courantes telles que Firefox ou Gimp, vous remarquerez des temps de chargement considérablement améliorés. Le préchargement est un démon qui s'exécute de manière discrète en arrière-plan et ne perturbera en aucun cas votre bureau. Les utilisateurs Ubuntu peuvent installer le préchargement avec:

sudo apt-get install preload

Résultats:

Graphique montrant la différence entre un démarrage normal et préchargé

ref

Ringtail
la source
3
Je sais ce que ça dose et j'ai lu plusieurs "HowTos de précharge", mais nulle part je ne pouvais lire quelque chose sur les inconvénients. S'il n'y avait pas de tirage au sort, il serait livré par défaut avec de nombreuses distributions Linux - mais pour autant que je sache - ce n'est pas le cas.
Paradiesstaub
1
La performance n'est pas diminuée mais augmentée . C'est tout l'intérêt d'utiliser la précharge. Peut-être que c'est juste une faute de frappe.
Marco
2
Votre diagramme a fière allure mais il manque des informations importantes. Cela correspondrait à 100% à la présentation PowerPoint d'un vendeur, mais il s'agit d'un exemple de "mauvaises statistiques". D'où viennent ces chiffres? Quel protocole a été utilisé pour les enregistrer? Y a-t-il un seul instantané? Combien de machines ont été impliquées dans l'échantillon? Quel était le matériel? Comment le programme de préchargement a-t-il été configuré?
1
@ Ringtail: Vous avez raison. Vous n'êtes pas l'auteur de ce diagramme. Mais si vous cliquez sur tous les liens des articles, vous arrivez sur une page Techthrob.com qui aurait dû héberger un article écrit par l'auteur du programme. Mais cette page a disparu. Donc, il n'y a qu'une source: la thèse de l'auteur.
2
Il faut mettre à niveau le matériel si un terminal gnome met plus de 2 secondes à démarrer ...
Peter et le loup