web-dev-qa-db-fra.com

ureadahead semble bloquer le système au démarrage

J'ai jeté un coup d'œil à mon bootcharts et quelque chose semble être faux avec eux. Le processus ureadahead fait ce qu’il est supposé faire (l’utilisation du disque est à 100% la plupart du temps), mais il bloque également toute autre action.

Depuis que j'ai un disque dur lent pour ordinateur portable, ureadahead lui-même prend environ 50 secondes du temps de démarrage. Ensuite, le reste de la séquence de démarrage visible prend encore 100 secondes, en utilisant beaucoup de ressources processeur, mais pas au maximum et beaucoup de IO (encore une fois, 100% presque tout le temps).

Cela me semble étrange. Ma ureadahead est-elle mal configurée? Pourquoi bloque-t-il des tâches telles que la mise en place du réseau qui semble prendre beaucoup de ressources processeur? Devrait-il prendre environ 50% du temps de bootchart en général?

Edit: voici l'exemple de graphique de démarrage: http://img191.imageshack.us/img191/1049/localhostkarmic20100815.png (ou ceci si le fichier direct ne fonctionnait pas: http: //yfrog.com/f/5blocalhostkarmic20100815p/ )

5
viraptor

Le blocage de la chaussure est volontaire. Le but d'ureadahead est de précharger toutes les données nécessaires au démarrage. La raison en est que la principale raison de la lenteur des disques est le temps de recherche - même les disques durs lents devraient pouvoir lire des lectures> 50 Mo/s, mais si vous avez besoin de chercher - à des dizaines de millisecondes par recherche - qui diminue considérablement. Ureadahead devrait pouvoir minimiser le nombre de recherches et par conséquent le temps nécessaire à la lecture de toutes les données dont votre démarrage aura besoin.

Alors le idéal bootchart ressemble à ureadahead à une utilisation à 100% des E/S, suivi de tout ce qui commence et n'utilise pas d'E/S (disque). Ce démarrage n'est pas pratiquement réalisable, notamment parce que de nombreux services que nous démarrons écrivent sur le disque, mais c'est l'idée.

En regardant votre graphique de démarrage, il semble que ureadahead a du mal à extraire les données de votre disque - il y a beaucoup de temps où le débit est très faible. Même dans ce cas, il semble que son travail s’effectue - après le démarrage d’ureadahead, votre démarrage est principalement lié au processeur, plutôt qu’il dépend des E/S, et il semble que les grands correctifs du démarrage lié aux E/S soient associés à preload allumer.

Vous voudrez peut-être essayer de supprimer preload, ou de reprofiler votre démarrage¹, ou bien certains de vos fichiers sont très fragmentés ou il peut s'agir d'un bogue dans ureadahead.

1: Supprimer les fichiers pack de/var/lib/ureadahead entraînera un reprofilage d’ureadahead lors de votre prochain démarrage.

4
RAOF