防止节点因内存不足而崩溃

6
我正在开发一个 NodeJS 应用程序,其目的是将文档转换为图像。因此,在 RAM 上非常占用资源,当出现高峰时,服务器的 RAM 使用率可能会达到 100%。
我的问题是,当这种情况发生时,Node 会崩溃(内存不足异常),因此我希望找到一种方法,使其不会崩溃,而是尽可能地完成工作。
我知道有其他替代方案(缩放、排队、使用“forever”自动重新启动等),并且正在努力解决这些问题,但是如果某些事情失败,如果 RAM 满了,知道我的服务器不会死机会很酷。
有没有实现这一点的方法?

1
相关链接:https://dev59.com/83LYa4cB1Zd3GeqPaKRw - Tomalak
1个回答

0

我会这样做:

  • 将任务排队在持久队列中
  • 几个独立的节点(工作进程)从队列中消耗任务并计算结果。每个工作进程限制为(比如)1.7GB内存(node.js进程的最大限制)
  • 我认为任务是相对同步且计算密集型的,所以工作进程一次处理多个任务没有太多意义。

这样可以确保不会耗尽所有RAM,并有效地利用机器的资源。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接