有没有办法对 Chrome 可以使用的 RAM 量设置硬上限/限制?

有没有办法对 Chrome 可以使用的 RAM 量设置硬上限/限制?

我在 Steam Deck 上使用 Linux (SteamOS/Arch Linux)。

有没有一种方法可以对 Chrome 可以与命令行参数一起使用的最大总 RAM 设置硬上限/限制? (设备最大 16 GB 中的 8 GB)

Chrome 在我的 8 GB RAM 的 Windows 笔记本电脑上打开大量选项卡时工作得很好,而且我总是可以使用 Chrome 的内置任务管理器终止单个进程。

但在 Steam Deck 的 Arch Linux 上,如果我忘记使用 Chrome 的内置任务管理器来杀死选项卡/进程,某些优化不佳的网站的选项卡太多可能会导致整个机器挂起。然后我别无选择,只能按住电源按钮进行硬重置。

我已经使用 uBlock Origin 来清理网站,但这似乎还不够。

--TL;DR--

我想使用命令行参数将 Chrome 可以使用的最大总 RAM 设置为 8 GB(设备 16 GB RAM)的硬上限。

如果我使用 KDE 菜单编辑器,我可以直接向 Chrome 添加命令行参数。

执行的命令行是:

run --branch=stable --arch=x86_64 --command=/app/bin/chrome --file-forwarding com.google.Chrome @@u %U @@

我可以添加一个参数来做到这一点吗?寻找类似的内容:“--max_ram_usage 8192MB”

答案1

您可以用于ulimit设置最大虚拟内存大小的软限制和硬限制。

ulimit -Sv 8192000; ulimit -Hv 8192000; google-chrome

有输出:

ulimit -Sv 8192000; ulimit -Hv 8192000; google-chrome &
sleep 2
PID=$(pgrep google-chrome)
ps -o pid,rss,vsz -p $PID

运行此修改后的命令,您应该会看到Chrome 进程的PIDRSS和值。VSZRSS值代表实际的内存使用情况,该VSZ值代表进程分配的总虚拟内存大小。 sleep 2确保有一个暂停,以允许 Chrome 启动和分配内存。

设置虚拟内存并输出:

ulimit -v 8192000 && google-chrome &
sleep 1
PID=$(pgrep google-chrome)
ulimit -aH | grep "virtual memory"
ulimit -aS | grep "virtual memory"
cat /proc/$PID/limits | grep "Max address space"

Linux bash内联命令执行程序并限制资源

Bash ulimit 内置命令

Linux ulimit命令

HOWTO:使用 ulimit 命令设置软限制

用户限制 - 限制系统范围资源的使用。

ulimit - 修改 shell 资源限制。

相关内容