Seitengröße optimieren: Ich möchte das Peak Commit und meinen physischen Arbeitsspeicher näher erläutern.

628
Ahu Lee

Ich möchte die Größe der Auslagerungsdatei an meine tatsächlichen Bedürfnisse anpassen. Und ich möchte der von Mark Russinovich vorgeschlagenen Formel folgen: Das Minimum sollte Peak Commit minus Physical RAM sein und das Maximum sollte das Doppelte sein.

Um sicher zu sein, dass ich alles richtig mache, möchte ich Folgendes klarstellen:

1) Ist diese Zahl in Rot das von Herrn Russinovich erwähnte Peak Commit?

Auf dem Bildschirm erscheint das Systeminformationsfenster des Process Explorers

enter image description here

2) In der Systemsteuerung> System heißt es, dass mein installierter Arbeitsspeicher 4 GB beträgt und nur 2,45 GB nutzbar sind . Im Task-Manager beträgt mein physischer Speicher natürlich auch 2509 MB. Das ist, weil mein Betriebssystem 32-Bit ist. Also muss ich es richtig verstehe, dass dies 2509 (nicht die, 4 GB) ist die Nummer, die ich für meine Auslagerungsdatei Größe Berechnung verwendet werden soll?

Ich weiß, das ist vielleicht eine dumme Frage, aber wie ich schon sagte, möchte ich sicherstellen, dass ich es richtig mache.

Vielen Dank.

0

1 Antwort auf die Frage

1
Jamie Hanrahan

Sie beziehen sich ohne Zweifel auf "Pushing the Limits of Windows: Virtueller Speicher" von Mark Russinovich.

  1. Ja, das ist die Nummer.
  2. Ja, Sie haben nur 2,5 GB RAM zur Verfügung (ungefähr - hier ist keine übermäßige Genauigkeit erforderlich).

Sie schreiben jedoch von "es richtig machen". Ich muss darauf hinweisen, dass in Marks Artikel "die Grenzen überschritten werden", und diese Formel gibt Ihnen ein absolutes Minimum an Seitengröße. Wenn Sie möchten, dass Ihr System eine gute Leistung bringt, möchten Sie nicht an die Grenzen gehen.

In diesem Artikel gibt es keine Empfehlung, die besagt, dass Sie die Einstellungen so klein machen sollten . Nur, dass Sie damit durchkommen können, wenn Sie wirklich wollen. (Angenommen, Sie brauchen nie mehr festgeschriebenes Gedächtnis.)

(Möglicherweise benötigen Sie mehr. Denken Sie daran, dass dieser "Peak", den Sie hier gesehen haben, nur der Peak für die Dauer des Process Explorer-Laufs ist. Dies ist nur dann von Bedeutung, wenn Sie während dieser Zeit Ihre maximale App-Auslastung ausführen. Das bedeutet nicht nur, dass Sie alle Apps starten, von denen Sie glauben, dass Sie sie auf einmal ausführen werden. Sie müssen auch jede App dazu bringen, den maximalen privaten Speicher ("festgeschriebenen" Speicher) zu nutzen, den Sie jemals danach fragen werden Schwierig einzurichten und zu testen. Und wer sagt, dass Sie nie eine andere App zu Ihrer typischen Arbeitslast hinzufügen werden? Die Informationen, die Sie mit den Überwachungstools erhalten, sind daher nicht mit der Garantie verbunden, dass Sie niemals mehr benötigen.)

Wenn Sie tatsächlich diesen Peak erneut erreichen und die Auslagerungsdatei auf die von Ihnen so berechnete Min eingestellt ist, ist kein Platz im RAM für RAM vorhanden, der von zugeordneten Dateien verwendet wird - beispielsweise Codedateien wie Exes und DLLs . (Dies liegt daran, dass die Anzahl der "festgeschriebenen" virtuellen Speicher keine Codepages oder andere Seiten enthält, die durch zugeordnete Dateien gesichert werden.) Da sich Code im RAM befinden muss, um ausgeführt zu werden, ist dies ein Problem.

OK, da Sie die Auslagerungsdateierweiterung aktivieren, ist dies kein "Showstopper" -Problem. Aber es wird sicherlich ein Performance-Hit.

Wenn Sie also nicht aus irgendeinem akademischen Grund versuchen, die absolute Mindestgröße der Auslagerungsdatei zu demonstrieren, die unabhängig von Leistungsproblemen nicht zu App-Abstürzen führt, würde ich das nicht so machen. (Ich kann mir keinen praktischen Grund dafür vorstellen.)

Wenn Sie die Dinge wirklich auf ein praktisches Minimum reduzieren möchten, dh, ohne den für Code verfügbaren RAM einzuschränken, setzen Sie die minimale Größe der Auslagerungsdatei auf die festgelegte maximale Commit-Gebühr. Dies bedeutet, dass auch dann noch RAM für Code zur Verfügung steht, wenn Apps und das Betriebssystem so viel zugesicherten Speicher erstellt haben (und auf alles verwiesen haben).

