2008-05-20 11:00 Lektion 11: welche Auswirkungen hat AHCI/NCQ
Der System-Overhead wird durch die neue Architektur verringert.
Die Abarbeitung der I/O’s wird bei hoher konkurrierender Last verkürzt beschleunigt.
Aber: Verbessert sich das Systemverhalten insgesamt? NEIN, im Gegenteil!
Microsoft hat schon vor 2 Jahren an Softwarehersteller, HDD-Hersteller und Treiberentwickler appelliert, die neuen Performancestrategien von Vista zu implementieren, um eine prioritätsmäßige Behandlung von I/O’s auf diesen Ebenen zu ermöglichen.
Bisher ohne Ergebnis.
So kommt es – auf nicht durchdachten Kleinsystemen – z.B. zu folgenden merkwürdigen Effekten:
System bestehend aus zwei Platten, auf einer davon die Systempartition.
a) - Es wird ein großer Kopiervorgang mehrerer Gigabytes von Device A nach Device B gestartet
b) - Es wird ein Multimediaprogramm gestartet, welches ein Video abspielen soll
c) - Es wird versucht, weitere Programme mit großem Speicherbedarf zu starten.
Der Kopiervorgang a) belastet beide Devices A und B enorm in Plattenbereichen, die weit entfernt von jenen Bereichen liegen, von denen
d) - die entsprechende Applikationen b) und c) geladen werden müssen,
e) - zum Laden von b) und c) erstmal Platz geschaffen und etwas anderes auf den Pagefile geräumt werden muss
f) - Daten zur Videowiedergabe von b) kontinuierlich rechtzeitig in den Speicher gebracht werden müssen
Unter Vista würden die I/O’s von a) niedrige Priorität, die von d) hohe, e) höchste, und f) mittlere Priorität erhalten.
Nachdem der AHCI/NCQ Mechanismus sich darum aber nicht schert, „erschlagen“ die massenhaften I/O’s von a) alle anderen und werden bevorzugt. Die HDD-Logik müsste die anderen I/O’s erledigen und sie nicht „verhungern“ lassen, aber dorthin kommen sie meist gar nicht, weil sie schon am Controller(HBA) durch mangelnde Selektionsmechanismen nie oder nur selten an die HDD weitergeleitet werden, solange ständig neue Anforderungen von a) dazukommen und die HDD durch ständige DMA-Transfers für a) eine Übertragung sämtlicher anstehender Befehle an die HDD verhindern.
Das hat den Effekt,
- dass neu gestartete Programme ewig brauchen, bis sie in die Gänge kommen
- Multimediazeug stottert oder ruckel
2008-05-20 11:00 Lektion 12 – Wie kann der Unsinn gestoppt werden?
Wenn man auf AHCI nicht verzichten will (Hot-Plug, Power Management)
- Keine Verwendung von HDD’s gleichzeitig als System-, Paging- und Datenplatten
- auf kleinen, schnellen Platten System/Programmordner und Paging getrennt betreiben
- Bei Controllern, welche mit SCSI Miniport arbeiten, (z.B. jMicron) kann NCQ(bei SCSI - TCQ) je Device deaktiviert werden
- Bei NVIDIA-Controllern kann NCQ für alle Devices des Controllers gemeinsam deaktiviert werden
- für Multimediaapplikationen kann der read-ahead Wert vergrößert werden, womit Aussetzer verhindert werden können