我们在6个AWS节点的Couchbase群集设置中拥有大约3400万个项目。该存储桶已分配32.1GB RAM(每节点5482MB),目前使用29.1GB。如果我使用Couchbase文档(http://docs.couchbase.com/admin/admin/Concepts/bp-sizingGuidelines.html)中提供的公式,它应该使用约。 8.94GB的RAM。
我计算错了吗?以下是包含所有详细信息的Google电子表格链接。 https://docs.google.com/spreadsheets/d/1b9XQn030TBCurUjv3bkhiHJ_aahepaBmFg_lJQj-EzQ/edit?usp=sharing
答案 0 :(得分:1)
假设你确实有一个0.5%的工作集,正如Kirk在他的评论中指出的那样奇怪但并非不可能,那么你正在计算内存大小调整公式的结果。但是,重要的是要理解公式不是适合所有情况的硬性规则。相反,它是一般指导原则,是您开始进行性能测试的良好起点。另外,请记住,RAM大小调整并不是决定群集大小的唯一考虑因素,因为您还必须考虑数据安全性,总磁盘写入吞吐量,网络带宽,CPU,单个节点故障对其余部分的影响。集群等等。
使用RAM大小调整公式的结果作为起点,您现在应该实际测试您的工作假设是否正确。这意味着在桶上放置真实(或接近代表性)的负载,并查看缓存未命中率是否足够低,并且操作范围是否在您可接受的限制范围内。对此没有一般规则,某些应用程序可接受的内容可能对其他应用程序来说太慢。
举个例子,如果你看到加载时你的缓存未命中率是5%而平均读取延迟是3ms,那么前1%的延迟是100ms - 那么你必须考虑是否每100个中有一个在您的应用程序中可以接受的读取时间更长。如果是 - 很好,如果不是 - 你需要开始增加RAM大小,直到它与你的实际工作集匹配。同样,您应该密切关注磁盘吞吐量,CPU使用率等。