GNU/Linux >> Linux の 問題 >  >> Linux

Chromiumブラウザ:データ制限を超えていますか?

/etc/security/limits.confにulimitを設定しました 。ユーザーtestuserとしてデスクトップ環境にログインするとき 通常(スリムなloginを使用 マネージャー)、すべてが正常に機能します。

ユーザーtestuserとしてログインすると Xephyr経由 (別のユーザーとしての他のセッションから)chromiumを除いてすべてが正常に機能します ブラウザ。これは、dmesgで発生するエラーです。 :

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

そして、クロムは使用できません(開始しますが、ページが読み込まれるまで無期限に待機します)

chromiumを除く他のすべてのプログラム 正しい制限が設定されています。私はこれを使用して確認しました:

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

すべてのPIDs Max data size 無制限に設定:

Max data size             unlimited            unlimited            bytes

chromiumを除く プロセス:

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  

理解したい:

1)なぜchromium 他のすべてのプログラムとは異なる制限がありますか?

2)「デフォルト」の制限はどこから来るのですか(クロムはどこで制限を取りますか4294967296 から?

3)pamを使用しているかどうかに関係なく、すべてのプロセスについて、これらのデフォルトの制限をグローバルに一度だけ変更するにはどうすればよいですか?

承認された回答:

  1. クロムには他のすべてのプログラムとは異なる制限があるのはなぜですか?

Chromiumは単純なアプリケーションのように見えるかもしれませんが、そうではありません。最初に、クロムがさまざまなタスク(拡張機能、タブ、コアWebエンジンなど)に対して複数のプロセスを実行するマルチスレッドがあり、次に仮想化、クロムは多くのサンドボックスを使用して分離します他のアプリケーションよりも多くのリソースを使用するブラウジングアクティビティ、また使用されるWebエンジンは軽いものではありません...実行に必要なさまざまな必要なライブラリやその他の重いリソース機能に加えて...いくつかの関連ドキュメントはここで入手できます。こことこの記事にはいくつかの役立つ情報があります。

  1. 「デフォルト」の制限はどこから来るのですか(クロムはどこから制限4294967296を取得しますか?

4294967296バイト(4096 MB、または4GBの制限)クロムには、設計上4GBの制限があり、これはハードコーディングされています。これに関する詳細情報は、こことここにあります

  1. pamを使用しているかどうかに関係なく、すべてのプロセスについて、これらのデフォルトの制限をグローバルに一度だけ変更するにはどうすればよいですか?

簡単な作業ではありませんが、ほとんどの通常のプロセスで正しく実行しています。クロムのような複雑なプロセスでは、「特別な」アプリごとに構成をカスタマイズする必要があります。

関連:Linux – NTP時間同期には長い時間がかかりますか?

クロムの場合、機能をカスタマイズ/有効化/無効化するために使用できるコマンドパラメータがいくつかあります。それらのいくつかを使用して、クロムをニーズに合わせることができます。ここにいくつかの興味深いスイッチがあります:

これらのスイッチは、この/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.

ulimitを更新するスクリプトを使用してchromiumを実行することもできます(4GB未満の値はブラウザーをクラッシュさせる可能性があることに注意してください…)

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. RHEL7LinuxにChromiumWebブラウザをインストールする方法

  2. Ubuntu 20.04、20.10でPPAを介してChromiumブラウザをインストールする方法

  3. Fedora23にChromiumブラウザをインストールする方法

  1. Ubuntu 20.04ChromiumBrowserのインストール

  2. Ubuntu 22.04ChromiumBrowserのインストール

  3. CentOS 8にChromiumをインストールする-ステップバイステップガイド?

  1. Ubuntu18.04にChromiumWebブラウザをインストールする方法

  2. Ubuntu20.04にChromiumWebブラウザをインストールする方法

  3. Ubuntu20.04にChromiumブラウザをインストールする方法