原因:
触及 Chrome 沙箱内存上限,主动崩溃。
上限:
chrome 源码
int64_t physical_memory = base::SysInfo::AmountOfPhysicalMemory();if (sandbox_type == SandboxType::kGpu && physical_memory > 64 * GB) { memory_limit = 64 * GB; } else if (sandbox_type == SandboxType::kGpu && physical_memory > 32 * GB) { memory_limit = 32 * GB; } else if (physical_memory > 16 * GB) { memory_limit = 16 * GB; } else if (physical_memory > 8 * GB) { memory_limit = 8 * GB; }
一般来说,16G 内存电脑,沙箱上限为 8G。
注意: 多个标签页,同一个域名,一般情况下会使用同一个进程,也就是 8G 内存多个标签页共用。
解决方案:
第一种: 增加内存到 24G 或者 32G,能使沙箱上限增加到 16G。
第二种:增加命令行:--no-sandbox 禁用沙箱,不足之处在于浏览器会给出提示,说关闭了沙箱不稳定,不安全。
第三种:很有可能存在内存泄漏,一般一段时间后,出现崩溃,应该是某些资源一直在创建,建议从代码逻辑中查找下原因。