【发布时间】:2017-07-30 12:27:31
【问题描述】:
问题:
我正在执行我的 mongoose 查询测试,但内核因 OutOfMemory 原因杀死了我的节点应用程序。
流程场景:针对单个请求
/GET REQUEST -> READ document of user(eg.schema) [This schema has ref : user schema with its fields] -> COMPILE/REARRANGE 从 mongodb 读取的查询输出 [这涉及过滤和循环data] 根据客户要求的响应格式。 -> 更新此文档的一个字段并再次将其保存回 mongoDB -> 更新 REDIS -> 将响应 [上面编译的响应] 发送回请求的客户端
** 当 100 个并发客户执行相同操作时,上述操作失败... MEM - 非常低(98%)
我能弄清楚的是读写发生的速率,它通过排队所有请求来阻塞 mongodb,从而延迟 nodejs,从而导致如此剧烈的 CPU 和 MEM 值,最终应用程序被内核杀死。
请建议我如何继续在此类流程中实现并发......
【问题讨论】:
标签: node.js mongodb amazon-web-services redis database