Jak sprawić, by Google Chrome lub Chrome zużywały mniej pamięci

13

Mój komputer ma tylko 4 GB pamięci, a otwieranie 8-12 losowych kart na chromie lub chromie często zawiesza mój komputer. Obecnie używam google-chrome-stable --process-per-site. To pomaga w pewnym stopniu. Czy jest jakiś sposób na uruchomienie chromu lub chromu w jednym procesie? Czy ktoś mógłby dać mi kilka wskazówek, jak kontrolować nadmierne zużycie pamięci przez chrome?

Crysoberil
źródło
Dlaczego uważasz, że Chrome zużywa więcej pamięci, niż potrzebuje? Nowoczesne przeglądarki byłyby bardzo wolne, gdyby korzystały tylko z jednego procesu. Co sprawia, że ​​uważasz, że Chrome zużyłby mniej pamięci, gdyby był to tylko jeden proces?
Ramhound,
Myślę, że pewnego razu sprawdziłem, że IE był znacznie lepszy pod względem zajmowanego miejsca w pamięci. IE był przez jakiś czas żartem jak V6-V9 lub coś takiego aż do wersji 10 lub 11. Mówią, że obecna wersja nie jest taka zła. Spójrz na to. Spójrz też na Operę, która historycznie nie była zbyt głodna pamięci. Chociaż muszę powiedzieć, że właśnie sprawdziłem IE i w jednym z jego przypadków użył 102 MB .. co wydaje się dużo ... ale w każdym razie, sprawdź, czy IE używa mniej niż chrom. Możesz wypróbować bardzo małe przeglądarki, takie jak „off by one”, ale mogą nie wyświetlać poprawnie wszystkich stron.
barlop,
Chociaż pamięć RAM jest droga, gdy brakuje jej, więcej pamięci RAM to dobra inwestycja, od razu się opłaca!
barlop
3
Chrome z natury zużywa dużo pamięci. Najlepszym sposobem na zaoszczędzenie pamięci byłoby użycie innej przeglądarki.
qasdfdsaq,
Jak nie określasz, w zramsystemie Linux możesz zamienić swap jako skompresowany RAM , pakiet to zram-config. Pomaga unikać długich zawieszeń.
Aquarius Power

Odpowiedzi:

3

Istnieje wtyczka, której można użyć do zapisania pamięci nieużywanych otwartych kart do zamiany. Zwalnia tę ilość pamięci, więc CHrome / chromium wykazuje mniejsze zużycie pamięci.

Wyszukaj Tab-suspender w sklepie internetowym wtyczek.

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

Victor Vidal
źródło
jest też „wielki szelki” chrome.google.com/webstore/detail/the-great-suspender/…
Aquarius Power
ale twoja sugestia jest o wiele fajniejsza, zmieniona na to, dzięki!
Aquarius Power
3

Używam cgroup w ten sposób:

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

Sam chrom może czasami być nieco spowolniony, ponieważ wydaje się, że zamienia, ale nie spowoduje zawieszenia całego systemu podczas wymiany innych aplikacji, więc tylko chrom / chrom zamieni się, gdy tylko „osiągnie limit 1 GB”.

Ale ... jeśli spojrzysz na htop, zobaczysz wiele procesów chromu, które sumują rezydentną pamięć nieco ponad 1 GB, myślę, że potrzebuję więcej informacji na ten temat.

nie próbowałem jeszcze memory.soft_limit_in_bytessprawdzić, czy to w jakiś sposób pomaga, jak sugeruje link podany przez /superuser//a/1168435/157532 .

ale ogólnie chrom zużywa znacznie mniej pamięci RAM niż kiedyś i jest wyraźnie wymieniany, więc te polecenia cgroup działają pomimo tego, co widzę na htopie, więc cgroup wydaje się próbować utrzymać chrom za pomocą „niewiele więcej niż 1 GB ”, co jest wystarczająco dobre.

Moc Wodnika
źródło
1
toppokazuje użycie pamięci w bajtach, MB, GB lub TB. Są to moce 1000, a nie 1024. Prawdopodobnie dlatego widzisz, że nieznacznie przewyższa twój cel.
jcoffland,
Czy to również będzie trwało ponowne uruchomienie? Jak to porównać z tym rozwiązaniem, które pisze /sys/fs/cgroup/memory/myGroup/memory.limit_in_bytes?
Dan Dascalescu
1
@ DanDascalescu btw, myślę, że to teraz nie działa bardzo dobrze ... chrom odradza ponad 15 niezależnych wątków i ten limit obowiązywałby dla każdego wątku (a nie limit dla nich wszystkich jak limit grupowy). Spróbuję znaleźć sposób, aby stworzyć limit, który sumuje każdy wątek i ograniczam je wszystkie razem (i nie izoluję tak, jak się wydaje obecnie).
Wodnik Moc
1

Mam ten sam problem i nie jestem sam: Chrome / Chromium zjada dużo pamięci . Czasami powoduje to zawieszanie się systemu (w moim przypadku Linux Mint 17).

rozwiązanie 1

Aby obejść ten problem, zacząłem używać tego rozszerzenia Chrome: the-great-suspender

rozwiązanie 2

Istnieje jednak kilka innych rozwiązań, na przykład Linuxcgroup ( https://gist.github.com/juanje/9861623 )

inne rozwiązania

Inne rozwiązania podłączyłem do mojej pierwszej odpowiedzi na podobne pytanie.

W każdym razie: Chrome to dobra (prawdopodobnie najlepsza) przeglądarka internetowa, a witryny mają dziś wysokie wymagania (dużo JS, canvas, SVG, osadzanie wideo, gniazda sieciowe ...). Próba ograniczenia niektórych funkcji - nie jest dobrym pomysłem. Jedyny problem, który próbuję rozwiązać (przynajmniej dla mnie): nikt nie chce siedzieć w pobliżu zamrożonego systemu .

maxkoryukov
źródło