Warum ist der Cache in meinem Speicher immer voll?

13

Ich habe 6GB RAM, i5 2.4GHZ Prozessor mit Ubuntu 11.10. Ich habe meine Festplatte so partitioniert, dass ich 8 GB Swap habe.

Wenn ich online streame oder in Chromium mehrere Tabs öffne, habe ich bald 4 GB Speicher im Cache. Und ich denke, das macht mein Notebook langsam. Wenn Sie ein Video streamen, wird es nach einigen Minuten sehr langsam und stolpert / ruckelt.

Woran könnte das liegen? Wie kann ich das lösen?

PS: Anfangs hatte ich 4 GB und vor kurzem ein Upgrade auf 6 GB, aber ich habe keine signifikante Änderung erfahren.

PPS: free -gim Terminal druckt dies:

               total       used       free     shared    buffers     cached
Mem:             5          2          3          0          0          0
-/+ buffers/cache:          1          4
Swap:            8          0          8
Tobias
quelle
Was meinst du mit "RAM Cache" und wie sagst du, dass es voll wird?
Sergey
Können Sie bitte free -g(im Terminal) ausführen, wenn Sie auf das Problem stoßen, und die Ausgabe des Befehls in Ihre Frage aufnehmen?
Portablejim
Auf meinem oberen Bedienfeld befindet sich ein Applet, das die RAM- und CPU-Auslastung grafisch anzeigt. Wenn ich darauf klicke, heißt es: "Mem: 2GB Cache 4GB"
Tobias
1
free -gsagt, Sie haben 3 GB freien RAM. Der Speicher ist nicht Ihr Problem!
ams
Ok, danke, dass du das geklärt hast, aber vielleicht, weil ich in diesem Moment nicht online gestreamt habe? Ich hatte gerade Chrom laufen.
Tobias

Antworten:

13

Das Zwischenspeichern von Daten im RAM soll die Dinge beschleunigen und nicht verlangsamen - das wiederholte Abrufen von Dingen von der Festplatte, wenn Sie nicht genutzten Speicher haben, ist einfach albern. Wenn Sie jedoch in den Swap-Bereich eindringen, wird dies die Leistung beeinträchtigen. Sie können leicht feststellen, ob Sie einen Swap verwenden, indem Sie ausführen System Monitor. Wenn das Swap-Space-Diagramm zu dem Zeitpunkt, an dem das Problem auftritt, nicht ansteigt, hängt das Problem nicht mit dem Speicher zusammen.

Wenn Sie ein Video streamen, wird es zwar im Arbeitsspeicher zwischengespeichert, aber es braucht eine Menge Video, um 6 GB zu füllen! Ich würde erwarten, dass es mehr als nur ein paar Minuten dauert, um so viele Daten herunterzuladen, und noch viel mehr, um ein Problem zu verursachen!

Sind Sie sicher, dass etwas anderes nicht das Problem ist? Sagen wir, vielleicht kühlen? Viele Notebooks haben Prozessoren, die im Vergleich zum Kühlsystem zu stark ausgelastet sind. Dies ist gut - es bietet eine hohe Spitzenleistung, ist gut für störenden Datenverkehr und hält gleichzeitig die Datenmenge niedrig - aber es kann die Leistung nicht lange aufrechterhalten, bevor es gezwungen ist, die Taktrate zurückzurufen oder zu schmelzen. Video kann ziemlich prozessorintensiv sein, also weißt du es nie?

Wie auch immer, Sie sollten an der Speichernutzung erkennen können, ob es sich um einen Austausch handelt oder nicht. Wenn dies der Fall ist, handelt es sich um ein Softwareproblem, das behoben werden kann. :)

ams
quelle
Ich verwende nur 1,8% von SWAP. Kühlung ist nicht das Problem, da ich ein Kühlkissen mit zwei Lüftern habe. Ich weiß, dass Video prozessorintensiv ist, aber i5 Quad Core 2,4 GH und 6 GB RAM sollten definitiv für reibungsloses Streaming ausreichen.
Tobias
1,8% von Swap deuten darauf hin, dass Ihr Problem nicht darin besteht, dass Ihnen der Arbeitsspeicher ausgeht. Ich stimme zu, solange Ihr Prozessor nicht gedrosselt wurde, sollte er in der Lage sein, die Arbeit zu erledigen.
ams
Ok als vielleicht ist es der Browser selbst?
Tobias
Vielen Dank für Ihre Antworten. Ich werde versuchen, einen anderen Browser zu verwenden, und Ihnen mitteilen, ob das Problem weiterhin besteht. Nochmals vielen Dank, Sie waren sehr hilfsbereit und nett, ich weiß es wirklich zu schätzen!
Tobias
11

