你好,游客 登录 注册 搜索
背景:
阅读新闻

Cassandra1.1.2调优笔记 续 -

[日期:2013-03-18] 来源:  作者: [字体: ]

一个数据存储项目,考虑到Cassandra卓越的写性能,决定使用Cassandra作为数据存储服务器。
使用前进行了若干性能测试:分别为写性能和读性能。
版本:1.1.2。服务器集群:三台服务器,8核,8G内存,同一局域网。

结果:
写性能测试,复制因子(replication_factor)=2,成功写入一份即可,共测试了4个多小时,写入1亿余条记录,平均每秒6400多条。
读性能测试,使用二级索引查找,成功获取一份即可,平均每秒900多条记录。


-------------------------------------以上结果有待进一步优化------------------------------------


记录下调优主要的几个方面:
1)表创建(使用了CQL),配置相关参数:

compression_parameters:sstable_compression = 'DeflateCompressor'
AND compression_parameters:chunk_length_kb = 64
AND caching='KEYS_ONLY';

 
其中,compression可以减少磁盘使用量,对读写效率都有一定的提升效果;caching设置为KEYS_ONLY,只对关键字缓存,需要注意的是虽然设置为ALL可以缓存行数据,命中减少两次查找,但是由于数据量大,内存有限,所以会导致查询效率很低。
2)设置两块物理硬盘,路径分别对应的data_file_directories和commitlog_directory
3)cassandra.yaml中commitlog_directory设置为16。
4)concurrent_writes:64(并没有比较修改前后写性能变化,不确定优化效果)
cassandra.yaml中,其余参数不变。

 

 

问题:
1)
当Cassandra关闭后,内存占用还高达5G,不清楚具体原因。
2)使用主键进行查询,性能比第二主键快的不是一点半点,原因还有待研究。

 

 

 

 --------------------------------------------------------后续 优化-------------------------------------------------------

接上:

这几天又做了一些调整,如下,

1)修改JDK,改用JDK7,64位。

2)表创建(使用了CQL),配置相关参数修改为:

 

 

compression_parameters:sstable_compression = 'SnappyCompressor'
AND compression_parameters:chunk_length_kb = 64
AND caching='KEYS_ONLY'
AND  read_repair_chance = 0.000001;

 

测试结果:

写平均每秒8400多条。
读平均每秒2000多条记录。

有一定的提升。

 

PS:对上面第一个问题,我用的是top命令查看, 有以下结果:

Mem:   7772048k total,  5703856k used,  2068192k free,    24992k buffers

 

是我理解有误,used并不表示使用了多少,而是linux内核当前可控制的内存数,这个和windows是不同的。

 





收藏 推荐 打印 | 录入: | 阅读:
相关新闻