GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Chromium-Browser:Datenlimit überschritten?

Ich habe ulimit in /etc/security/limits.conf gesetzt . Wenn ich mich als Benutzer testuser bei meiner Desktop-Umgebung anmelde normalerweise (mit schlankem login Manager), funktioniert alles einwandfrei.

Wenn ich mich als Benutzer testuser anmelde über Xephyr (aus meiner anderen Sitzung als anderer Benutzer) funktioniert alles gut, außer chromium Browser. Dies ist der Fehler, den ich in dmesg erhalte :

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

Und Chromium ist unbrauchbar (es startet, wartet aber auf unbestimmte Zeit, um eine Seite zu laden)

Alle anderen Programme außer chromium richtige Limits gesetzt haben. Ich habe dies überprüft mit:

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

alle PIDs Max data size haben auf unbegrenzt setzen:

Max data size             unlimited            unlimited            bytes

außer chromium Prozesse:

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  

Ich würde gerne verstehen:

1) warum chromium haben andere Limits als alle anderen Programme ?

2) woher kommen die "Standard"-Limits (wo nimmt Chromium das Limit 4294967296). von ?

3) Wie kann ich diese Standardgrenzen ein für alle Mal global für alle Prozesse ändern, unabhängig davon, ob sie pam verwenden oder nicht?

Akzeptierte Antwort:

  1. Warum hat Chromium andere Limits als alle anderen Programme?

Chromium mag wie eine einfache Anwendung aussehen, ist es aber nicht, zuerst gibt es das Multi-Threading, das Chromium dazu bringt, mehrere Prozesse für verschiedene Aufgaben auszuführen (Erweiterungen, Registerkarten, Kern-Web-Engine usw.), dann die Virtualisierung, Chromium verwendet viele Sandboxen zum Isolieren die Browsing-Aktivitäten, die dazu führen, dass mehr Ressourcen als andere Anwendungen verwendet werden, auch die verwendete Web-Engine ist keine leichte. Hinzu kommen die verschiedenen erforderlichen Bibliotheken, die zum Ausführen erforderlich sind, und andere ressourcenintensive Funktionen. Einige zugehörige Dokumentationen sind hier verfügbar. Hier und in diesem Artikel finden Sie einige nützliche Informationen.

  1. Woher kommen die "Standard"-Limits (woher nimmt Chromium das Limit 4294967296?

4294967296 Byte (4096 MB oder 4 GB-Grenze) Chromium hat per Design eine 4-GB-Grenze. Dies ist fest codiert. Weitere Informationen dazu finden Sie hier und hier

  1. Wie kann ich diese Standardgrenzen ein für alle Mal global für alle Prozesse ändern, unabhängig davon, ob sie pam verwenden oder nicht?

Keine leichte Aufgabe, aber Sie machen es für die meisten üblichen Prozesse richtig, jetzt müssen Sie für komplizierte Prozesse wie Chromium Ihre Konfiguration für jede „spezielle“ App anpassen.

Verwandte:Linux – NTP-Zeitsynchronisierung dauert lange?

Für Chromium gibt es einige Befehlsparameter, die zum Anpassen/Aktivieren/Deaktivieren von Funktionen verwendet werden können. Sie können versuchen, einige davon zu verwenden, um Chromium an Ihre Bedürfnisse anzupassen. Hier sind einige interessante Schalter:

Diese Schalter können mit einer Befehlszeile wie dieser /usr/bin/chromium --single-process verwendet werden

--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.

Sie können Chromium auch mit einem Skript ausführen, das das ulimit dafür aktualisiert (beachten Sie, dass Werte unter 4 GB den Browser zum Absturz bringen können …)

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. So installieren Sie den Chromium-Webbrowser unter RHEL7 Linux

  2. Ubuntu 20.04 Chromium-Browser-Installation

  3. So installieren Sie den Chromium-Browser über PPA in Ubuntu 20.04, 20.10

  4. Installieren Sie Chromium auf CentOS 8 - Eine Schritt-für-Schritt-Anleitung?

  5. So installieren Sie den Chromium-Browser auf Fedora 23

Installieren Sie den Chromium-Browser unter Linux Mint 20.1 Ulyssa

So installieren Sie den Chromium-Browser unter AlmaLinux 8

So installieren Sie den Chromium-Browser unter AlmaLinux 8

So installieren Sie den Chromium-Webbrowser unter Debian 10

So installieren Sie den Chromium-Browser unter Debian 11

So installieren Sie den Chromium-Browser unter Debian 11 „Bullseye“