Warum führt mein Systemprozess eine Festplatten-E / A durch?

671
Svish

Manchmal möchte ich sehen, wie viele meiner Ressourcen ein Programm tatsächlich verwendet. Es scheint jedoch so, als ob der Prozess, obwohl er viel unternimmt, oft keine Festplatten-E / A macht. Der Systemprozess dagegen macht viel davon.

Zum Beispiel habe ich in meinem speziellen Fall jetzt einen kleinen SFTP-Server, der viele Daten empfängt, was ich auf der Registerkarte " Netzwerk" in Resource Monnitor sehen kann . Aber im Disk- Tabl macht es kaum etwas außer ein paar kleinen Lesevorgängen zu X:\$BitMapund X:\$Mft. Das System scheint jedoch eine ähnliche Schreibgeschwindigkeit zu haben wie die Empfangsgeschwindigkeit des Netzwerks, und auf die Dateien, auf die der SFTP-Server zugreift, sind die Dateien, auf die er zugreift.

Was ist hier wirklich los?

0
Erfassen Sie eine Xperf-Spur der Festplatte / FileIO: http://pastebin.com/AyxAVU60 und geben Sie die komprimierte Datei frei magicandre1981 vor 9 Jahren 0

1 Antwort auf die Frage

1
Jamie Hanrahan

Im Systemprozess befindet sich der MappedPageWriter-Thread. Dieser Thread ist dafür verantwortlich, dass modifizierte Seiten zugeordneter Dateien in die Dateien geschrieben werden, zu denen sie gehören. (Dies ist ein Verwandter des ModifiedPageWriter-Threads, auch im System-Prozess, der dasselbe für modifizierte Seiten tut, die durch die Auslagerungsdatei gesichert werden ... der ModifiedPageWriter-Thread schreibt die Seitendatei.)

Der zugeordnete Dateimechanismus wird vom Windows-Dateicache verwendet, der standardmäßig verwendet wird, wenn ein Programm herkömmlichen Lese- / Schreibzugriff auf Dateien ausführt. Und wenn Ihr Sftp-Server zugeordnete Dateien verwendet und nicht r / w die empfangenen Dateien ruft, handelt es sich natürlich auch um zugeordnete Dateien.

Dies ist also ein normaler Teil des Schreibens von Dateien unter Windows ... es sei denn, das Programm hat die Ausgabedatei mit FILE_FLAG_NOBUFFERING geöffnet, das den Windows-Dateicache umgeht (und viele Nachteile aufweist).