我需要 nodejs 和 mongodb 来每秒处理 5000 个请求

我需要 nodejs 和 mongodb 来每秒处理 5000 个请求

正如标题所示,我需要 nodejs 和 mongodb 来处理每秒 5000 个请求。这是立即需要的。最终我们会将其增长到这个数字的很多倍。

我最初的想法是将每个机器放在不同的机器上,但我不确定是否应该从小型机器开始并准备很快进行扩展,还是从大型机器开始并稍后进行扩展。

无论如何,我完全希望最终能将这两项功能扩展,但我想知道升级触发因素是什么。我会根据 CPU 还是内存使用情况进行扩展?如果根据 CPU,我应该尝试将平均 CPU 使用率保持在什么水平以下?

哦,是的,我将购买 10gen 的支持,以便他们可以审查我的文档模型并确保我以最有效的方式存储数据。

答案1

“一般来说”,没有一个数字应该让你的 CPU 保持在以下水平。如果你有一个四核系统,并且你的应用程序在平均负载为 12 时表现良好,那么你就更有动力了。你真的需要自己测试和确定这些事情。CPU 平均负载反映的不仅仅是 CPU 正在做什么。

答案2

我将把客户端渲染、并行性、缓存、nginx 等基本性能调整留给你自己去谷歌搜索,然后直接跳到一些独家的,

1.禁用Nagle算法: 如果您对实时网络编程很熟悉,您就会认识到此算法是一种常见的套接字调整。这使每个响应离开服务器的速度更快。

该调整可通过 node.js API 实现socket.setNoDelay,该 API 在每个长轮询 COMET 连接的套接字上设置。

2.Mongodb连接池:创建新的经过身份验证的数据库连接成本很高。因此,您不想为每个数据库请求创建和销毁连接,而是希望尽可能重复使用现有连接。

您可以在 airpair 或 medium 上找到很多其他性能调整,但就您而言,这两个调整的影响最大。

笔记:您的部署拓扑和负载平衡策略也会产生很大的影响。我想说,在您的节点服务器前面使用 NGINX 作为 RP,并让它处理您的多个节点实例之间的所有负载平衡!

相关内容