【发布时间】:2017-01-01 05:42:00
【问题描述】:
我正在使用 Cassandra 1.0.6 版本...我有大约 100 万个 5KB 的 JSON 对象要插入到 cassandra。随着插入的进行,cassandra 的内存消耗也会上升,直到它稳定到某个点。在一些插入(大约 2-3 lkhs)之后,ruby 客户端给了我“`recv_batch_mutate':CassandraThrift::TimedOutException”异常。
我还尝试插入 1KB 大小的 JSON 对象超过一百万次。这没有任何例外。同样在这个实验中,我绘制了 50000 次插入所用时间与 50000 次插入次数之间的图表。我发现在一些迭代之后插入的时间急剧增加,然后突然下降。这可能是由于 JVM 完成了垃圾收集。但插入 5KB 数据一百万次时不会发生同样的情况。
可能是什么问题?我正在使用的一些配置选项:- 系统:-
- 8GB 4 核 ..
Cassandra 配置:- - 并发写入:64
memtable_flush_writers:4
memtable_flush_queue_size:8
rpc_server_type:同步
thrift_framed_transport_size_in_mb:30
in_memory_compaction_limit_in_mb: 64
multithreaded_compaction: true
我是否需要对配置进行任何更改。它与JVM堆空间有关还是由于垃圾收集?
【问题讨论】:
-
您在做批量插入吗?如果是这样,您的批量大小是多少?