kir*_*ran 2 performance cassandra datastax
我已经在两台独立的机器上安装了数据集Cassandra(一台带有16GB RAM,另一台带有32GB RAM),并且配备了大部分默认配置.
我已经创建了一个包含大约700列的表,当我尝试使用java插入记录时,它能够每30秒插入1000条记录,这对我来说似乎非常少,因为根据数据共享基准,它应该在18000+左右.令我惊讶的是,32GB和16GB RAM机器的性能相同.
我是Cassandra的新手,任何人都可以帮助我.我觉得我在使用Cassandra.yaml配置时出错了.
我前段时间在Cassandra上做过基准测试和调整活动.找到一些有用的设置,如下所述,
在Cassandra,数据部门是基于策略.默认是循环法和令牌识别策略的组合,几乎在所有情况下都能发挥最佳作用.如果您想自定义数据分布,则可以在Cassandra中编写新的数据分发策略,即根据位置,基于属性等分布数据,这对于定制需求是最佳的.
Cassandra使用Bloom过滤器来确定SSTable是否具有特定行的数据.我们使用bloom过滤值为0.1来保持效率和开销之间的平衡
一致性级别是NoSQL数据库中的关键参数.尝试使用Quorum或一个.
JVM调优中的其他选项,如堆内存大小,幸存者比率应该是最佳的,以实现最大性能
如果有大容量内存,则可以增加memTable大小,这可以适应内存,并且可以提高性能.将memTables刷新到磁盘间隔应该足够高,以便它不应执行不必要的IO操作
Cassandra中的并发设置对于扩展非常重要.根据我们的测试和观察结果,我们发现当并发设置为no时,Cassandra的性能会更好.核心*5和native_transport_max_threads设置为256
遵循Cassandra推荐的其他调整设置; 禁用交换,ulimit设置和压缩设置
Cassandra中的复制因子应该等于no.集群中的节点,以实现系统的最大吞吐量.
这些主要是为了插入而略微影响读取.我希望这能帮到您 :)