多节点cassandra集群非常慢

时间:2015-03-13 03:21:51

标签: performance amazon-ec2 cassandra cassandra-2.0

我在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';

1 个答案:

答案 0 :(得分:0)

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

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