Die Leistung beim Systemstart

 

Hinweis des Herausgebers: Dies ist der erste Beitrag eines führenden Mitarbeiters unseres Entwicklungsteams. Erlauben Sie mir, Ihnen Michael Fortin vorzustellen. Michael ist einer der „Distinguished Engineers“ bei Microsoft und Leiter des Feature-Teams „Fundamentals“ in unserer Gruppe Core-Betriebssysteme. Er leitet die Arbeit an der Verbesserung der Leistung und Zuverlässigkeit innerhalb der gesamten Windows-Plattform. --Steven (PS: Versäumen Sie es nicht, sich die Website www.microsoft.com/ie anzusehen und die Beta 2- Version von Internet Explorer 8 auszuprobieren).

Für die Arbeit an Windows 7 haben wir ein Team zusammengestellt, das sich speziell auf die Leistung beim Systemstart konzentriert, aber eigentlich umfasst diese Arbeit nicht nur die Windows-Gruppe, sondern auch andere Bereiche bei Microsoft. Darüberhinaus arbeiten unsere zahlreichen Partner auf dem Gebiet der Hardware- und Software-Entwicklung eng mit uns zusammen, und man kann mit Recht sagen, dass auch diese Teil unseres umfassenderen Teams sind.

Der Systemstart kann sich auf drei verschiedene Aspekte beziehen: Neustart, Wiederaufnahme nach dem Standby, oder Wiederaufnahme nach dem Ruhezustand. Obwohl die Wiederaufnahme nach dem Standby meist als Ausgangspunkt genommen wird und bei der gängigen Hardware und den standardmäßig installierten Programmen in der Regel 2 bis 5 Sekunden dauert, beschäftigt sich dieser Beitrag hauptsächlich mit dem Neustart, da die meisten Kommentare sich mit diesem Vorgang befassen. Eines unserer wichtigsten Ziele, das wir uns für Windows 7 vorgenommen haben, ist eine signifikante Verbesserung der Dauer des Neustarts für möglichst viele unterschiedliche Systeme. Bei unseren Tests verstehen wir unter einem „sehr guten System“ ein System, das innerhalb von 15 Sekunden startet und verfügbar ist.

Eine reduzierte Startzeit bei einem PC ist nur dann zu erreichen, wenn eine Reihe von Prozessen effizient und so parallel wie möglich durchgeführt werden kann:

  • Die Dateien müssen in den Speicher gelesen werden.
  • Die Systemdienste müssen initialisiert werden.
  • Geräte müssen identifiziert und gestartet werden.
  • Die Anmeldeinformationen des Benutzers müssen überprüft werden.
  • Der Desktop muss aufgebaut und angezeigt werden.
  • Startup-Programme müssen gestartet werden.

Da die einzelnen Systeme und Konfigurationen unterschiedlich sind, kann die Dauer des Neustarts bedeutend variieren. Dies zeigt sich in zahlreichen Testergebnissen, wird aber auch in unabhängigen Analysen deutlich, wie sie unter anderem von Ed Bott durchgeführt wurden. Die von Ed anhand seiner Systeme erfassten Daten ergaben, dass nur bei 35% aller Neustarts die Benutzer innerhalb von weniger als 30 Sekunden Zugriff auf das System hatten. Obwohl die Zahl der verschiedenen Systeme in Eds Untersuchung nicht sehr groß ist, passen seine Daten in das Bild, das sich aus unseren eigenen Tests ergibt. So weisen unsere Daten zu Windows Vista SP1 (sh. unten) ebenfalls daraufhin, dass nur ungefähr 35% der Systeme innerhalb von maximal 30 Sekunden gestartet werden, während 75% aller Systeme bis zu 50 Sekunden für den Neustart benötigen. Die Daten zu Vista SP1 sind telemetrisch erfasste Daten aus dem täglichen Gebrauch. Die Quelle dieser Daten ist eine beachtlich große Anzahl von Systemen (es handelt sich hier um Millionen von Systemen), deren Benutzer sich einverstanden erklärten, Microsoft im Rahmen des Customer Experience Improvement Programs auf anonyme Weise die Daten ihrer Systeme zur Verfügung zu stellen.

