如何正确计算Couchbase中铲斗的RAM需求

如何正确计算Couchbase中铲斗的RAM需求,couchbase,Couchbase,在一个由6个AWS节点组成的Couchbase集群中,我们有大约3400万件物品。bucket已经分配了32.1GB的RAM(每个节点5482MB),目前使用29.1GB。如果我使用Couchbase文档()中提供的公式,它应该使用大约8.94GB的RAM 我算错了吗?下面是谷歌电子表格的链接,包含所有详细信息。 假设您确实有一个0.5%的工作集,正如Kirk在评论中指出的,这是奇怪的,但并非不可能的,那么您就正确地计算了内存大小公式的结果。然而,重要的是要理解,这个公式并不是一个适用于所有情况

在一个由6个AWS节点组成的Couchbase集群中,我们有大约3400万件物品。bucket已经分配了32.1GB的RAM(每个节点5482MB),目前使用29.1GB。如果我使用Couchbase文档()中提供的公式,它应该使用大约8.94GB的RAM

我算错了吗?下面是谷歌电子表格的链接,包含所有详细信息。

假设您确实有一个0.5%的工作集,正如Kirk在评论中指出的,这是奇怪的,但并非不可能的,那么您就正确地计算了内存大小公式的结果。然而,重要的是要理解,这个公式并不是一个适用于所有情况的硬性规则。相反,它是一个通用的指导方针,是您开始性能测试的良好起点。此外,要记住,RAM大小不是决定簇大小的唯一考虑因素,因为还必须考虑数据安全性、总的磁盘写入吞吐量、网络带宽、CPU、单个节点故障对集群的其余部分的影响,以及更多。 使用RAM大小调整公式的结果作为起点,您现在应该实际测试您的工作假设是否正确。这意味着将真实(或接近代表性)负载放在存储桶上,并查看缓存未命中的百分比是否足够低,以及操作是否在可接受的范围内。对于这一点没有通用的规则,一些应用程序可以接受的东西对其他应用程序来说可能太慢


作为一个例子,如果你看到在负载下,你的缓存缺失率是5%,而平均读取延迟为3ms,前1%延迟为100ms,那么你必须考虑是否每100个读取中有一个在你的应用程序中接受更长的时间。如果是-很好,如果不是-您需要开始增加RAM大小,直到它匹配您的实际工作集。类似地,您应该关注磁盘吞吐量、CPU使用率等。

内存中的对象是否真的只有0.5个百分点?这是可能的,但不正常,这就是为什么我问。另一个有用的数据点是每秒的读写操作数。你知道吗?我们的写操作大约是30次,读操作是每秒0次。我们目前主要使用它来存储数据。如果您正在存储数据而没有将其读回,那么在RAM中存储多少数据又有什么区别呢?存储空间受到磁盘的限制,并且会比您现在所在的位置高出很多。看起来您的设置过于复杂。我们的未命中率为0%,因为我们目前使用它主要存储数据,但将来将创建很少的视图。