多节点 cassandra 集群真的很慢
Multiple node cassandra cluster is really slow
我在 EC2 上有一个单节点 cassandra 集群。我正在 运行 对其进行测试,效果很好。
但是,我不得不将这个集群移动到 VPC,所以我没有移动数据,而是创建了一个有两个节点(都是种子)的新集群,并使用 [=12 从前一个集群导入数据=].
我认为它真的很慢,所以决定再添加两个实例(不是种子)。甚至更慢。
我使用的是 ONE 一致性,我的复制因子是 1,所以我不太明白为什么这么慢。
给你一个想法,我每秒只能读取 3 次。
我们使用 EC2Snitch,但没有使用 Cassandra 推荐的 AMI(我们在安装它时没有在文档中看到该部分)。
添加两个新节点后,我还没有运行清理前两个节点。
当我请求仅包含十几行的列族的所有元素时,它超时。如果我请求 one 元素,我会在很长一段时间后得到结果,并且有一个 巨大的跟踪会话 (~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';
我不得不 运行 在我的节点上进行压缩,因为我有 too many tombstones。
非常感谢 freenode #cassandra 上令人惊叹的 IRC 频道。
我在 EC2 上有一个单节点 cassandra 集群。我正在 运行 对其进行测试,效果很好。
但是,我不得不将这个集群移动到 VPC,所以我没有移动数据,而是创建了一个有两个节点(都是种子)的新集群,并使用 [=12 从前一个集群导入数据=].
我认为它真的很慢,所以决定再添加两个实例(不是种子)。甚至更慢。
我使用的是 ONE 一致性,我的复制因子是 1,所以我不太明白为什么这么慢。
给你一个想法,我每秒只能读取 3 次。 我们使用 EC2Snitch,但没有使用 Cassandra 推荐的 AMI(我们在安装它时没有在文档中看到该部分)。
添加两个新节点后,我还没有运行清理前两个节点。
当我请求仅包含十几行的列族的所有元素时,它超时。如果我请求 one 元素,我会在很长一段时间后得到结果,并且有一个 巨大的跟踪会话 (~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';
我不得不 运行 在我的节点上进行压缩,因为我有 too many tombstones。
非常感谢 freenode #cassandra 上令人惊叹的 IRC 频道。