Node.js 中使用 worker_threads 处理 CPU 密集型任务时,为什么你的内存反而涨了
线上一个用 Node.js 写的图片处理服务,接入了 sharp 做缩略图生成,平时 QPS 不高,单张图也不大,跑得挺稳。某天运营批量导入了一批 8000x6000 的摄影原图,服务在几分钟内 RSS 从 300MB 涨到 3GB,随后被容器 OOM kill。排查后发现代码里用 worker_threads 把缩放任务丢到线程池,本意是避免阻塞事件循环,但每个 worker 都在独立 V8 isolate 里加载 sharp 并各自持有一份 native 内存缓冲,任务结束后 worker 没有及时退出...