Wie man Google-Chrom oder Chrom dazu bringt, weniger Speicher zu verbrauchen

13

Mein Computer hat nur 4 GB Speicher, und das Öffnen von 8-12 zufälligen Registerkarten auf Chrom oder Chrom friert meinen Computer häufig ein. Zur Zeit benutze ich google-chrome-stable --process-per-site. Dies hilft bis zu einem gewissen Grad. Gibt es eine Möglichkeit, Chrom oder Chrom in einem einzigen Prozess zu betreiben? Könnte mir jemand einige Tipps geben, wie man die übermäßige Speichernutzung von Chrome kontrolliert?

Crysoberil
quelle
Warum verwendet Chrome Ihrer Meinung nach mehr Speicher als benötigt? Moderne Browser wären extrem langsam, wenn sie nur einen einzigen Prozess verwenden würden. Was lässt Sie denken, dass Chrome weniger Speicher verbrauchen würde, wenn es nur ein einziger Prozess wäre?
Ramhound
Ich denke, als ich einmal nachgesehen habe, habe ich festgestellt, dass der IE in Bezug auf den Speicherbedarf viel besser ist. IE war eine Zeit lang ein Witz wie V6-V9 oder so bis etwa v10 oder v11. Sie sagen, dass die aktuelle Version nicht schlecht ist. Schau es dir an. Schauen Sie sich auch Opera an, das historisch gesehen nicht zu speicherhungrig war. Obwohl ich sagen muss, dass ich gerade den IE überprüft habe und in einem seiner Fälle 102 MB verwendet wurden. Das scheint viel zu sein. Aber wie auch immer, sehen Sie, ob der IE weniger als verwendet Chrom. Sie können sehr kleine Browser wie "off by one" ausprobieren, die jedoch möglicherweise nicht alle Seiten korrekt anzeigen.
Barlop
Auch wenn RAM teuer ist, ist mehr RAM eine gute Investition, wenn Sie wenig RAM haben. Das zahlt sich sofort aus!
Barlop
3
Chrome verbraucht von Natur aus viel Speicher. Der beste Weg, um Speicherplatz zu sparen, wäre die Verwendung eines anderen Browsers.
Qasdfdsaq
Wie Sie nicht angeben, können Sie unter Linux Swap als komprimierten RAM verwenden zram. Das Paket ist zram-config. Hilft bei der Vermeidung langer Einfrierungen.
Wassermann Macht

Antworten:

3

Es gibt ein Plugin, mit dem Sie Speicher für nicht verwendete offene Tabs schreiben können, um sie auszutauschen. Es gibt diese Speichermenge frei, sodass CHrome / Chrom weniger Speicher verbraucht.

Suchen Sie im Webstore der Plugins nach Tab-Suspender.

https://chrome.google.com/webstore/detail/tab-suspender/fiabciakcmgepblmdkmemdbbkilneeeh

Victor Vidal
quelle
es gibt auch "den großen Hosenträger" chrome.google.com/webstore/detail/the-great-suspender/…
Aquarius Power
aber dein vorschlag ist viel cooler, geändert, danke!
Wassermann Macht
3

Ich benutze cgroup folgendermaßen:

sudo cgcreate -a $USER:$USER -t $USER:$USER -g memory:groupChromiumMemLimit
sudo cgset -r memory.limit_in_bytes=$((1024*1024*1024)) groupChromiumMemLimit
cgexec -g memory:groupChromiumMemLimit chromium-browser

Das Chrom selbst kann manchmal etwas langsamer werden, da es zu tauschen scheint, aber es wird nicht das gesamte System daran hindern, andere Anwendungen zu tauschen, so dass nur Chrom / Chrom tauscht, sobald es "das 1-GB-Limit erreicht".

Aber ... wenn Sie sich htop ansehen, werden Sie viele Chromprozesse sehen, die den residenten Speicher etwas über 1 GB summieren. Ich denke, ich brauche mehr Informationen dazu.

Ich habe noch nicht versucht memory.soft_limit_in_byteszu sehen, ob es irgendwie hilft, wie in dem von /superuser//a/1168435/157532 bereitgestellten Link vorgeschlagen .

Insgesamt verbraucht Chrom jedoch viel weniger RAM als früher, und es wird eindeutig viel ausgetauscht, sodass diese cgroup-Befehle trotz allem, was ich bei htop sehen kann, funktionieren. Daher scheint cgroup zu versuchen, Chrom mit "nicht viel" zu verwenden mehr als 1 GB "was gut genug ist.

Wassermann-Kraft
quelle
1
topZeigt die Speichernutzung in Bytes, MB, GB oder TB an. Dies sind Potenzen von 1000, nicht 1024. Das ist wahrscheinlich der Grund, warum Sie sehen, dass es leicht über Ihrem Ziel liegt.
jcoffland
Wird dies auch weiterhin ein Neustart sein? Wie ist der Vergleich mit dieser Lösung , auf die geschrieben wird /sys/fs/cgroup/memory/myGroup/memory.limit_in_bytes?
Dan Dascalescu
1
@DanDascalescu Übrigens, ich denke, das funktioniert jetzt nicht sehr gut ... Chrom erzeugt mehr als 15 unabhängige Threads und dieses Limit würde für jeden Thread gelten (und nicht für alle wie ein Gruppenlimit). Ich werde versuchen, einen Weg zu finden, um ein Limit zu erstellen, das jeden Thread summiert und alle zusammen begrenzt (und nicht isoliert, wie es momentan zu sein scheint).
Aquarius Power vor
1

Ich habe das gleiche Problem und bin nicht allein: Chrome / Chromium verbraucht viel Speicher . Manchmal friert das System dadurch ein (in meinem Fall Linux Mint 17).

Lösung 1

Um dieses Problem zu umgehen, habe ich begonnen, diese Chrome-Erweiterung zu verwenden: den großen Hosenträger

Lösung 2

Es gibt jedoch mehrere andere Lösungen, beispielsweise Linuxcgroup ( https://gist.github.com/juanje/9861623 ).

andere Lösungen

Ich habe meine anderen Lösungen meiner ersten Antwort auf eine ähnliche Frage beigefügt .

Wie auch immer: Chrome ist ein guter (wahrscheinlich bester) Webbrowser, und Websites haben heutzutage hohe Anforderungen (viele JS, Canvas, SVG, eingebettetes Video, Web-Sockets ...). Der Versuch, einige Funktionen einzuschränken, ist keine gute Idee. Das einzige Problem, das ich zu lösen versuche (zumindest für mich): Niemand möchte in der Nähe eines gefrorenen Systems sitzen .

maxkoryukov
quelle