Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Datastax cassandra存在性能问题_Performance_Cassandra_Datastax - Fatal编程技术网

Performance Datastax cassandra存在性能问题

Performance Datastax cassandra存在性能问题,performance,cassandra,datastax,Performance,Cassandra,Datastax,我已经在两台独立的机器上安装了datastax Cassandra(一台有16gb的RAM,另一台有32GB的RAM),并且使用了大多数默认配置 我已经创建了一个大约有700列的表,当我尝试使用java插入记录时,它能够每30秒插入1000条记录,这对我来说似乎非常少,因为根据datastax基准,它应该在18000+左右。令人惊讶的是,32GB和16GB RAM机器的性能都是一样的 我是新来的卡桑德拉,有人能在这方面帮助我吗。我觉得Cassandra.yaml配置有问题。不久前,我在Cassa

我已经在两台独立的机器上安装了datastax Cassandra(一台有16gb的RAM,另一台有32GB的RAM),并且使用了大多数默认配置

我已经创建了一个大约有700列的表,当我尝试使用java插入记录时,它能够每30秒插入1000条记录,这对我来说似乎非常少,因为根据datastax基准,它应该在18000+左右。令人惊讶的是,32GB和16GB RAM机器的性能都是一样的


我是新来的卡桑德拉,有人能在这方面帮助我吗。我觉得Cassandra.yaml配置有问题。

不久前,我在Cassandra上进行了基准测试和调优活动。找到了下面提到的一些有用的设置

  • 在卡桑德拉,数据部门以战略为基础。默认情况下是循环和令牌感知策略的组合,在几乎所有情况下效果最佳。如果您想定制数据分发,那么可以在Cassandra中编写新的数据分发策略,即基于位置、基于属性等分发数据,这最适合定制需求

  • Cassandra使用Bloom过滤器确定SSTable是否具有特定行的数据。我们使用bloom过滤器值为0.1,以保持效率和开销之间的平衡

  • 一致性级别是NoSQL数据库中的关键参数。请按法定人数或一人进行尝试

  • JVM调优中的其他选项(如堆内存大小、幸存率)应该是最佳的,以实现最高性能

  • 如果有大内存可用,则可以增加memTable大小,使其适合内存,从而提高性能。将memTables刷新到磁盘的时间间隔应足够高,以便不会执行不必要的IO操作

  • Cassandra中的并发设置对于扩展非常重要。根据我们的测试和观察,我们发现当并发性设置为核心数*5,本机线程数设置为256时,Cassandra的性能更好

  • 遵循Cassandra like建议的其他调谐设置;禁用交换、ulimit设置和压缩设置

  • Cassandra中的复制因子应等于集群中的节点数,以实现系统的最大吞吐量

  • 这些主要用于插入,但对读取有一点影响。
    我希望这将对您有所帮助:)

    您是否使用异步写入

    尝试运行cassandra stress,这样可以隔离客户问题

    另一个选项是Brian的cassandra loader:


    因为您是用Java编写的,所以请使用Brian的代码作为最佳实践示例。

    您编写的代码有多大?你能分享一些你的客户代码吗?您是否尝试过使用cassandra stress或cassandra loader进行基准测试?这样你就可以把客户端代码从等式中去掉。我的表很大,有700多列,很抱歉,我无法共享客户端代码。我已经用java编写了客户端,还没有尝试cassandra loader。我将尝试cassandra loader一次。@Nachiket Kate,我写的cassandra在1309.032秒内向表中写入了6687176行。i、 e.大约每秒5000条,这是一个好的性能……但是对于2亿条记录来说,这需要1小时……性能太差了。。。请帮助我提高性能。数字8将给您带来一些严重的IO开销,以及在大于3的集群上大量不必要的磁盘使用。到目前为止,我只看到过一个用例CL应该高于3,这是因为他们使用的是C*1.x,而客户端应用程序很糟糕。