Cassandra2.1在1TB数据表中写入速度慢

时间:2016-03-09 02:45:28

标签: cassandra nosql

我正在cassandra集群中进行一些测试,现在我有一个每个节点有1TB数据的表。当我使用ycsb进行更多插入操作时,我发现吞吐量非常低(大约10000 ops / sec)同一个集群中的同一个新表(大约80000 ops / sec)。插入时,cpu使用率约为40%,几乎没有磁盘使用。

我使用nodetool tpstats获取任务详细信息,它显示:

Pool Name                    Active   Pending      Completed   Blocked  All time blocked
CounterMutationStage              0         0              0         0                 0
ReadStage                         0         0            102         0                 0
RequestResponseStage              0         0       41571733         0                 0
MutationStage                   384     21949       82375487         0                 0
ReadRepairStage                   0         0              0         0                 0
GossipStage                       0         0         247100         0                 0
CacheCleanupExecutor              0         0              0         0                 0
AntiEntropyStage                  0         0              0         0                 0
MigrationStage                    0         0              6         0                 0
Sampler                           0         0              0         0                 0
ValidationExecutor                0         0              0         0                 0
CommitLogArchiver                 0         0              0         0                 0
MiscStage                         0         0              0         0                 0
MemtableFlushWriter              16        16           4745         0                 0
MemtableReclaimMemory             0         0           4745         0                 0
PendingRangeCalculator            0         0              4         0                 0
MemtablePostFlush                 1       163           9394         0                 0
CompactionExecutor                8        29          13713         0                 0
InternalResponseStage             0         0              0         0                 0
HintedHandoff                     2         2              5         0                 0

我发现有大量待处理的MutationStage和MemtablePostFlush

我已经阅读了一些关于cassandra写入限制的相关文章,但没有有用的信息。我想知道为什么除了数据大小之外两个相同表之间的cassandra吞吐量存在巨大差异?

另外,我在我的服务器上使用 ssd 。但是,这种现象也发生在另一个使用hdd的群集中

当cassandra运行时,我发现cpu利用率上的%user和%nice都是10%左右,而只有compactiontask运行时压缩吞吐量大约为80MB / S.但是我的cassandra进程已将nice值设置为0。

1 个答案:

答案 0 :(得分:0)

狂野猜测:您的系统正在忙于压缩sstable。 请使用nodetool compactionstats

查看

BTW,YCSB不使用prepare语句,这使得它成为实际应用程序负载的不良估计。