Der Computer verwendet nicht mehr als 4 meiner 8 GB RAM ...? (64-Bit-Computer)


17

Kürzlich habe ich, um meinen Computer zukunftssicher zu machen, zusätzlich zu meinen ursprünglichen 4 GB Arbeitsspeicher hinzugefügt. Ich habe den Gesamtspeicher auf 8 GB erhöht und keine merkliche Änderung der Geschwindigkeit festgestellt - auch wenn dies der Fall sein sollte. Ich habe mir den Task-Manager angesehen und festgestellt, dass auf meinem Computer NICHT mehr als 4 GB Arbeitsspeicher verwendet werden, auch wenn Chrome und Firefox mit jeweils 20 Registerkarten geöffnet sind.

Nach der Recherche war alles, was jeder vorgeschlagen hatte, zu überprüfen, wie viel Speicher nutzbar war. Seltsamerweise heißt es, dass ich 8 GB Speicher habe und 7,74 GB verwendbar sind.

Die technischen Daten zu meinem HP Pavilion g7-1075dx finden Sie hier. Es ist ein Notebook-PC mit Windows 7 Home Premium 64-Bit mit AMD Phenom II.

Meine Hauptfrage lautet: Warum verwendet mein Computer mit meinem 64-Bit-Computer nicht mehr als 4 GB Arbeitsspeicher, auch wenn mehr als 7 verwendet werden können?

BEARBEITEN: wenn es hilft, beschreibt Resource Monitor den gesamten anderen RAM als "Standby"


1
Wie können Sie feststellen, dass nicht mehr als 4 GB verwendet werden? Haben Sie versucht, meine anderen Programme zu testen oder Speicher zu verwenden? Chrome und Firefox sind nicht so anspruchsvoll in
Bezug auf den

9
Bisher hat niemand erwähnt, dass mehr RAM einen Computer per se nicht schneller macht. Das einzige Mal, dass Sie einen spürbaren Geschwindigkeitsverlust bemerken, ist, dass Ihre Workload so viel RAM verbraucht, dass Windows kontinuierlich auf die Festplatte paginieren muss. In diesem Fall kann das Hinzufügen von mehr RAM die Dinge definitiv beschleunigen. Aber 98% der Leute tun nicht die Dinge, die> 4 GB RAM erfordern, und werden folglich keinen greifbaren Nutzen daraus ziehen, all diesen zusätzlichen RAM zu haben.
Mischa256

1
@mattycfp Es gibt eine andere Möglichkeit, von der ich weiß, dass sie die Windows-RAM-Nutzung einschränken kann. Ist es möglich, dass Sie, jemand anderes oder eine andere Software die RAM-Nutzung auf ein LIMIT begrenzt? Werfen Sie einen Blick auf diesen Artikel und folgen Sie den Anweisungen: helpdeskgeek.com/windows-7/...
misha256

1
Firefox hat ein Limit von 2 GB für alle Tabs / Prozesse, möglicherweise auch für Chrome. Dies gilt zusätzlich zum normalen Grenzwert pro Prozess.
James Ryan

6
Firefox und Chrome mit jeweils 20 Tabs zu öffnen, ist definitiv nicht genug. Ich habe Firefox mit 157 Tabs geöffnet, es verbraucht nicht einmal 1 GB RAM. Überprüfen Sie dies, während Sie die Spiele ausführen. Die Antwort von Jamie Hanrahan ist sehr gut und detailliert. Weitere Informationen finden Sie in Mark Russinovichs Blogbeitrag Pushing the limits of Windows. link .
sbecker

Antworten:


27

Wenn es hilft, beschreibt Resource Monitor den gesamten anderen RAM als "Standby".

"Standby" RAM wird verwendet. Es wird als Seiten-Cache verwendet (es enthält Seiten, die kürzlich von allen Prozessarbeitssätzen verloren gegangen sind, dh Seitenfehler, die behoben werden können, ohne auf die Festplatte zu gehen) und auch für das proaktive Datei-Cache von SuperFetch.

Es gilt als "verfügbar", da Standby-Seiten nicht auf die Festplatte geschrieben werden müssen, bevor sie einer anderen Verwendung zugewiesen werden können. Wenn ein Prozess auf einen Seitenfehler stößt, der das Lesen von der Festplatte erfordert, müssen diesem Prozess neue physische Seiten zugewiesen werden, und diese können bei Bedarf aus der Standby-Liste entnommen werden. (Dies ist nicht die erste Wahl, um Seiten für diesen Zweck zu finden, das wäre die freie und dann die Nullseitenliste.)