clip_image001

[Boot Times (System Responsive) : Startzeiten (die erforderliche Zeit, bis das System zur Verfügung steht)]

Unserer Meinung nach kommt es viel zu häufig vor, dass die Betriebssysteme zu langsam starten. Diese Situation müssen wir ändern. Besonders die Leistung der Systeme, die länger als 60 Sekunden brauchen, muss entschieden verbessert werden—gleichgültig, ob es sich dabei um Probleme mit den Geräten, dem Netzwerk oder der Software handelt. Wie Sie aus der Abbildung ersehen können, haben einige Systeme besonders lange Startzeiten. Im Bereich der PCs fällt vor allem die variierende Leistung auf—Unterschiede, die sich sowohl aus einer Reihe verschiedener Möglichkeiten ergeben als auch aus der unterschiedlichen Qualität der verschiedenen Komponenten. Einige Prozesse der Systemwartung können ebenfalls zu den langen Startzeiten beitragen. Wenn ein Benutzer ein umfangreiches Software-Update installieren möchte, geschieht das eigentliche Update des Systems beim nächsten Starten des PCs. Dieses Update, dessen Durchführung mitunter mehrere Minuten benötigt, wird in unserer Metrik erfasst. Was auch immer die Ursache für die geringe Leistung beim Systemstart ist - ein großer Teil unserer Aufgabe, die wir als Teil des PC-Ökosystems erfüllen müssen, besteht in der Verbesserung der Startzeiten.

Sowohl bei den von Ed gesammelten Daten als auch unseren telemetrisch erfassten Daten bedeutet „Startzeit“ die Zeit, die ein System benötigt, bis es für den Benutzer zur Verfügung steht. Dazu gehören das Anmelden am System und der Aufbau des Desktops, so dass dieser benutzt werden kann. Zwar stellt dies keine perfekte Metrik für unsere Analyse dar, jedoch wird damit die große Mehrheit der Probleme festgehalten. Bei Systemen, die Windows 7 und Vista betreiben, werden die Werte automatisch festgehalten und in dem Systemereignislog gespeichert. Darauf geht Ed in seinem Artikel geht Ed ausführlich ein.

Es ist uns bewusst, dass es auch noch andere Vorgänge und Aspekte gibt, die für den Benutzer zum Systemstart gehören, wie zum Beispiel das Anhalten des Datenträgers oder die Verfügbarkeit der Anwendungen, des Startmenüs oder des Desktops. Auch die Zeit nach dem Booten (wenn die Anwendungen im Startup laufen und einige Dienste nach einer bestimmten Verzögerung ausgeführt werden), die Zeit, bis der Start von Windows initiiert wird, sowie die BIOS-Zeit können wichtige Aspekte darstellen. Bei unseren Bemühungen um Verbesserungen werden wir stets sämtliche Faktoren im Auge behalten, die für den Benutzer die Startleistung beeinflussen.

Bevor ich auf unsere Arbeit an Windows 7 zu sprechen komme, möchte ich darauf hinweisen, dass wir eng mit unseren Partnern zusammenarbeiten. Bei der Analyse von Dutzenden von Systemen haben wir reichlich Gelegenheit gehabt, Verbesserungen vorzunehmen. Als Beispiel dafür mögen die folgenden Daten dienen, die beim Betrieb eines Systems erfasst wurden. Als das System geliefert wurde, hatte die Standardkonfiguration eine Startzeit von ca. 45 Sekunden. Nach einer Neuinstallierung von Vista SP1 auf diesem System verringerte sich die Startzeit in der Regel auf ca. 23 Sekunden. Bei einer Neuinstallierung gibt es natürlich weniger Prozesse, Dienste und etwas unterschiedliche Treiber (meist handelte es sich dabei um andere Versionen). Trotzdem gelang es uns, die Standardkonfiguration weiter zu optimieren und eine generelle Startzeit von ca. 21 Sekunden zu erzielen, etwa 2 Sekunden schneller als nach der Neuinstallierung, da wir in der verbesserten Konfiguration einige Veränderungen an den Treibern/dem BIOS vorgenommen hatten.

