0

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

我什至不确定这是否特别可测试,因为运行 Node.js 的环境似乎有所不同。使用资源限制设置较低的老年代大小(docs)并不像我想象的那样,似乎 Node.js 和操作系统正在做很多聪明的事情来防止进程在内存中爆炸。我得到的最接近的是 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);
  }
}
4

1 回答 1

0

好的,看起来maxYoungGenerationSizeMb在我的情况下添加会导致我正在寻找的行为:例如{ maxOldGenerationSizeMb: 10, maxYoungGenerationSizeMb: 10 }.

于 2022-02-07T15:33:29.753 回答