Mon ordinateur n'a que 4 Go de mémoire, et l'ouverture de 8 à 12 onglets aléatoires sur chrome ou chrome gèle souvent mon ordinateur. Actuellement, j'utilise google-chrome-stable --process-per-site
. Cela aide dans une certaine mesure. Existe-t-il un moyen d'exécuter Chrome ou Chrome dans un seul processus ? Quelqu'un peut-il me donner des conseils sur la façon de contrôler l'utilisation excessive de la mémoire par Chrome ?
Réponses
Trop de publicités?J'utilise le cgroup de cette façon :
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
Le chrome lui-même peut être quelque peu ralenti parfois, car il semble faire des échanges, mais il ne va pas bloquer tout le système en faisant des échanges avec d'autres applications, donc juste le chrome/chrome fera des échanges dès qu'il "atteint la limite de 1GB".
Mais... si vous regardez htop, vous verrez de nombreux processus chrome qui totalisent la mémoire résidente un peu au-delà de 1 Go, je pense que j'ai besoin de plus d'informations à ce sujet.
Je n'ai pas encore essayé memory.soft_limit_in_bytes
pour voir si cela aide d'une manière ou d'une autre, comme le suggère le lien fourni par https://superuser.com/a/1168435/157532 .
mais dans l'ensemble, chrome utilise beaucoup moins de RAM qu'avant, et il est clair qu'il y a beaucoup d'échanges, donc ces commandes cgroup fonctionnent malgré ce que je peux voir à htop, donc cgroup semble essayer de faire en sorte que chrome utilise "pas beaucoup plus de 1GB" ce qui est suffisant.
Il existe un plugin que vous pouvez utiliser pour écrire la mémoire des onglets ouverts non utilisés dans le swap. Il libère cette quantité de mémoire, de sorte que CHrome/chromium affiche une consommation de mémoire moindre.
Recherchez Tab-suspender sur la boutique en ligne des plugins.
https://chrome.google.com/webstore/detail/tab-suspender/fiabciakcmgepblmdkmemdbbkilneeeh
J'ai le même problème, et je ne suis pas le seul : Chrome/Chromium consomme beaucoup de mémoire . Parfois, cela provoque le gel du système (dans mon cas, Linux Mint 17).
solution 1
Comme solution de rechange, j'ai commencé à utiliser cette extension Chrome : le-grand-suspender
solution 2
Mais il existe plusieurs autres solutions, par exemple linux cgroup
( https://gist.github.com/juanje/9861623 )
autres solutions
J'ai joint mes autres solutions à mon première réponse à une question similaire.
De toute façon : Chrome est un bon (probablement le meilleur) navigateur web, et les sites d'aujourd'hui ont des exigences élevées (beaucoup de JS, canvas, SVG, vidéo intégrée, web-sockets ). Essayer de réduire certaines fonctionnalités n'est pas une bonne idée. Le seul problème que j'essaie de résoudre (du moins pour moi) : personne ne veut s'asseoir près d'un système gelé .
Il y a quelques autres options de Chromium que vous pouvez utiliser :
- Depuis Chromium 67, vous pouvez également vouloir désactiver Isolation du site pour économiser encore 9-11%, en utilisant
--disable-site-isolation-trials
ou l'option de ligne de commande suivante :chrome://flags/#site-isolation-trial-opt-out
; - Vous pouvez limiter explicitement le nombre de processus de rendu en utilisant la méthode suivante
--renderer-process-limit=2
option de ligne de commande . Il mettra toutes vos extensions dans un seul processus et s'assurera qu'un seul processus est utilisé pour tous les onglets également. Il n'a pas amélioré l'utilisation de la mémoire dans mon cas, mais je suppose que cela dépend du type et de la quantité d'extensions que vous utilisez, donc il peut être utile dans l'ensemble ; - Maintenant, si vous voulez vraiment vraiment si vous voulez que votre Chrome-like utilise moins de mémoire quoi qu'il arrive, vous pouvez mode d'activer l'appareil en mode bas de mode . Il forcera votre navigateur à penser que vous utilisez un appareil Android de mauvaise qualité, et il sera donc effacement de la mémoire cache des onglets inactifs y utilisation de couleurs 16 bits (65 536) pour les images . L'option est
--enable-low-end-device-mode
.
Enfin, il y a est a --single-process
option, mais c'est non supporté officiellement Il n'est donc pas garanti qu'il fonctionne, mais on peut toujours l'utiliser. plus d'un seul processus et peut causer problèmes supplémentaires de performance ou de stabilité . L'utilisation d'un plus grand nombre d'options prises en charge ci-dessus vous permettra d'obtenir un meilleur équilibre entre les performances et l'utilisation de la mémoire.
Attention !
La plupart de ces options réduisent la sécurité de votre navigateur ! Vous les utilisez à vos risques et périls.
Je testais ces options sur Vivaldi 3.3 (Chrome 85) avec 5 onglets Super Utilisateur, 3 autres onglets et 4 extensions. Voici les résultats que j'ai obtenus :
Default: 24 processes, ~920 MB
Default - Site Isolation: 19 processes, ~835 MB, -9%
Process per Site: 19 processes, ~770 MB, -16%
Process per Site - Site Isolation: 13 processes, ~665 MB, -27%
Process per Site - Site Isolation + Renderer Limit: 10 processes, ~665 MB, -27%
À titre d'exemple extrême, j'utilise Chromium uniquement pour Gmail (en mode application) avec quelques extensions Chrome pour Gmail. Pour réduire l'empreinte mémoire, j'ai défini le paramètre --single-process
ce qui est logique dans des cas comme celui-ci.
Je n'utilise pas Chromium pour autre chose, mais si ce n'est pas votre cas, vous pouvez changer le répertoire des données utilisateur pour la fenêtre du mode application, de sorte que celle-ci et la fenêtre du navigateur ordinaire fonctionnent sur des processus séparés. avec seulement la fenêtre de l'application en mode processus unique . Voici les lignes pertinentes de mon Gmail.desktop
fichier :
Exec=/usr/bin/chromium-browser --single-process --class=gmail --user-data-dir=.config/gmail --app=https://mail.google.com/mail
StartupWMClass=gmail
- Réponses précédentes
- Plus de réponses