it-swarm-eu.dev

ureadahead scheint das System beim Booten zu blockieren

Ich habe mir meine bootcharts angesehen und etwas scheint mit ihnen nicht zu stimmen. Der ureadahead -Prozess führt das aus, was er tun soll (die meiste Zeit ist der Datenträger zu 100% ausgelastet), blockiert jedoch auch alle anderen Aktionen.

Da ich eine langsame Laptop-Festplatte besitze, benötigt ureadahead selbst ~ 50s der Startzeit. Dann dauert der Rest der sichtbaren Startsequenz weitere 100 Sekunden. Dabei wird viel CPU verbraucht, aber nicht ausgelastet, und es wird eine Menge von IO (wiederum fast die ganze Zeit 100%).

Das kommt mir nur seltsam vor. Ist mein ureadahead falsch konfiguriert? Warum blockiert es Aufgaben wie das Aufrufen des Netzwerks, das anscheinend viel CPU benötigt? Sollte es im Allgemeinen ~ 50% der Bootchart-Zeit dauern?

Bearbeiten: Hier ist das Beispiel-Bootchart: http://img191.imageshack.us/img191/1049/localhostkarmic20100815.png (oder dies, wenn das direkte nicht funktioniert hat: http: //yfrog.com/f/5blocalhostkarmic20100815p/ )

5
viraptor

Das Blockieren des Boots ist beabsichtigt. Der Sinn von ureadahead ist es, alle Daten, die Ihr Boot benötigt, vorab zu laden. Der Grund dafür ist, dass der Hauptgrund für die Langsamkeit der Disc Suchzeiten sind - selbst langsame Festplatten sollten in der Lage sein, Lesevorgänge von> 50 MB/s auszugeben, aber wenn Sie suchen müssen - bei Dutzenden von millisekunden pro suche - das sinkt dramatisch. Ureadahead sollte in der Lage sein, die Suchvorgänge zu minimieren und damit die Zeit zu minimieren, die zum Lesen aller für den Start benötigten Daten erforderlich ist.

Also, die ideal Bootchart sieht aus wie Ureadahead bei 100% I/O-Auslastung, gefolgt von allem anderen Starten und Verwenden von No (Disc) I/O. Dieser Boot ist praktisch nicht erreichbar, nicht zuletzt, weil viele der Dienste, die wir gerade starten, auf die Disc schreiben, aber das ist die Idee.

Wenn Sie sich Ihr Bootchart ansehen, scheint es für ureadahead schwierig zu sein, Daten tatsächlich von Ihrer CD/DVD abzurufen. Trotzdem sieht es so aus, als ob es einen Teil seiner Arbeit leistet - nach dem Start von ureadahead ist Ihr Boot größtenteils an die CPU gebunden und nicht an die E/A. Außerdem scheinen die großen Patches des E/A-gebundenen Boot mit preload Anzünden.

Möglicherweise möchten Sie versuchen, preload zu entfernen oder Ihren Boot¹ neu zu filtern, oder einige Ihrer Dateien sind sehr fragmentiert, oder es liegt ein Fehler in ureadahead vor.

1: Wenn Sie die pack -Dateien aus/var/lib/ureadahead entfernen, wird ureadahead beim nächsten Start neu gespeichert.

4
RAOF