In diesem Zusammenhang möchte ich noch betonen, dass beim gleichen System die Wiederaufnahme nach dem Standby ungefähr 2 Sekunden beträgt, so dass das System beinahe sofort zur Verfügung steht. Wir empfehlen daher den Benutzern, Standby als Alternative zum Booten zu erwägen.

In Bezug auf unsere Arbeit an Windows 7 sei zu erwähnen, dass wir uns auf die Systemdienste konzentrieren. Unser Ziel ist es, sowohl ihre Anzahl zu reduzieren als auch deren Anforderungen an CPU, Datenträger und Speicherbedarf zu verringern. Der Grundgedanke dabei ist ganz einfach: wenn ein Dienst nicht unbedingt erforderlich ist, sollte er auch nicht gestartet werden, und es sollte einen Trigger geben, der Ausnahmefälle regelt und den Dienst nur in diesen Situationen startet.

Natürlich haben alle diese Dienste ihren Zweck: sämtliche Anforderungen des Benutzer sollen erfüllt werden, auch wenn sie noch so selten sind. Nehmen wir an, dass eine neue Tastatur, Maus oder neue Tablet-Hardware hinzugefügt wurde, während das System ausgeschaltet war. Wenn die neue Hardware nicht erkannt wird und keine neuen Treiber für die Benutzung der Hardware beim Starten installiert werden, kann der Benutzer unter Umständen seine Anmeldeinformationen nicht eingeben, um sich am System anzumelden. Im Falle eines einzelnen Benutzers tritt eine solche Situation sehr selten oder überhaupt nicht ein. Nimmt man jedoch Hunderte von Millionen von Benutzern, so geschieht dies häufig genug, um dafür zu sorgen, dass die erforderliche Unterstützung vorhanden ist. Bei Windows 7 haben wir die erforderlichen automatisch gestarteten Dienste reduziert, indem wir umfassendere Auslösemechanismen einsetzen.

Wie bereits bemerkt, stellen Geräte- und Treiberinitialisierung ebenfalls wichtige Faktoren dar. Bei der Arbeit an Windows 7 haben wir uns intensiv um eine umfassendere Parallelschaltung der Treiberinitialisierung bemüht, wodurch die Wahrscheinlichkeit geringer wird, dass bestimmte Geräte oder Treiber die allgemeine Startgeschwindigkeit verlangsamen.

Was das Einlesen der Dateien vom Datenträger betrifft, wurden bei Windows 7 die Logik und Verfahrensweise des „Prefetching” verbessert. „Prefetching“ wurde bereits mit Windows XP eingeführt. Da die heutigen Datenträger andere Leistungsmerkmale aufweisen, wurde die Logik des zeitlichen Ablaufs etwas abgeändert, um eine vergleichbare Effizienz zu erhalten. So evaluieren wir das „Prefetch“-Feature im Hinblick auf die neuen Solid State Datenträger, wobei wir sogar die Frage stellen, ob das Feature überhaupt noch erforderlich ist. Letztlich werden die Daten zur Leistungsanalyse, die anhand bestimmter Systeme erfasst werden, entscheiden, inwieweit wir vom „Prefetcher“ Gebrauch machen werden.

