Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.170.128 317.66 MiB 256 62.4% 45e953bd-5cca-44d9-ba26-99e0db28398d rack1
UN 192.168.170.129 527.05 MiB 256 60.2% e0d2faec-9714-49cf-af71-bfe2f2fb0783 rack1
UN 192.168.170.130 669.08 MiB 256 60.6% eaa1e39b-2256-4821-bbc8-39e47debf5e8 rack1
UN 192.168.170.132 537.11 MiB 256 60.0% 126e151f-92bc-4197-8007-247e385be0a6 rack1
UN 192.168.170.133 417.6 MiB 256 56.8% 2eb9dd83-ab44-456c-be69-6cead1b5d1fd rack1
Datacenter: dc2
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.170.136 386.12 MiB 256 41.0% 2e57fac6-95db-4dc3-88f7-936cd8038cac rack1
UN 192.168.170.137 518.74 MiB 256 40.9% b6d61651-7c65-4ac9-a5b3-053c77cfbd37 rack1
UN 192.168.170.138 554.43 MiB 256 38.6% f1ba3e80-5dac-4a22-9025-85e868685de5 rack1
UN 192.168.170.134 153.76 MiB 256 40.7% 568389b3-304b-4d8f-ae71-58eb2a55601c rack1
UN 192.168.170.135 350.76 MiB 256 38.7% 1a7d557b-8270-4181-957b-98f6e2945fd8 rack1
CREATE KEYSPACE grudb WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '3', 'dc2': '2'} AND durable_writes = true;
这是我的设置。
CL为一。
答案 0 :(得分:0)
通常,一个10节点的群集可以维持更高的吞吐量,但是,这是否实际上转化为更高的“ cassandra-stress”分数,取决于您在做什么:< / p>
首先,您需要确保cassandra-stress client 不是瓶颈。例如,如果运行cassandra-stress的计算机的CPU或网络利用率为100%,即使您有100个服务器节点,也永远不会获得更好的分数。
第二,您需要确保cassandra-stress的并发性足够高。在极端情况下,如果cassandra-stress仅发送一个请求,另一个请求,您所做的只是测量延迟,而不是吞吐量。此外,如果一次只向一个节点发送一个请求,那么如果您有100个节点,则没有帮助。因此,请尝试增加cassandra-stress的并发性,看看是否有任何区别。
现在,我们已经解决了潜在的卡桑德拉压力问题,让我们看一下服务器。您并没有简单地将群集从1个节点增加到10个节点。如果您只是这样做,那么如果性能没有提高,您将感到惊讶。但是您做了其他事情:您增加了10个节点,但也大大增加了写入的工作-在您的设置中,每次写入都需要到达5个节点(!),其中3个位于DC上,2个位于DC上。另一个(这些是您配置的RF)。因此,即使在最佳情况下,您也不能指望该群集上的写吞吐量比单个节点好两倍以上。实际上,由于此复制的所有开销,您期望性能甚至不到两倍-因此具有相似的性能也就不足为奇了。
以上估计是针对写入性能的。为了提高读取性能,由于您说的是使用CL = ONE(顺便说一句,您可以使用CL = LOCAL_ONE),因此读取吞吐量的确应随群集大小线性增长。如果没有,我猜您在如上所述的设置上有问题(客户端出现瓶颈或使用的并发太少)。
请尝试分别运行读写基准,以更好地了解其中哪些是主要的可扩展性问题。