gpt4 book ai didi

linux - 如何为 chrome 的 OOM Killer 设置内存限制?

转载 作者:行者123 更新时间:2023-12-03 19:41:07 28 4
gpt4 key购买 nike

chrome invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=300



使用 headless chrome 浏览器 + Selenium 进行测试时出现上述错误。

最佳答案

此错误消息...

chrome invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=300

...暗示 ChromeDriver 控制了浏览上下文,即 Chrome 浏览器调用了 OOM 杀手 由于 错误。

内存不足

Out of Memory当您尝试启动新程序或尝试使用已经在运行的程序时,即使您仍有大量可用的物理和页面文件内存,也会出现错误消息。

OOM 杀手

OOM Killer或 Out Of Memory Killer 是 linux 内核在系统内存严重不足时使用的进程。出现这种情况是因为 linux 内核为其进程分配了过多的内存。当一个进程启动时,它会向内核请求一 block 内存。这个初始请求通常是一个很大的请求,进程不会立即或实际上永远不会使用所有请求。内核意识到进程请求冗余内存的这种趋势,会过度分配系统内存。这意味着当系统具有例如 2GB 的 RAM 时,内核可能会为进程分配 2.5GB。这通过确保分配给进程的内存被积极使用来最大化系统内存的使用。现在,如果有足够多的进程开始使用它们请求的所有内存块,那么将没有足够的物理内存来支持它们。这意味着正在运行的进程需要比物理可用更多的内存。这种情况正是linux内核调用OOM Killer来检查所有正在运行的进程并杀死其中一个或多个以释放系统内存并保持系统运行的情况。

Chrome 成为 OOM Killer 的第一个受害者

令人惊讶的是,Chrome 浏览器客户端似乎是 oom 杀手的第一个受害者。由于 Linux OOM Killer 使用 highest score=(RSS + oom_score_adj) 终止进程, chrome 选项卡被杀死,因为它们有 oom_score_adj 300 ( kLowestRendererOomScore = 300chrome_constants.cc )如下:
#if defined(OS_LINUX)
const int kLowestRendererOomScore = 300;
const int kHighestRendererOomScore = 1000;
#endif

细节

这个问题是一个已知问题,很容易 reproduced .我们已经在 oom_score_adj too high - chrome is always the first victiom of the oom killer 中详细讨论了这个问题。 .目标是调整 Chrome OS 中的 OOM,以确保最近打开的选项卡不会被杀死,因为 OOM 杀手默认更喜欢最近的进程。但是在不会反射(reflect)的 Linux 发行版上,您会遇到不良行为,Chrome proc 被杀死而不是其他可能应该被杀死的 proc。

解决方案

有关错误堆栈跟踪的一些详细信息将有助于我们建议您在以下方面进行一些更改:
  • 虚拟机总使用量
  • 物理内存
  • 交换内存

  • 您可以在以下位置找到一些相关的讨论:
  • Understanding the Linux oom-killer's logs
  • what does anon-rss and total-vm mean
  • determine vm size of process killed by oom-killer

  • 然而,有一个代码审查来解决这个问题,但讨论似乎仍处于“分配优先级:2”状态,其中:
  • Linux: Adjust /proc/pid/oom_adj to sacrifice plugin and renderer processes to the OOM killer


  • tl;博士

    java.lang.OutOfMemoryError: unable to create new native thread error using ChromeDriver and Chrome through Selenium in Spring boot

    奥特罗

    Chromium OS - Design Documents - Out of memory handling

    关于linux - 如何为 chrome 的 OOM Killer 设置内存限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59715649/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com