在 Node.js 中触发 worker_thread OOM 异常的最佳方法

Best way to trigger worker_thread OOM exception in Node.js

我想测试在 worker_thread OOM 时报告的代码。或者至少尽管由于 OOM 原因导致线程崩溃,但父级还可以。我想专门测试 Node.js 杀死一个 worker_thread.

我什至不确定这是否特别可测试,因为 Node.js 是 运行 的环境似乎有所不同。使用资源限制设置较低的老年代大小 (docs) 并没有像我想象的那样表现,似乎 Node.js 和 OS 正在做很多聪明的事情来保持进程从记忆中爆炸。我得到的最接近的结果是 Node.js 和工人都被杀了。但同样,这不是我期望的行为 - Node.js 应该杀死工人。

有什么方法可以可靠地测试这样的事情吗?当前 运行 v16.13.2.

[编辑]

这是工作人员的一些示例 JS:

const { isMainThread } = require('worker_threads');

if (!isMainThread) {
  let as = [];

  for (let i = 0; i < 100; i++) {
    let a = '';
    for (let i = 0; i < 9000000; i++) a += i.toString();
    as.push(a);
  }
}

好的,在我的案例中添加 maxYoungGenerationSizeMb 似乎导致了我正在寻找的行为:例如{ maxOldGenerationSizeMb: 10, maxYoungGenerationSizeMb: 10 }.