我使用包含大量数据的1个表格为cassandra创建了压力测试。我填写了一张包含200GB数据的表格,平均每行约4k。主键很长,没有额外的索引。现在我正在运行查询压力测试。所以我有16个线程查询cassandra与主键上的where类。我期待这个速度很快,但我的平均查询时间为600毫秒,每个线程最长时间为2.5秒。
如上所述,查询类似于select * from table where id =?
可能出现什么问题?
编辑:有关我的设置的更多详细信息。我在我的盒子上本地运行一个带有两个基于lxc的虚拟盒的cassandra集群。 lxc-io应该是相当有效的,如果不是作为本机io对。当我用数据填充集群时,我没有遇到任何问题。现在我只在16核盒子上的16个线程中运行查询。所有查询都转到cassandra1。磁盘的块大小为4kb。
我目前正在进行压缩,并会看看是否有帮助。
编辑:表格:
CREATE TABLE session (
id bigint PRIMARY KEY,
data blob,
ip text,
site text,
time timestamp,
txt text,
useragent text
) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.000000 AND
gc_grace_seconds=864000 AND
read_repair_chance=0.100000 AND
replicate_on_write='true' AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'SnappyCompressor'};
注意:数据列为空