Mit anderen Worten, Ihr System funktioniert so, wie es sein sollte.

Mit dem Befehlszeilentool testlimit, einem der in den Experimenten in Windows Internals verwendeten Tools , können Sie Ihr System dazu zwingen, mehr Arbeitsspeicher in den Status "In Verwendung" zu versetzen . Es gehört nicht zu den regulären sysinternals-Tools, ist aber mit diesen verknüpft. Finden Sie es hier auf der Sysinternals-Site. Der Download ist eine Zip-Datei, die zwei Versionen enthält, testlimit.exe und testlimit64.exe. Beide sind für große Adressen ausgelegt, sodass die 32-Bit-Version auf einem 32-Bit-Computer, der mit / 3 GB gestartet wurde, bis zu 3 GB und auf einem 64-Bit-Computer bis zu 4 GB zuweisen kann.

c:\> testlimit -? gibt hilfe.

c:\> testlimit -d 4 -c 512Es wird versucht, 2 GB prozessprivaten virtuellen Adressraum in 512 Zuordnungen von jeweils 4 MB zuzuweisen. Dies sollte auf einem 64-Bit-Computer problemlos funktionieren. Auf einem 32-Bit-Rechner, der nicht mit / 3GB gebootet wurde (die meisten sind es nicht), kann es vorkommen, dass etwas früher ein Fehler auftritt (wie das Programm selbst, alle DLLs usw.) Für das Programm sind noch keine 2 GB verfügbar.

In beiden Fällen wird der "verfügbare" Arbeitsspeicher reduziert und der "in Verwendung" befindliche Arbeitsspeicher erhöht, jedoch nicht unbedingt um 2 GB, da nicht garantiert werden kann, dass das Betriebssystem alle 2 GB im Prozess-Private-Working-Set belässt. Selbst wenn dies kurzfristig der Fall sein sollte, kann es sein, dass die Anzahl der Prozesse später abnimmt, wenn das Betriebssystem entscheidet, "hm, Sie machen eigentlich nichts damit, andere Prozesse brauchen es mehr" und es wird ausgeblendet.

Erhöhen Sie die Größe der Zuweisung "Chunks" zu sehr, und reduzieren Sie die Anzahl der Chunks entsprechend. Dies wird wahrscheinlich früher fehlschlagen, da jede Zuweisung praktisch zusammenhängend sein muss. Versuchen Sie beispielsweise, sieben 512-MiB-Chunks in einem 4-GiB-Adressraum zu finden, und Sie werden wahrscheinlich scheitern.

Wenn Sie die Option l (eak) anstelle von d (irty) verwenden, weist das Programm den virtuellen Speicherplatz zu, verweist jedoch niemals darauf. Dies wird nicht in nennenswertem Rückgang des „verfügbar“ RAM zur Folge hat .

(Die Option d (irty) hat ihren Namen vom "Dirty Page Bit" im x86 / x64-Seitentabelleneintrag, der gesetzt wird, wenn auf die entsprechende virtuelle Seite mit einem Operanden im "Modify" -Stil zugegriffen wird, dh, der Inhalt der Seite hat Dies ist ein Hinweis von Windows, dass der Inhalt der Seite, falls diese aus dem Prozessarbeitssatz entfernt werden muss, irgendwo gespeichert werden muss, bevor die Seite für einen anderen Zweck verwendet werden kann die "Liste der geänderten Seiten" unmittelbar nach der Räumung; von dort aus schreibt Windows sie in die entsprechenden Sicherungsspeicher.)

Damit diese Tests wie oben beschrieben ausgeführt werden können, muss ausreichend "Festschreiben" verfügbar sein (auch für die Option l (eak), obwohl für diese Option keine nennenswerte Menge an RAM verwendet wird). Insbesondere sollte Ihr "Festschreibungslimit" mindestens 2 GB (oder wie viel Sie zuteilen) höher sein als die "Festschreibungsgebühr", bevor Sie mit dem Test beginnen. Beachten Sie, dass dies auch dann zutrifft, wenn Sie die Option l (eak) und nicht nur d (irty) verwenden. Wenn Sie dieses Limit überschreiten, werden Sie feststellen, dass Popups oder ähnliches mit dem Hinweis "Das System hat zu wenig Arbeitsspeicher" angezeigt werden. Die Lösung besteht natürlich darin, mehr RAM hinzuzufügen und / oder die Einstellungen für Auslagerungsdateien zu erhöhen.


16

Windows kann so konfiguriert werden, dass die RAM-Nutzung eingeschränkt wird. Ich weiß nicht, wie oder wer diese Einstellung auf Ihrem Laptop konfiguriert hätte, aber Sie sollten Folgendes überprüfen:

