AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 560064
Accepted
400 the Cat
400 the Cat
Asked: 2020-01-03 22:00:31 +0800 CST2020-01-03 22:00:31 +0800 CST 2020-01-03 22:00:31 +0800 CST

Chromium 浏览器:超出数据限制

  • 772

我已经在/etc/security/limits.conf. 当我以用户身份正常登录我的桌面环境时testuser(使用 slimlogin管理器),一切正常。

当我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 ?

ulimit chrome
  • 3 3 个回答
  • 1494 Views

3 个回答

  • Voted
  1. Best Answer
    intika
    2020-01-07T18:35:16+08:002020-01-07T18:35:16+08:00
    1. 为什么 Chromium 的限制与所有其他程序不同?

    Chromium 可能看起来像一个简单的应用程序,但事实并非如此,首先是多线程,它使 Chromium 为不同的任务(扩展、选项卡、核心 Web 引擎等)运行多个进程,然后是虚拟化,Chromium 使用许多沙箱来隔离使其比其他应用程序使用更多资源的浏览活动,而且使用的网络引擎也不是一个轻量级的...添加运行所需的不同库和其他繁重的资源功能...一些相关文档可以在这里, 这里和这篇文章有一些有用的信息。

    1. “默认”限制来自哪里(铬从哪里获取限制 4294967296?

    4294967296 字节(4096 MB 或 4GB 限制)铬的设计限制为 4GB,这是硬编码的,有关此的更多信息可在此处和此处获得

    1. 如何在全局范围内为所有进程更改这些默认限制,无论它们是否使用 pam?

    这不是一件容易的事,但你在最常用的过程中做得很好,现在对于像铬这样的复杂过程,你需要为每个“特殊”应用程序自定义配置。

    对于 chromium,有一些命令参数可用于自定义/启用/禁用功能,您可以尝试使用其中一些来使 chromium 适合您的需求,这里有一些有趣的开关:

    这些开关可以与这样的命令行一起使用/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
    
    • 11
  2. Robert Wm Ruedisueli
    2020-01-11T12:25:35+08:002020-01-11T12:25:35+08:00

    在现代 64 位系统上,没有合理的理由限制 VM 空间。

    VM 空间用于任何内存映射,而不仅仅是物理内存。在当前计算中,大量 VM 数据最常见的用法是稀疏缓冲区,其中只有一小部分在物理内存中的文件或数据库将整个内容都放在虚拟内存中,并有一个例程根据需要透明地加载它.

    您想限制物理数据内存的使用,即使在那里您也应该使用 /sys 和/或 /proc/sys 中的设置来执行此操作,而不是 ulimit,因为这会正确地向程序发出内存不足的信号,而不仅仅是故障。

    老实说,ulimit 是一个肮脏的老黑客,除了防止对多用户系统的拒绝服务攻击之外,它对任何事情都没有多大好处。

    • 3
  3. ajgringo619
    2020-01-07T19:14:04+08:002020-01-07T19:14:04+08:00

    我在使用 Chrome 时遇到了同样的问题,通常是在流式传输电视频道时。您的错误消息为您提供了答案:

    添加ignore_rlimit_data到 . 中的GRUB_CMDLINE_LINUX_DEFAULT条目/etc/default/grub。更新 grub,然后重新启动。

    • 0

相关问题

  • 为什么以下方式不会改变核心文件限制大小?

  • *nix 系统上 Chrome 的通用路径?

  • 如何在 ChromeOS 中使用 shell 从命令行访问 Google Drive?

  • 通过 playonlinux 使用 Acrobat Reader DC 在 Firefox 或 Chrome 中打开 PDF 文件

  • 如何为 linix 构建 chromium dist(最好是 zip)?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve