多节点cassandra集群真的很慢

Posted

技术标签:

【中文标题】多节点cassandra集群真的很慢【英文标题】:Multiple node cassandra cluster is really slow 【发布时间】:2015-03-13 03:21:50 【问题描述】:

我在 EC2 上有一个单节点 cassandra 集群。我正在对它进行测试,效果很好。

但后来,我不得不将此集群移动到 VPC,因此我没有移动数据,而是创建了一个包含两个节点(均为种子)的新集群,并使用 sstableloader 从前一个集群导入数据。

我认为它真的很慢,所以决定再添加两个实例(不是种子)。它甚至更慢。

我使用 ONE 一致性,我的复制因子是 1,所以我不太明白为什么它这么慢。

给你一个想法,我每秒只能读取 3 次。 我们使用 EC2Snitch,但不是 Cassandra 推荐的 AMI(我们在安装它时没有在文档中看到该部分)。

添加两个新节点后,我还没有在前两个节点上运行清理。

当我请求仅包含十几行的列族的所有元素时,它会超时。如果我请求 一个 元素,我会在很长一段时间后得到结果,并且会有 巨大的跟踪会话(约 30000 行...)!

有谁知道我可以做些什么来让它更快?我现在不知道在哪里看。

我的 Cassandra 版本是 Cassandra 2.1.3。 这是我的键空间架构:

CREATE KEYSPACE keyspace_name WITH replication = 'class': 'NetworkTopologyStrategy', 'us-west-2': '1'  AND durable_writes = true;

以及我们列族的选项

CREATE TABLE keyspace_name."CFName" (
    // ...
) WITH bloom_filter_fp_chance = 0.01
    AND caching = '"keys":"ALL", "rows_per_partition":"NONE"'
    AND comment = ''
    AND compaction = 'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'
    AND compression = 'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99.0PERCENTILE';

【问题讨论】:

包括您正在使用的版本、您的键空间/表架构和查询跟踪都是有用的信息。编辑:粘贴跟踪并链接到它:) @mshuler:完成,不幸的是我无法重现我遇到的错误(我得到了我的结果),但它仍然非常慢! @JulienFouilhé 能否提供 nodetool status、tpstats 和 netstats 的输出? 【参考方案1】:

我必须在我的节点上运行压缩,因为我有 too many tombstones。

非常感谢 freenode #cassandra 上令人惊叹的 IRC 频道。

【讨论】:

以上是关于多节点cassandra集群真的很慢的主要内容,如果未能解决你的问题,请参考以下文章

cassandra安装配置

多节点 cassandra 集群:连接错误:('无法连接到任何服务器')

Apache Cassandra随笔之多节点跨数据中心集群配置以及日常操作

多节点 cassandra 集群 - load_balancing_policy

无法连接到 Jconsole - cassandra k8 集群

在Cassandra 3.0多节点集群中回收磁盘空间的最佳实践