Max Ram Einstellung

Dieser Artikel enthält weitere Details, aber das Aufrufen des obigen Dialogfelds ist einfach:

  1. Klicken Sie auf das Startsymbol und geben Sie es msconfig.exein das Suchfeld ein

    wie man msconfig startet

  2. Starten Sie msconfig.exe, klicken Sie auf die BootRegisterkarte und dann auf die Advanced Options...Schaltfläche. Sie befinden sich in:

    msconfig boot settings dialog

  3. Geben Sie entweder einen sinnvollen Wert ein, z. B. 8192 für 8 GB RAM, oder deaktivieren Sie das Maximum memoryKontrollkästchen vollständig, damit Windows den gesamten verfügbaren RAM verwendet. Ich würde definitiv BEIDE Optionen ausprobieren.

    maximale RAM-Einstellung


@ misha256 - Tief verwirrt von einer Antwort, die ursprünglich sehr wenig Inhalt hatte, und ja, wenn jemand anderes eine der Antworten eingereicht hätte, hätte ich nicht einmal zweimal über die Antworten nachgedacht (außer vielleicht, wenn ich die Hilfsbereitschaft etwas schärfer beurteilt hätte).
Ramhound

@ misha256 Wenn dies das Problem wäre, würde OP nicht sehen, dass etwa 4 GB verwendet werden und etwa weitere 4 GB im Standby-Modus. Der von dieser Option ausgeschlossene Arbeitsspeicher wird im Standby-Modus nicht angezeigt. OP würde auch nicht sehen "8 GB Speicher und 7.74 GB ist verwendbar". (die 256 MB nicht "nutzbar" wird zB aufgrund der Grafikkarte erwartet).
Jamie Hanrahan

10

Sie können SysInternals RAMMap verwenden , um genau zu sehen, was der PC mit Ihrem physischen RAM macht. Andere Tools wie der Task-Manager oder der Prozess-Explorer konzentrieren sich hauptsächlich auf den virtuellen Speicher und sind nicht die besten Tools für diese Situation.

Auf der Registerkarte "Verwendungsanzahl" sehen Sie möglicherweise, dass große Teile nicht verwendet werden, obwohl Sie nicht viele Anwendungen geöffnet haben.

SysInternals RAMMap

Dies bedeutet nicht, dass Ihr PC jemals in diesem Zustand bleiben wird. Öffnen Sie einfach ein paar Programme und der Speicher wird verwendet.


Der Begriff "virtueller Arbeitsspeicher" sollte nicht verwendet werden. Ich würde auch nicht sagen, dass sich diese anderen Tools hauptsächlich auf den virtuellen Speicher konzentrieren - sie verfügen über zahlreiche Leistungsindikatoren, die die physische Speichernutzung anzeigen.
Jamie Hanrahan

5

Zitat aus einem sehr guten Artikel zum Thema:

Mehr Speicher erhöht die Verarbeitungsgeschwindigkeit [eines Computers] nicht wirklich. Das kann nur eine schnellere CPU.

Und meiner Erfahrung nach ist das im Allgemeinen absolut richtig. Wenn Sie nicht viele Programme gleichzeitig ausführen und diese Programme erhebliche RAM-Anforderungen haben, werden Sie kaum einen echten Nutzen davon sehen, mehr als 4 GB RAM zu haben.

Die Leute scheinen nicht zu begreifen, dass 4 GB verdammt viel RAM ist. Es ist mühsam, Windows stärker zu nutzen. Sie müssen viele verschiedene Apps öffnen und in diesen Apps einige große Dateien öffnen. Wenn Sie ein paar Tabs mit YouTube-Videos einwerfen, sehen Sie möglicherweise eine Auslastung von> 4 GB.


2
@mattycfp Ich habe gerade 16 Windows auf meinem 4-GB-Computer geöffnet, einschließlich Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (ein bekanntes RAM-Problem), Photoshop, Media Player, VLC, MPC-HC, plus einige andere zufällige Apps, und ich wechsle zwischen ihnen, um Dinge zu erledigen, Dokumente zu laden, Videos abzuspielen, alles, und meine tatsächliche RAM-Auslastung beträgt 2,2 GB UND der Computer ist SCHNELL wie immer. Sehen Sie, 4 GB macht alles so einfach ;-)
misha256