Ich habe das gleiche Problem, es scheint, dass der Cache nie freigegeben wird ... Ein Beispiel war, als ich ein Repository ausgecheckt habe und am Ende einen Cache von 4 GB hatte

Beispiel:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       7425        523          0        112       4433
-/+ buffers/cache:       2879       5069
Swap:         7627          2       7625

Was ich getan habe, war, den folgenden Code auszuführen (die Kommentare sind nur so, dass Sie wissen, was los ist). Sie können ein Skript erstellen, damit Sie es ausführen können, wenn Sie es brauchen:

# To free pagecache:
#         echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
#         echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
#         echo 3 > /proc/sys/vm/drop_caches
sudo sync && sudo sysctl -w vm.drop_caches=3

Nachdem ich den obigen Code ausgeführt habe:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       2820       5129          0          2        407
-/+ buffers/cache:       2409       5539
Swap:         7627          2       7625
Carlo
quelle
4
Dies ist kein Problem. So funktioniert der Seiten-Cache. Es wird die Dinge so lange wie möglich im Cache halten, aber Objekte automatisch freigeben, wenn der Speicherdruck von anderen Anwendungen zunimmt. Ein manuelles Aufräumen ist nicht erforderlich.
Caesium
5
Es mag sein, aber in diesem Fall ist der Algorithmus nicht so gut. Warum sollte ich mehr als 4 GB Cache haben und Swap verwenden?
Carlo
Zu diesem Thema gefällt mir dieser Artikel: Link
Carlo
1
In meinem aktuellen Fall checke ich ein riesiges Repository aus und alle Dateien werden zwischengespeichert, bis sie den Speicher voll haben. Sobald sie dort sind, werden sie ausgetauscht, anstatt den Cache freizugeben ...
Carlo,
Früher habe ich mich für die Kernel-Entwicklung interessiert. Ich bin mir ziemlich sicher, dass dies immer noch "beabsichtigt" ist. Wenn der Kernel der Ansicht ist, dass auf einen Teil einer Datei mit höherer Wahrscheinlichkeit bald wieder zugegriffen wird als auf einige anonyme Daten, werden die anon-Daten ausgetauscht und der Seiten-Cache beibehalten. Ob es darum geht, die richtige Entscheidung zu treffen, ist natürlich eine andere Frage :)
Steve Dee
0

Mein Vorschlag wäre, einen beliebigen Prozess-Explorer (z. B. System Monitor) auszuführen und zu überprüfen, welcher Prozess so viel Speicher verbraucht. poste es hier und wir werden sehen, ob du es ausschalten kannst.

ps. ok, ich verstehe es jetzt. Ich wette, sein 'Plugin-Container' wächst mit der Zeit aufgrund der Art und Weise, wie er den Speicher verwendet. Ich denke, es ist eine Portierung vom Gill Bates-System;). Es hilft nicht, es zu töten (wenn Sie es töten, stürzen Sie alle Animationen auf jeder Seite ab, hauptsächlich Anzeigen, aber auch Youtube-Videos). Chromium selbst liebt es, mit der Zeit aufzublähen, so dass der einzige Weg, um damit umzugehen, wahrscheinlich darin besteht, es von Zeit zu Zeit neu zu starten. Mal sehen, ob es hilft ...

Adam Kroczyk
quelle
Wenn ich den Browser neu starte, läuft das Streaming zwar wieder reibungslos, aber nur für 10 Minuten. Dann muss ich den Browser neu starten.
Tobias
Die verwendeten Prozesse: Chrom 250 MB Chrom 214 MB Chrom 150 MB, Compiz 119 MB, Zeitgeist-Daemon 111 MB, Chrom 70 MB, exe 24% der CPU und 60 MB, Rhythmbox 50 MB, Ubuntuone-Syndaemon 26 MB usw.
Tobias
Ihr Problem kann möglicherweise vom Browser selbst verursacht werden. Erwägen Sie den Wechsel zu Firefox oder einem beliebigen anderen Browser. Laut Meinung der Nutzer über das Internet verbraucht Chromium etwa dreimal mehr Speicher als jeder andere Browser. Versuche es. Installieren Sie, öffnen Sie die gleiche Anzahl von Registerkarten und vergleichen Sie ...
Adam Kroczyk
Ich werde das tun. Vielen Dank für den Vorschlag. alles gute
Tobias