Pur*_*nda 16 javascript mongoose mongodb node.js
My Express REST API使用Mongoose和MongoDB Atlas.Atlas正在运行M10(EC2 T2小型),我的REST API在EC2 M5 Large上运行.我目前正在使用mongoose连接选项"poolSize"作为默认值5(所以我认为有15个完全打开的连接到副本集).
我希望我的应用程序能够处理1000个请求/秒的Atlas数据库.
数据库只是50K用户的基本集合,每个用户都有几个数据点以及10kb的配置文件图像.500个请求将用于配置文件图像,另一半用于用户名和密码验证.
我的MongoDB Atlas副本集说它最多有350个连接.如果我只使用其中的15个,我会无意中在这里造成瓶颈?那15个连接(5个/节点)能够每秒处理1000个请求吗?我应该将Mongoose中的"poolSize"增加到100(与副本集的总连接数为300),以便每秒允许更多请求吗?我意识到简单的答案是说要测试一下,但首先我想大致听到在这种情况下应该做些什么,并且知道我目前设置的5"poolSize"是否可能适用于1000个请求/ s?
我认为这里的链接可以帮助您:https://dzone.com/articles/how-to-use-mongodb-connection-pooling-on-aws-lambd
那里有一大堆有用的信息:
连接池大小确定驱动程序在给定时间可以处理的最大并行请求数.如果达到连接池限制,则将使任何新请求等到现有请求完成.因此,考虑到要实现的应用程序负载和并发性,需要仔细选择池大小.
通常,较低的池大小将导致您的大量请求等待连接,并可能导致高负载超时.
继续使用JMeter或其他工具设置来对您的应用程序执行并发请求,并查看使用默认的5 poolSize获得的每秒请求数.
确保配置JMeter(或其他工具),使其具有实际数量的并发用户和实际请求,以尽可能多地反映您将在生产中看到的内容.并设置了一些品种,如低负荷,中负荷和高负荷情况.
使用默认设置获得基线后,现在可以增加池并查看RPS如何响应.
另外:注意大池大小的内存消耗,每个连接吃掉大约1兆字节.
这种实证分析通常是您如何适应您的设置.
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |