目前我们有一个由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发布于 2015-10-21 20:45:33
假设您的应用程序随用户数量线性扩展,CPU容量应该不是问题(不是吗?只有你知道--我们不知道你的应用程序是做什么的)。
问题是:您希望您的数据增长多少?当你当前有25 GB的数据和16 GB的ram时,64%的数据可以放入RAM中。这可能意味着许多查询可以直接从RAM缓存获得服务,而不需要访问硬盘。这些查询通常非常快。但是,当工作集的大小进一步超过RAM的大小时,在访问现在需要从硬盘读取的数据时,您可能会遇到一些延迟的增加(不过,这取决于:当您的应用程序主要与最新的数据交互,而很少与较旧的数据交互时,您可能甚至不会注意到太大的差异)。
解决这个问题的方法很明显:获取更多的RAM。如果这不是一个选项(例如,因为服务器达到了硬件允许的最大内存容量),那么您的下一个选项是构建一个sharded cluster,其中每个分片负责为您的数据间隔提供服务。
https://stackoverflow.com/questions/33259318
复制相似问题