Wie geht Windows mit Prozessspeicher oder Ressourcenerschöpfung um?

596
misha256

Neulich arbeitete ich an einem Windows 7 32-Bit-PC, mit ein paar Anwendungen, darunter Firefox.

Im Laufe der Zeit öffnete ich immer wieder neue Registerkarten in Firefox, bis plötzlich das Firefox-Fenster zu flackern begann. Ab diesem Zeitpunkt wurde der größte Teil der Firefox-GUI schwarz und weigerte sich, neu zu malen. Nachdem versucht wurde, einige Tabs blind zu schließen, stürzte der Firefox-Prozess vollständig ab. Alle anderen Anwendungen schienen weiterhin gut zu funktionieren.

Ich gehe davon aus (korrigieren Sie mich, wenn ich falsch liege), dass der Firefox-Prozess seine 2-GB-Berechtigung für virtuellen Speicher oder eine andere Ressource erschöpft hat. Was bringt mich zu den Schlüsselfragen:

  1. Kann die Erschöpfung von Speicher / Ressourcen in einem Prozess andere Prozesse oder sogar den Kernel selbst stabilisieren?

  2. Wie gehen moderne Windows mit diesem Szenario um? Wie robust ist es unter diesen Hochdruckbedingungen?

Meine Sorge ist, dass, wenn andere Prozesse oder Kernel-Services beeinträchtigt werden, dies möglicherweise zu einem Systembruch führen kann (z. B. Datei- / Festplatten- / Registry-Beschädigung).

0

1 Antwort auf die Frage

1
DavidPostill

Wie geht Windows mit Prozessspeicher oder Ressourcenerschöpfung um?

Wie sich ein Programm unter "Stressbedingungen" verhält, hängt davon ab, wie das jeweilige Programm geschrieben wurde (welche Privilegien es hat, enthält es Fehler usw.) und dieses Verhalten bestimmt, wie der Rest des Systems beeinflusst wird, wenn etwas "schief geht". .

Es ist möglich, dass Daten verloren gehen. Es ist möglich, dass das System mit einem BSOD abstürzt oder aufgrund eines delayed write failedFehlers nicht in der Lage ist, Daten zu schreiben .


Die Grenzen von Windows ausloten

Die Blogpost-Serie von Mark Russinovich (beginnend mit Pushing the Limits of Windows: Physisches Gedächtnis ) befasst sich ausführlich mit diesem Thema.

In Pushing the Limits von Windows: Auslagerungspool und Nicht-Auslagerungspool veranschaulicht er insbesondere die Auswirkungen eines Testprogramms:

Wenn Sie aus erster Hand sehen möchten, wie sich ein System verhält, wenn der Pool knapp wird, verwenden Sie das Notmyfault-Tool. Es hat Optionen, die dazu führen, dass in dem von Ihnen angegebenen Inkrement entweder ein nicht ausgelagerter oder ein ausgelagerter Pool ausläuft. Sie können die Leckgröße ändern, während sie undicht ist, wenn Sie die Leckrate ändern möchten und Notmyfault den gesamten Speicher freigibt, wenn Sie ihn verlassen

Bei einem Testsystem sagte er zu den Ergebnissen:

Bei einem Testsystem sah ich schließlich diese Fehlermeldung, die darauf hinweist, dass Daten möglicherweise verloren gegangen sind. Ich hoffe, Sie sehen diesen Dialog niemals auf einem echten System!

enter image description here


Lesen Sie weiter

Windows Internals, 6. Ausgabe von Mark Russinovich, enthält viele weitere Informationen zur Funktionsweise von Windows unter der Haube.

Wow, schöne Referenzen, sehr reiche Informationen. Beim Lesen der Artikel vermute ich, dass mein Fall * GDI oder USER object erschöpft war * (die Hinweise sind schwarzes Fenster und GUI, die nicht neu gestrichen werden). Ich glaube nicht, dass Firefox-Registerkarten für Webinhalte die Kernelressourcen (ausgelagerte / nicht ausgelagerte Pools) erschöpfen würden. misha256 vor 9 Jahren 0
@ misha256 Das hängt davon ab, was in den Registerkarten passiert. Ein schlecht geschriebenes Plugin könnte zum Beispiel ein Verlust von GDI-Ressourcen sein oder es könnte nur ein Fehler in Firefox sein. Wie viele Registerkarten haben Sie geöffnet? Welche Art von Inhalt wurde in den Registerkarten angezeigt? DavidPostill vor 9 Jahren 0
Nach einer Vermutung von vielleicht 20 bis 25 Registerkarten hätte jede Registerkarte ausreichend reichhaltigen Inhalt einschließlich Flash-Animation / -Video (all diese Flash-Anzeigen helfen auch nicht). misha256 vor 9 Jahren 0
Es könnte also ein Fehler im Flash-Plugin sein. DavidPostill vor 9 Jahren 0
Fehler in Flash? Warum wundert mich das nicht? misha256 vor 9 Jahren 0
Haben Sie übrigens einen Firefox-Absturzbericht erhalten? Das gibt normalerweise eine ziemlich gute Vorstellung davon, wo und warum es abgestürzt ist. DavidPostill vor 9 Jahren 0
Du hast enorm geholfen. Vor allem die * Russinovich * Referenz, die zu einer ganzen Reihe exzellenter Dienstprogramme führt - etwas, mit dem man in einer virtuellen Maschine spielen kann :-) misha256 vor 9 Jahren 0
* Haben Sie einen Firefox-Absturzbericht erhalten? * Nicht zu der Zeit ... dumm mich ... aber warten Sie, der ausgezeichnete Ereignis-Viewer von Windows 7 hat einen Datensatz: * Fehler beim Namen der Anwendung: plugin-container.exe, Name des fehlerhaften Moduls: Mozalloc .dll *. Praktisch! misha256 vor 9 Jahren 0
about: support gibt Ihnen Zugriff auf frühere Absturzberichte (klicken Sie auf "Alle Absturzberichte");) DavidPostill vor 9 Jahren 1
Der letzte Kommentar, ich habe gerade das gefunden, was erklären könnte, warum meine anderen Prozesse auch dann noch gut funktionierten, wenn Firefox auf den Beinen war: http://blogs.msdn.com/b/oldnewthing/archive/2007/07/18/3926581 .aspx misha256 vor 9 Jahren 1