我想估计一下,在特定的每秒读取次数下,需要多少cassandra存储节点。
我的节点规格是32核、256gb ram、10gbps nic、10x 6tb HDD。很明显ssd会更受欢迎,但在这种情况下它们不可用。
我有大约5x10^11个值,每个值1kb=500tb的值,以每秒100000个读取请求的速率提供服务。这些请求的分布是完全均匀的,即ram容量缓存不会产生任何影响。
如果我们假设每个硬盘都能维持~100 iops,那么我可以预期至少需要~100个节点来为这个读取加载服务-对吗?
我还估计,如果复制系数为2,再加上开销,总存储至少需要20台机器。
1条答案
按热度按时间vaj7vani1#
这是一个非常广泛的问题-你需要试着用一些工具来测试你的机器,比如专门为这些任务设计的nosqlbench。
典型的建议是每个cassandra节点存储~1tb的数据(包括复制)。您需要考虑其他因素,例如,替换群集中的节点或添加新节点需要多长时间—流的速度与磁盘上的数据大小成正比。
如果您想得到低延迟的答案,就不建议使用hdd。我有一个客户机,大约有150 TB,分布在大约30台带有HDD的机器上,虽然有很多写操作,但读取延迟通常会超过0.5秒,甚至更高。你需要考虑到cassandra需要随机访问数据,而hdd的负责人根本无法如此快速地处理请求。