目前我们有一个3个成员的副本集,25 GB的数据,正常的cpu使用率在两个辅助中为1.5,在主要中为0.5(仅在辅助实例中读取),通常1200个用户访问我们的网站。现在我们已经计划增加对我们网站的命中率。我们期待大约5000个并发用户访问我们的网站,您能不能建议在我的副本集中添加实例。
我们的副本集中的当前基础:
1. Primary instance
CPUs: 16
RAM: 32 GB
HDD: 100 GB
2. Secondary instance
CPUs: 8
RAM: 16 GB
HDD: 100 GB
3. Secondary instance
CPUs: 8
RAM: 16 GB
HDD: 100 GB
答案 0 :(得分:0)
假设您的应用程序与用户数呈线性关系,那么CPU容量应该不是问题(是吗?只有您可以告诉 - 我们不知道您的应用程序在做什么)。
问题是:您希望您的数据增长多少?当前有25 GB的数据和16 GB的RAM时,64%的数据适合RAM。这可能意味着可以直接从RAM缓存中提供许多查询,而无需点击硬盘驱动器。这些查询通常非常快。但是,当您的工作集进一步增加到RAM的大小时,您可能会在访问现在需要从硬盘驱动器读取的数据时遇到一些增加的延迟(但这取决于:当您的应用程序主要与最近的数据交互时很少对于较旧的数据,您可能甚至没有注意到差异。)
解决方案很明显:获得更多内存。如果这不是一个选项(例如,因为服务器达到硬件允许的最大RAM容量),您的下一个选项是构建sharded cluster,其中每个分片负责提供数据的间隔。