Share via


Vista Highlights: Low Priority Disk I/O

Technorati-Tags: Microsoft,Vista

Eine für den Benutzer nicht direkt sichtbare Neuerung in Windows Vista betrifft den Umgang mit Lese- bzw. Schreibzugriffen auf die Festplatte(n). Die Performanz von Vista ist ohnehin sehr stark abhängig von der Disk Queue - ist diese größer als 2 (Physical Disk - Current Disk Queue Length), wird Vista ziemlich langsam. Das galt für XP im übrigen auch schon, nur lief da weniger im Hintergrund, das wie z.B. die Indexierung ständig auf die Festplatte zugreift.

Es gab in XP (und früher) die Möglichkeit, Prioritäten für Threads zu vergeben. Damit konnte dann ein Service so programmiert werden, daß er mit niedrigerer Priorität als eine Applikation lief, oder die Priorität konnte sich verringern, wenn eine Applikation minimiert wurde. Dieser Mechnismus funktioniert aber immer schlechter, je moderner die verwendete Hardware ist.

Auch wenn's merkwürdig klingt: die Priorisierung von Threads funktioniert deswegen so schlecht, weil moderne Hardware zu schnell ist. Genauer gesagt: moderne CPUs sind zu schnell. Deswegen können auch Threads mit niedriger Priorität ohne weiteres sehr umfangreiche Disk I/O-Aktivität entfalten - durch einen Mangel an Rechenleistung werden sie ja nicht gebremst ;-)  Die Lösung für das Problem ist die direkte Priorisierung von Disk I/O. Disk I/O-Priorisierung ist eine Funktion, die im Code einer Anwendung bzw. eines Service implementiert werden muß. Wer sich für den hierfür benötigten Code interessiert, der findet in diesem Word-Dokument weitere Informationen. Dort sind auch Details wie die unterschiedlichen Zugriffs-Mechanismen (Read Ahead, Streaming, ...) sehr gut erklärt.

Eine der Anwendungen, die insbesondere ab Vista SP1 diese Funktion nutzen, ist Defrag. Die Defragmentierung der Festplatte ist wichtig, um dauerhaft die Performanz zu sichern, aber natürlich will niemand dadurch in seiner Arbeit behindert werden. Ließ man bisher die Defragmentierung z.B. über Nacht laufen, so kann man das jetzt problemlos während der Arbeitszeit tun. Defrag benutzt alle verfügbare Disk I/O, solange sonst keine Anwendung benutzt wird. Sobald Sie aber eine Anwendung mit höherer Disk I/O-Priorität öffnen, sagen wir: Outlook, gibt Defrag augenblicklich die Festplatte frei. Sie können also ohne Einschränkungen ganz normal mit der Anwendung arbeiten, und Defrag läuft im Hintergrund weiter, ohne Sie dabei zu stören.

Mit freundliche Grüßen!

Ralf M. Schnell

Comments

  • Anonymous
    January 01, 2003
    Hallo Manny, Die Priorität für Disk I/O muß von der Applikation selbst angefordert werden. Dafür gibt es keine gesonderte GUI. Ab Vista SP1 ist das automatisch implementiert. Nähere Informationen finden Sie hier: http://www.microsoft.com/whdc/driver/priorityio.mspx Mit freundlichen Grüßen! Ralf M. Schnell

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Hallo Manny, ein solches Programm ist mir leider nicht bekannt. Low Priority Disk I/O ist unter Windows XP nicht verfügbar. Ralf M. Schnell

  • Anonymous
    July 22, 2008
    Hallo Ralf, der Link zum Dokument funktioniert so leider nicht. Sollte wohl nur "http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/Priorityio.doc" heißen. LG, Sven

  • Anonymous
    November 11, 2009
    Hallo Ralf, ist es Ihnen bekannt, ob es inzwischen ein Programm gibt, dass eine GUI zur Steuerung von DISK I/O, für unterschiedliche Applikationen gibt? Und noch eine Frage: Ist dies eventuell auch schon unter XP machbar? mfg. Manny Muster

  • Anonymous
    November 11, 2009
    Hallo Ralf, wenn nicht unter XP, geibt es ein solches Programm denn unter Vista oder Windows7? Wäre für mich echt ein Grund das Betriebssystem zu wechseln. Vielen Dank auch für die schnelle Antwort. mit freundlichen Grüssen Manny Muster