3
@mattycfp 120 Windows von FF? Besonders auf einem Laptop ist es wahrscheinlicher, dass Sie Ihre CPU voll ausschöpfen als den Arbeitsspeicher. Vergessen Sie auch nicht, dass FF eine 32-Bit-App ist und dass mehrere FF-Fenster tatsächlich einen einzelnen 32-Bit-Prozess TEILEN. FF ist also recht begrenzt und kann nur 2 GB Ihrer insgesamt 8 GB verwenden. Aus diesem Grund müssen Sie viele verschiedene Apps gleichzeitig ausführen , um zu testen, wie Windows Ihren Arbeitsspeicher verwendet, und nicht nur 120 Windows FF.
Mischa256

4
@ misha256 Sie werden Leistungssteigerungen sehen, wenn Ihr System ständig Speicher austauscht. Wenn der Speicherdruck zunimmt, nimmt der Seitenwechsel zu und das System wird langsamer. Es ist nicht so, dass Sie durch das Hinzufügen von Speicher schneller werden, aber es verhindert , dass Sie langsamer werden, insbesondere wenn die betroffene Software eine bestimmte Menge an Paging in ihren Systemanforderungen voraussetzt. Dieser Artikel schien nicht viel über Paging zu erwähnen. Paging ist das, was Sie verlangsamt.
Phyrfox

4
@ misha256 Ich habe IRC, Spotify, Notepad ++, Chrome und den Task-Manager geöffnet und verwende 3,02 GB von meinen insgesamt 4 GB :( Eröffne 3 VS2013-Instanzen (was ich normalerweise bei der Arbeit mache), und das schöpft mich aus. Es ist Es ist ein bisschen einfacher, das Limit von 4 GB zu erreichen, als man denkt, erfordert aber praktisch einen Power-User.
Thebluefish

1
@ misha256 Korrektur: FF unterstützt große Adressen und kann in einem 32-Bit-Prozess bis zu 3 GB adressieren. Die 64-Bit-Version von FF (derzeit in der Beta-Version für Windows) kann offensichtlich weitaus mehr. Ich habe auch das Gefühl, dass Sie etwas zu viel verallgemeinern, wenn Sie sagen, dass es schwierig ist, mehr als 4 GB RAM (resident private working set) zu "verwenden". es kommt wirklich sehr darauf an, was du tust und wie viel du offen hältst. Meine Baseline-Nutzung übersteigt dies bereits.
Bob

5

Windows macht einige clevere Sachen wie Paging-Speicher. Möglicherweise werden die meisten Aufgaben, die Sie ausführen, als unnötig angesehen, und es wird beschlossen, eine Menge Daten in die Auslagerungsdatei zu schreiben, um zu vermeiden, dass der gesamte Arbeitsspeicher belegt wird. Sie können diese Theorie testen, indem Sie das Paging deaktivieren, obwohl Sie dies nicht permanent konfigurieren sollten. Es gibt viele Anleitungen im Internet, um dies zu tun. Unter anderem werden die Paging-Regeln bei einem Verbrauch von ca. 50%, 80% und 90% (bei diesen Zahlen handelt es sich um ungefähre Werte) verschärft (auch bei meinen 24-GB- und 64-GB-Computern). Ich habe bemerkt, dass in jeder dieser Phasen eine Menge Dinge in die Auslagerungsdatei geladen werden.

Eine lustige Sache könnte so etwas sein:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

Das ist ein C-Code. Holen Sie sich GCC oder einen Compiler, machen Sie sich eine Exe und beobachten Sie, wie der Speicherverbrauch steigt. Wenn Sie mehr als 2 GB Arbeitsspeicher benötigen möchten, müssen Sie diesen als 64-Bit-Prozess kompilieren und ausführen. Wenn Sie so etwas mögen, könnte es ein interessantes Experiment sein, wenn nichts anderes :)

Bearbeiten: Ich wollte nur feststellen, dass das Programm damit nicht stirbt. Ich habe es von einem früheren Code bearbeitet, da ich nicht sicher bin, ob ein anderer Code funktioniert hätte (der Speicher würde ausgelagert, was dazu führt, dass kein Speicher belegt wird, lol). Der neue Code enthält eine Zeile. int gb = 2; // memory to consume in GBWenn Sie die 2 ändern, wird die Menge an Speicher angepasst, die das Programm verbrauchen soll. Sie können also festlegen, dass so viel Speicher verbraucht wird, wie Sie möchten. Wenn Sie einen höheren Wert als den Ihres Systems einstellen, stürzt das System wahrscheinlich ab (nicht getestet, daher mit Vorsicht verwenden).


Ich wünschte, ich könnte es kompilieren, aber mein Internet
beschädigt weiterhin

