Überlastet Microsoft Windows 10 den Speicher?

2

Linux-Betriebssystem: In der Regel wird eine Überbelegung des Arbeitsspeichers zugelassen. Beispielsweise kann ein Prozess 100 GB Arbeitsspeicher zuweisen, obwohl der Computer nur über 8 GB physischen Arbeitsspeicher und keinen Auslagerungsspeicher verfügt.

Solange nicht der gesamte zugewiesene Speicher verwendet wird, funktioniert der Vorgang. Wenn das Programm versucht, alles zu nutzen, bricht der OOM-Killer Prozesse ab, um Speicher freizugeben.

Wie funktioniert das in Windows? Verweigert Windows die Freigabe des virtuellen Speichers für Prozesse, es sei denn, es kann garantiert werden, dass dieser Speicher durch den tatsächlichen Speicher (physischer Arbeitsspeicher oder Auslagerungsspeicher) gesichert werden kann?

avl_sweden
quelle
1
In der Vergangenheit hat Windows ein Overcommit nie zugelassen, und meines Wissens hat sich dies in Windows 10 nicht geändert. Overcommit hat seine Vorteile, aber auch einige potenziell schwerwiegende Probleme. Es kann dazu führen, dass ein Prozess, der nichts falsch gemacht hat und nur bescheidene Speicherzuweisungen vorgenommen hat, abstürzt, ohne dass eine Wiederherstellung möglich ist. Windows-Designer haben vorsichtiger entschieden, niemals eine Überbeanspruchung zuzulassen.
LMiller7
Vielen Dank! Wissen Sie, ob dies irgendwo dokumentiert ist?
avl_sweden
1
Die 6. Ausgabe der Microsoft-Publikation "Windows Internals", die bis zu Windows 7 reicht, beschreibt die Speicherverwaltung. Overcommit wird nicht unterstützt. Die 7. Ausgabe für Windows 10 ist meines Erachtens noch nicht erschienen. Aber ich bin mir sicher, dass eine so große Veränderung, wie Überbeanspruchung, irgendwo erwähnt worden wäre. Diese Bücher können schwer zu lesen sein, wenn Sie nicht den Hintergrund haben.
LMiller7
Danke noch einmal! Vielleicht könntest du das als Antwort geben, damit ich es akzeptieren kann?
avl_sweden
@avl_sweden Du kannst selbst eine Antwort schreiben. Dies ermöglicht zumindest das Schließen doppelter Fragen.
Dmitry Grigoryev

Antworten:

3

Beantworte meine eigene Frage, wie es sonst niemand getan hat.

Es scheint der Fall zu sein, dass Windows den Speicher NICHT überlastet. Dies ist tatsächlich ein großer Unterschied zu Linux.

Unter Windows kann ein Programm mehr (virtuellen) Speicher zuweisen, als RAM auf dem Computer vorhanden ist. Dies ist jedoch NUR dann der Fall, wenn genügend freier Speicherplatz vorhanden ist, um den vom Programm angeforderten virtuellen Speicher bei Bedarf auf der Festplatte sichern zu können.

avl_sweden
quelle
2
Ja genau. Das Windows "Festschreibungslimit" ist einfach die RAM-Größe + die aktuelle Auslagerungsdateigröße. Windows lässt nicht zu, dass Anwendungen und das Betriebssystem mehr als das festschreiben. Wenn die Auslagerungsdatei-Erweiterung aktiviert ist und Sie bei einem Festschreibungsversuch über das aktuelle Limit hinaus gelangen (jedoch weniger, als die Auslagerungsdatei-Erweiterung zulässt), wird die Auslagerungsdatei automatisch erweitert, um die Anforderung zuzulassen.
Jamie Hanrahan
Es braucht aber immer noch einen OOM-Killer, da meiner in den letzten Wochen mehrmals abgestürzt ist, weil ich vermutlich meinen gesamten 10 GB freien Festplattenspeicher dynamisch Chrome zugewiesen habe.
Cees Timmerman