Auch die Diagnostik wurde bei Windows 7 verbessert. Unser Ziel ist es, die speziellen Probleme der jeweiligen Systeme unmittelbar zu identifizieren und die Problemlösung zu unterstützen. Wir halten dies für eine angemessene Art und Weise, den Benutzer auf die Probleme hinzuweisen, die sich z.B. ergeben, wenn zu viele Startup-Anwendungen oder umfangreiche domänenspezifische Anmeldeskripts vorliegen. Wie viele Benutzer bereits wissen, führt eine große Anzahl von Startup-Anwendungen zu einer verringerten Startleistung. Nur wenige Benutzer sind jedoch mit den Implikationen problematischer Start- oder Anmeldeskripts vertraut. Bei Windows XP, Vista und Windows 7 kann sich der Benutzer standardmäßig am Desktop anmelden, ohne auf eine langwierige Netzwerkinitialisierung oder die Ausführung eines Skripts warten zu müssen. In Unternehmen ist es jedoch möglich, dass die IT-Abteilung diese Standardkonfiguration ändert und die Clientsysteme so konfiguriert, dass sie die Server innerhalb des Netzwerks kontaktieren. Leider konfigurieren die Domänen-Administratoren die Clients, auf denen die Skripts ausgeführt werden, häufig so, dass sie synchron geschaltet sind und blockiert werden. Dies führt dazu, dass im Falle von Timeouts oder Problemen mit der Serverauthenfizierung der Systemstart und die Anmeldung verzögert werden. Darüberhinaus benötigen solche Skripts mitunter Programme, die viel CPU-, Datenträger- und Speicherressourcen beanspruchen.

Neben unserer Arbeit an den eigentlichen Features und Diensten von Windows 7 stellen wir unsern Partnern auch Tools, Testverfahren und Daten zur Verfügung. Diese Tools sind auch für die Enthusiasten unter Ihnen erhältlich. Sie können unsere internen Tools zur Identifizierung und Behebung von Startproblemen als Teil des Windows Performance Toolkits hier kostenlos herunterladen. Obschon diese Tools für die meisten Benutzer nicht unbedingt geeignet sind, erweisen sie sich doch für einige als sehr nützlich.

Eines der Themen, über das wir bald sprechen möchten und das bereits oft erörtert und kommentiert wurde, ist der Einfluss der zusätzlichen Software, die nach der ersten Installation von Windows installiert wird, auf die Leistung des Systems. Schon allein aufgrund der umfangreichen Software für Windows kann nicht jedes Programm den hohen Qualitätsanforderungen aller Benutzer entsprechen, wobei jedoch die meisten Programme zufriedenstellend sind. Daher muss Microsoft weiterhin den Entwicklern Tools zur Verfügung stellen, mit deren Hilfe sie leistungsfähige Software programmieren können. Ebenso müssen wir den Endbenutzern Tools zur Verfügung stellen, mit denen sie feststellen können, welches Programm die Leistung ihres Systems beeinträchtigt. Auch bei Windows selbst muss die Art und Weise verbessert werden, wie zum einen Programme identifiziert werden können, die die Leistung negativ beeinflussen, und zum anderen der Endbenutzer darauf aufmerksam gemacht wird.

Ein weiterer Beitrag könnte sich mit den Konfigurationsveränderungen befassen, die die Benutzer an ihren Systemen vornehmen. Viele der empfohlenen Veränderungen sind keineswegs nützlich. So haben wir festgestellt, dass die meisten Empfehlungen bezüglich kleiner Änderungen der Registrierung Unsinn sind. Mein Lieblingsirrglaube ist jedoch der folgende: Wenn man mit Live Search nach “ Superfetch auf XP aktivieren” sucht, erhält man zahlreiche Treffer. Nun, ich kann ihnen versichern: es gibt keine Superfetch-Funktionalität bei Windows XP und keinen der auf diesen Sites angeführten Registrierungsschlüssel. Gleiches gilt für viele andere Empfehlungen zu CPU-Zeitplanung, Speicherverwaltung und andere Konfigurationsveränderungen, die die Systemleistung in keiner Weise verbessern.

Startup ist ein Aspekt des Themas „Leistung.“ Wie im vorherigen Beitrag erwähnt, möchten wir die Diskussion dieses Themas fortsetzen. Lassen Sie uns wissen, welche anderen Aspekte Sie gerne eingehender diskutieren möchten.

Michael Fortin