5
@mattycfp Sie können also nicht mehr als 4 GB RAM in Ihrem Betriebssystem verwenden und alle Ihre Downloads sind weiterhin fehlerhaft? Zeit, um (a) die Festplatte zu wischen und ein neues Betriebssystem zu installieren, oder (b) den Laptop in den Papierkorb zu werfen und bereits einen richtigen zu besorgen.
Mischa256

1
Das angebotene Programm reserviert und "berührt" 2 GB virtuellen Speicher seitenweise, was dazu führt, dass jede Seite sofort nach der Zuweisung in den Arbeitsspeicher verschoben wird. Dies garantiert jedoch nicht, dass Windows alles gleichzeitig im RAM belässt. Da das Programm nicht wiederholt auf alle vm zugreift, können die zuerst zugewiesenen Seiten ausgelagert werden. Sie können den gleichen Effekt wie dieses Programm mit dem Windows Internals-Tool "testlimit", Option -d, erzielen.
Jamie Hanrahan

@mattycfp Wenn das der Fall ist, möchten Sie vielleicht sehen, dass der RAM nicht fehlerhaft ist ... Wird jede heruntergeladene Datei irgendwie beschädigt? Manchmal treten auch Probleme mit inkompatiblen Sticks auf. Überprüfen Sie daher im Handbuch des Motherboards, ob Ihr RAM gemäß diesen Anweisungen organisiert ist derselbe "Typ" oder "Fabrikat und Modell" des RAM, wie bei 2 und 4). & Ja, dieses Programm sollte 2 GB int gb = 2; // memory to consume in GB
belegen und

Warum hast du gb als vom Typ int deklariert, wenn die einzige Verwendung es auf unsigned long umwandelt? Sie behandeln mich genauso und führen einen gemischten Vergleich zwischen dem int und dem cast-to ohne Vorzeichen durch. Also mache ich auch einfach lange ohne Vorzeichen.
JDługosz

1

Verwenden Sie ein 32-Bit-Programm, um zu testen, wie schnell der Computer ausgeführt wird? Beachten Sie in diesem Fall, dass 32-Bit-Adressen nur auf 4 GB RAM verweisen können, selbst wenn mehr RAM vorhanden ist. Sie müssen den Test mit einem 64-Bit-Programm wiederholen und die Geschwindigkeit mit 4 GB RAM und erneut mit 8 GB RAM prüfen, wenn Sie nützliche Ergebnisse erzielen möchten. Außerdem muss es sich um ein 64-Bit-Programm handeln, das mehr als 4 GB Arbeitsspeicher benötigt, um schneller zu arbeiten - nicht alle können dies. Um festzustellen, ob es sich bei einem Programm um ein 32-Bit-Programm handelt, starten Sie das Programm und lassen Sie es laufen. Starten Sie dann den Windows Task-Manager, klicken Sie auf Prozesse und scrollen Sie nach unten, bis Sie das gewünschte Programm gefunden haben. Wenn auf den Namen des Programms in der Spalte "Bildname" ein Leerzeichen * 32 folgt, handelt es sich um ein 32-Bit-Programm.


Wenn Sie mehrere 32-Bit-Programme ausführen, kann deren RAM-Auslastung leicht 8 GB erreichen.
Jamie Hanrahan

0

Laden Sie den Process Explorer (procexp) von Sysinternals herunter . Es verfügt über ein Ressourcendiagramm und kann die Speichernutzung pro Prozess anzeigen, viel besser als die Bestandsanzeige.

Sie können die physische RAM-Nutzung im Vergleich zur Nutzung virtueller Speicherkapazitäten betrachten, um festzustellen, ob Sie einfach nicht alles verbrauchen oder anscheinend mehr benötigen, aber die physische Nutzung einschränken.

Die meisten weltlichen Programme verwenden eine andere Größe der Arbeitsmenge , um die Nachfrage gering zu halten. Wenn ein Programm eine Tonne Speicher reserviert ist es nicht wirklich mit all dem zugleich ...

Windows verschiebt Seiten aus Ihrem Programm automatisch in eine Liste, in der sie verfügbar sind. Tritt jedoch ein Seitenfehler auf, wird die Seite aus der Liste entfernt, ohne dass Sie sie aus der Auslagerungsdatei laden müssen. Im Standby-Modus sind diese möglicherweise enthalten. Unterschiedliche Werkzeuge kennzeichnen unterschiedliche Sets auf unterschiedliche Weise.

Sie können zumindest für diesen Test versuchen, die Auslagerungsdatei zu deaktivieren. Dadurch wird der Datenspeicher wirklich verwendet. Allerdings könnte procexp ausreichen, um dies klar zu erkennen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.