Wie optimiere ich die Windows-Datenträger-E / A für einen Durchsatz mit hoher Latenz?

2567
Charles Burns

Angenommen, es gibt 25 Prozesse, die eine große Datei (z. B. 1 GB) lesen und indizieren möchten. Das Festplattenlaufwerk ist möglicherweise zu einem Durchsatz von ~ 100 MB / s fähig, aber die Bewegung des Kopfes und die Rotationslatenz, die beim Umschalten zwischen solchen Prozessen erforderlich sind, ist erheblich, so dass der Durchsatz auf 5 MB / s oder nur 5% der Durchsatzkapazität des herkömmlichen Laufwerks reduziert werden kann.

Würde die Festplatte eine große Datenmenge lesen (z. B. 32 MB) oder eine lange Zeit lesen (z. B. 200 ms), bevor sie mit dem nächsten Prozess fortfährt, könnte Datei-IO den vollen Durchsatz des Laufwerks auf Kosten erreichen der Latenzzeit.

Verfügt Windows über eine solche Möglichkeit, um dieses Ziel in Fällen zu erreichen, in denen die Latenz den Durchsatz hinter sich lässt?

Wie optimiere ich die Windows-Datenträger-E / A für einen Durchsatz mit hoher Latenz?

1
Überprüfen Sie das Tool DiskSpd: http://blogs.technet.com/b/josebda/archive/2014/10/13/diskspd-powershell-and-storage-performance-measuring-iops-throughput-and-latenz-for-both -local-disks-and-smb-file-shares.aspx magicandre1981 vor 9 Jahren 0

1 Antwort auf die Frage

0
Twisty Impersonator

Dafür gibt es das NCQ-Protokoll . Ein Laufwerk, das NCQ unterstützt bei alle eingehenden Befehle sieht und ordnet sie sie effizienter zu bedienen (und im Wesentlichen, Neuordnen der Befehle ist, was Sie fragen über).

Das heißt, ich sehe in Ihrem Beispiel, dass Sie eine Festplattenwarteschlangen-Tiefe von 27 haben, also sind wir sogar über die Hilfe von NCQ hinaus. Dies ist ein Problem für RAID (möglicherweise gekoppelt mit schnellerem physischem Speicher).

Es gibt Speicherparameter, die in Windows angepasst werden können, insbesondere diejenigen, die sich auf das Caching-Verhalten beziehen, was in Ihrem Fall jedoch nicht ausreicht.

Ich halte NCQ für mehr als Hilfe für kleine, nahezu zufällige E / As wie Datenbankzugriff. Das betreffende Laufwerk hat NCQ und es hilft wahrscheinlich ein bisschen, aber ich denke, in dieser Situation geht es eher um das Abstimmen des Windows-E / A-Schedulers. Linux erlaubt mir die Auswahl von I / O-Schedulern (Deadline, CFQ ...), aber aus Fairness wäre keiner von ihnen in diesem Fall viel besser als der Standard von Windows. Charles Burns vor 9 Jahren 0
Zusätzlich wird NCQ von dem Frequenzumrichter verwendet, dessen Leistung in der ursprünglichen Frage getestet wurde, wobei er immer noch weniger als 5% des maximalen Durchsatzes ausmacht. Charles Burns vor 8 Jahren 0