我已经为Cassandra的一个列族编写了600万条记录(3个节点,每个节点2 GB堆)。
现在,当我按顺序读取相同的600万条记录时,我发现读取性能有很大差异(读数/秒)。
我附上了图表。任何帮助表示赞赏。
答案 0 :(得分:0)
可能有不同的原因。有关您的案例的更多信息是必需的。下面我提出了一些你可以做的建议:
如果您使用cassandra 2.0您可以按相关层获取每个查询的时间细分。 在sqlsh工具中,可以通过“TRACING ON”命令打开它。可以对Cassandra Java驱动程序执行相同的操作以获取更多详细信息。因此,使用此功能可以确定大部分时间消耗的图层。 (例如,您可能有一些网络问题)
查看Cassandra日志并尝试将其条目与您的表现波动并列
创建色谱柱族的直方图并进行分析 ./nodetool -h cfhistograms (您可以在这里找到关于直方图的一些解释:http://narendrasharma.blogspot.com/2011/04/cassandra-07x-understanding-output-of.html)
观察Java垃圾收集器日志(https://blog.codecentric.de/en/2014/01/useful-jvm-flags-part-8-gc-logging/)
希望有所帮助