GNU/Linux >> Tutoriels Linux >  >> Linux

Navigateur Chromium :dépasser la limite de données ?

J'ai défini ulimit dans /etc/security/limits.conf . Lorsque je me connecte à mon environnement de bureau en tant qu'utilisateur testuser normalement (en utilisant slim login gestionnaire), tout fonctionne bien.

Lorsque je me connecte en tant qu'utilisateur testuser via Xephyr (de mon autre session en tant qu'autre utilisateur), tout fonctionne bien sauf chromium navigateur. C'est l'erreur que j'obtiens dans dmesg :

Chrome_ChildIOT (2472): VmData 4310827008 exceed data ulimit 4294967296. Update limits or use boot option ignore_rlimit_data.

Et le chrome est inutilisable (il démarre, mais attend indéfiniment pour charger n'importe quelle page)

Tous les autres programmes sauf chromium fixer des limites correctes. J'ai vérifié cela en utilisant :

find /proc/ -maxdepth 1 -user testuser -exec cat {}/limits ; | grep 'Max data size'

tous les PIDs avoir Max data size défini sur illimité :

Max data size             unlimited            unlimited            bytes

sauf chromium processus :

Max data size             4294967296           4294967296           bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes  

J'aimerais comprendre :

1) pourquoi le chromium ont des limites différentes de celles de tous les autres programmes ?

2) d'où viennent les limites "par défaut" (d'où le chrome prend-il la limite 4294967296 de ?

3) comment puis-je modifier ces limites par défaut une fois pour toutes, globalement, pour tous les processus, qu'ils utilisent pam ou non ?

Réponse acceptée :

  1. Pourquoi Chrome a-t-il des limites différentes de celles de tous les autres programmes ?

Chromium peut ressembler à une application simple mais ce n'est pas le cas, d'abord il y a le multi-threading qui fait que chromium exécute plusieurs processus pour différentes tâches (extensions, onglet, moteur Web principal, etc.) puis la virtualisation, chromium utilise de nombreux bacs à sable pour isoler les activités de navigation qui lui font utiliser plus de ressources que d'autres applications, de plus le moteur Web utilisé n'est pas léger… ajoutez à cela les différentes bibliothèques nécessaires au fonctionnement et autres fonctions lourdes de ressources… certaines documentations connexes sont disponibles ici, ici et cet article contiennent des informations utiles.

  1. D'où viennent les limites "par défaut" (d'où le chrome tire-t-il la limite 4294967296 ?

4294967296 octets (4096 Mo ou limite de 4 Go) le chrome a par conception une limite de 4 Go, c'est codé en dur, plus d'informations à ce sujet sont disponibles ici et ici

  1. Comment puis-je modifier ces limites par défaut une fois pour toutes, globalement, pour tous les processus, qu'ils utilisent pam ou non ?

Ce n'est pas une tâche facile, mais vous le faites correctement pour la plupart des processus habituels, maintenant pour les processus compliqués comme le chrome, vous devez personnaliser votre configuration pour chaque application "spéciale".

Connexe :Linux – La synchronisation de l'heure NTP prend beaucoup de temps ?

Pour le chrome, certains paramètres de commande peuvent être utilisés pour personnaliser/activer/désactiver des fonctionnalités, vous pouvez essayer d'en utiliser certains pour adapter le chrome à vos besoins, voici quelques commutateurs intéressants :

Ces commutateurs peuvent être utilisés avec une ligne de commande comme celle-ci /usr/bin/chromium --single-process

--single-process
--aggressive-tab-discard
--aggressive-cache-discard
--ui-compositor-memory-limit-when-visible-mb
--disk-cache-dir  # Use a specific disk cache location, rather than one derived from the UserDatadir.
--disk-cache-size  # Forces the maximum disk space to be used by the disk cache, in bytes.
--force-gpu-mem-available-mb  # Sets the total amount of memory that may be allocated for GPU resources
--gpu-program-cache-size-kb  # Sets the maximum size of the in-memory gpu program cache, in kb
--mem-pressure-system-reserved-kb  # Some platforms typically have very little 'free' memory, but plenty is available in buffers+cached. For such platforms, configure this amount as the portion of buffers+cached memory that should be treated as unavailable. If this switch is not used, a simple pressure heuristic based purely on free memory will be used.
--renderer-process-limit  # Overrides the default/calculated limit to the number of renderer processes. Very high values for this setting can lead to high memory/resource usage or instability.

Vous pouvez également exécuter chromium avec un script qui met à jour l'ulimit correspondant (notez que les valeurs inférieures à 4 Go peuvent faire planter le navigateur…)

ulimit -Sv 4352000000 #4.2GB
/usr/bin/chromium

# or 0.42GB, it works but the browser may crash
#ulimit -Sv 435200000 #0.42GB
#/usr/bin/chromium

Linux
  1. Comment installer le navigateur Web Chromium sur RHEL7 Linux

  2. Installation du navigateur Ubuntu 20.04 Chromium

  3. Comment installer le navigateur Chromium via PPA dans Ubuntu 20.04, 20.10

  4. Installer Chromium sur CentOS 8 - Un guide étape par étape ?

  5. Comment installer le navigateur Chromium sur Fedora 23

Installer le navigateur Chromium sur Linux mint 20.1 Ulyssa

Comment installer le navigateur Chromium sur AlmaLinux 8

Comment installer le navigateur Chromium sur AlmaLinux 8

Comment installer le navigateur Web Chromium sur Debian 10

Comment installer le navigateur Chromium sur Debian 11

Comment installer le navigateur Chromium sur Debian 11 "Bullseye"