Es gibt auch keinen Grund, die maximale Größe auf nur 2x zu begrenzen, es sei denn, Sie sind sehr besorgt über die Festplattennutzung.

Sie sehen, es schadet nicht (außer der Speicherplatzbelegung), dass eine Auslagerungsdatei größer ist, als das System jemals benötigen wird. Insbesondere eine größere Auslagerungsdatei als nötig "zieht" nicht mehr Paging an. Und es gibt keinen Vorteil, es nur gerade groß genug zu machen (anders als der Speicherplatz). Wieso sich die Mühe machen? Sie "optimieren" also nichts außer dem von dieser Übung belegten Speicherplatz.

Angesichts der Tatsache, dass das Überschreiten des Festschreibungslimits zu App-Abstürzen (und damit zu Datenverlust) und in seltenen Fällen sogar zu Systemabstürzen führen kann, wäre ich bei weitem nicht daran interessiert, meine Auslagerungsdatei so klein wie möglich zu machen.

Auf der anderen Seite, wenn das System in die Auslagerungsdatei eine Menge schreiben muss - und auf einem Windows 7-System mit nur 2,5 GB Arbeitsspeicher nutzbar ist, kann ich mir vorstellen, dass es eine Auslagerungsdatei sein wird, die erheblich größer ist, als das System jemals verwenden wird beschleunige die Dinge Warum? Da der für die Auslagerungsdatei verwendete Speicherzuweisungsalgorithmus viel schneller sein kann, wenn viel Speicherplatz frei ist.

Aus diesem Grund möchte ich, dass der PerfMon-Zähler für die Verwendung von Pagefile% unter 25 Prozent bleibt.

Danke für deine schöne Antwort, Jamie! Ich hoffe, dass jemand anderes (und nicht nur ich) es auch nützlich finden wird, weil es so aussieht, als hätten Sie so viel Zeit damit verbracht. Tatsächlich hatte ich den Originalartikel nicht gelesen. Ich habe hier nur einen Verweis darauf gesehen / gelesen. Https://lifehacker.com/5426041/understanding-the-windows-pagefile-and-why-you-shouldnt-disable-it. Vielen Dank für den Link zum Original und erklären Sie mir, worum es wirklich ging, und auch Ihre Meinung zu dem Problem. Ahu Lee vor 6 Jahren 0
Alles, was Sie gesagt haben, ist für mich sinnvoll, aber der Autor im Artikel von lifehacker.com (siehe den Link oben), den ich zuerst gelesen habe, argumentierte, dass eine große Auslagerungsdatei dazu führen würde, dass Ihr System extrem langsam wird, falls Sie 12 GB öffnen wertvolle Anwendungen, und Ihre Festplatte wird so weit schleifen, dass Ihr PC ziemlich unbrauchbar wird. Ist er oder sie einfach falsch? Ich danke dir sehr! Ahu Lee vor 6 Jahren 0
Sie sind einfach falsch. Erstens, wenn Sie eine App "öffnen", befindet sich _none_ des Speichers in der Auslagerungsdatei. Es gibt also keinen Grund, etwas davon zu lesen. Wenn wir davon sprechen, zu einer langlebigen App zurückzukehren, dann ja, Windows hat vielleicht etwas davon rausgepickt ... nicht alles in die Pagefile btw ... aber das gilt nur für das älteste Zeug in der Prozess Arbeitssatz, der am wenigsten wahrscheinlich wieder benötigt wird. Windows fügt normalerweise nichts in Ihre Auslagerungsdatei ein, es sei denn, Sie müssen etwas mehr Arbeitsspeicher benötigen. Schließlich ist Windows "Demand Paged" OS, was bedeutet, dass ... Jamie Hanrahan vor 6 Jahren 0
... es sind nur Seiten in Sachen, die Sie tatsächlich brauchen. Wenn Sie also zu einem langwierigen Prozess zurückkehren, bei dem einige Elemente ausgelagert werden, versucht er nicht automatisch, alles wieder einzuloggen. Das wäre dumm, und entgegen der landläufigen Meinung sind die Windows-Kernel-Leute nicht dumm. Es werden nur Seiten auf diesen Seiten angezeigt, auf die der Prozess tatsächlich zugreift. (Dasselbe passiert, wenn Sie eine App starten; die App wird nie als Ganzes geladen.) Selbst wenn sie tatsächlich viele GB aus verschiedenen Prozessen in die Auslagerungsdatei geschrieben hat, muss sie nicht alles lesen bevor Sie etwas anderes tun. Jamie Hanrahan vor 6 Jahren 0