GNU/Linux >> Znalost Linux >  >> Linux

Prohlížeč Chromium:Překročili jste limit dat?

Nastavil jsem ulimit v /etc/security/limits.conf . Když se přihlásím do svého desktopového prostředí jako uživatel testuser normálně (pomocí tenkého login manažer), vše funguje dobře.

Když se přihlásím jako uživatel testuser přes Xephyr (z mé jiné relace jako jiný uživatel), vše funguje dobře kromě chromium prohlížeč. Toto je chyba, kterou dostávám v dmesg :

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

A chromium je nepoužitelný (spustí se, ale nekonečně dlouho čeká na načtení jakékoli stránky)

Všechny ostatní programy kromě chromium mít nastavené správné limity. Ověřil jsem to pomocí:

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

všechny PIDs mít Max data size nastaveno na neomezené:

Max data size             unlimited            unlimited            bytes

kromě chromium procesy:

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  

Rád bych pochopil:

1) proč chromium mají jiné limity než všechny ostatní programy?

2) odkud pocházejí „výchozí“ limity (odkud bere chrom limit 4294967296 od ?

3) Jak mohu změnit tyto výchozí limity jednou provždy, globálně, pro všechny procesy bez ohledu na to, zda používají pam nebo ne?

Přijatá odpověď:

  1. Proč má chrom jiné limity než všechny ostatní programy?

Chromium může vypadat jako jednoduchá aplikace, ale není tomu tak, nejprve je zde multi-threading, díky kterému chromium spouští více procesů pro různé úlohy (rozšíření, karta, hlavní webový engine atd.), pak virtualizace, chrom používá mnoho sandboxů k izolaci. aktivity procházení, díky kterým využívá více zdrojů než jiná aplikace, také použitý webový engine není lehký… přidejte k tomu různé potřebné knihovny, které jsou nutné ke spuštění, a další funkce těžkých zdrojů… některé související dokumentace jsou k dispozici zde, zde a tento článek obsahují užitečné informace.

  1. Odkud pocházejí „výchozí“ limity (odkud chrom bere limit 4294967296?

4294967296 bajtů (4096 MB nebo limit 4 GB) chromu má podle návrhu limit 4 GB, toto je pevně zakódováno, další informace o tom jsou k dispozici zde a zde

  1. Jak mohu změnit tyto výchozí limity jednou provždy, globálně, pro všechny procesy bez ohledu na to, zda používají pam nebo ne?

Není to snadný úkol, ale pro většinu běžných procesů to děláte správně, nyní pro komplikovaný proces, jako je chromium, musíte přizpůsobit konfiguraci pro každou „speciální“ aplikaci.

Související:Linux – synchronizace času NTP trvá dlouho?

Pro chromium existují některé parametry příkazů, které lze použít k přizpůsobení/aktivaci/deaktivaci funkcí. Některé z nich můžete zkusit použít k tomu, aby chrom vyhovoval vašim potřebám, zde je několik zajímavých přepínačů:

Tyto přepínače lze použít s příkazovým řádkem, jako je tento /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.

Chromium můžete také spustit pomocí skriptu, který pro něj aktualizuje ulimit (všimněte si, že hodnoty nižší než 4 GB mohou způsobit selhání prohlížeče…)

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. Jak nainstalovat webový prohlížeč Chromium na RHEL7 Linux

  2. Jak nainstalovat prohlížeč Chromium přes PPA v Ubuntu 20.04, 20.10

  3. Nainstalovat Chromium na CentOS 8 – průvodce krok za krokem?

  1. Instalace prohlížeče Ubuntu 20.04 Chromium

  2. Instalace prohlížeče Ubuntu 22.04 Chromium

  3. Jak nainstalovat prohlížeč Chromium na Fedoru 23

  1. Jak nainstalovat webový prohlížeč Chromium na Ubuntu 18.04

  2. Jak nainstalovat webový prohlížeč Chromium na Ubuntu 20.04

  3. Jak nainstalovat prohlížeč Chromium na Ubuntu 20.04