Cassandra性能优化的一些小tips

标签: 相关总结 Cassandra 性能优化 | 发表时间:2014-02-14 21:11 | 作者:matchbox
出处:http://www.dengchuanhua.com

最近,datastax的开发博客上发了一篇文章 How not to benchmark Cassandra (不要这样压测Cassandra),文章说了压测Cassandra时应该避免的几个地方。其实,对于正常使用情况下提升Cassandra的性能,避免某些瓶颈,里面的有些tips还是非常有用的,所以摘录出来,本文并非原文翻译,而是选择了其中几点,并总结了自己优化Cassandra的一些实践,如果有需要,请直接查看链接。

1. 不要在虚拟机上压测

原因就是很容易受同一母机上别的实例的影响,如磁盘,网络等在高峰的时候非常明显。

2. 不要在共享存储的机器上测试

比如Amazon的EBS,延时可能会比较高,而基于LSM结构的cassandra需要两次访问存储(一次是commitlog,另一次是sstable)

3. 要合理配置OS磁盘相关参数

实际上Cassandra是运行在某一OS之上,如果OS中磁盘的参数配置不合理,那么极有可能对Cassandra性能造成消极影响,例如如果OS预加载是32MB,那么Cassandra读1KB的数据就需要读32MB,这是会严重影响性能的。另外,关闭OS的swap对性能会有提升,Datastax提供了一个工具来检测指导这些参数配置,详情猛击: pre-flight check

4. 要正视一些best practices

例如,不要错过 as Shift recently illustrated so well 这些集众家汇聚的经验,jVM和Cassandra设置会让Cassandra运行得更好更快。

5. 记得打开row cache 和key cache

这没啥说的,这两点对于读性能提升很明显,除非您的Cassandra集群对读没啥要求,那么记得打开配置一个合理的参数。

6. 善用ringcache

ringcache源码在org.apache.cassandra.client下,Cassandra中包含有一个对ringcache的测试类,建议看看里面的用法,对于读写性能应该有很大的帮助。

7. 选择合适的读写一致性

如果数据的重要性不是非常高,写是one比quorum要快很多,如果一致性要求不是非常高,就不要用all, local_quorum或者local_one(该一致性级别目前暂未发布,不过有相关的jira了)将会是比较好的选择。

8. 避开Cassandra的一些较弱的地方

例如尽量避免使用嵌套行,尽量别在跨DC中使用强一致性…..等等

非特别说明,均为原创文章,转载请注明: 转载自 邓的博客

本文链接地址: Cassandra性能优化的一些小tips

相关 [cassandra 性能优化 tips] 推荐:

Cassandra性能优化的一些小tips

- - 邓的博客
最近,datastax的开发博客上发了一篇文章 How not to benchmark Cassandra (不要这样压测Cassandra),文章说了压测Cassandra时应该避免的几个地方. 其实,对于正常使用情况下提升Cassandra的性能,避免某些瓶颈,里面的有些tips还是非常有用的,所以摘录出来,本文并非原文翻译,而是选择了其中几点,并总结了自己优化Cassandra的一些实践,如果有需要,请直接查看链接.

Cassandra代替Redis?

- - Tim[后端技术]
最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例. 而这篇 百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例. 考虑到到目前仍然有不少网友在讨论Redis的用法问题,Redis是一个数据库、内存、还是Key value store?以及Redis和memcache在实际场景的抉择问题,因此简单谈下相关区别.

Cassandra on DC/OS

- - 灰狐博客
Apache Cassandra 是一个强大的开源分布式NoSQL数据库,高度的可伸展性. 基于DC/OS构建其分布式集群是个非常值得采纳的方法,其基本思路是:. 把Cassandra放到Docker里,然后由DC/OS调度Cassandra容器集群运行、管理. Mesos 的 persistence primitives 是一个新的强大的工具,它使得更多的有状态应用可以运行在 Mesos 上.

hive 优化 tips

- - CSDN博客推荐文章
一、     Hive join优化. 也可以显示声明进行map join:特别适用于小表join大表的时候,SELECT /*+ MAPJOIN(b) */ a.key, a.value FROM a join b on a.key = b.key. 2.     注意带表分区的join, 如:.

mysql tips两则

- - jackyrong
mysql tips两则,都可以用来查看当前执行的语句. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Android开发Tips

- - CSDN博客推荐文章
欢迎Follow我的 GitHub, 关注我的 CSDN.. 介绍一些, 在Android开发中, 会经常使用的小知识点.. submodule与git可以保持实时同步. 导入, 路径多于一个, 前面不添加冒号(:).. 使用PackageManager.. // 检查App是否安装 private boolean appInstalledOrNot(String uri) {.

Cassandra 1.1的缓存策略

- - NoSQLFan
从0.5和0.6版本开始, Cassandra就提供了主键 缓存和行缓存. 在1.1 版本中,Cassandra的核心开发团队重新对缓存策略进行了设计和实现,以提供配置更简单但同时又更高效的缓存效果. 为什么要将缓存集成到数据库内部. 实际上,缓存既可以储存到数据库内部,也可以是外部的独立缓存层.

MariaDB的Cassandra存储引擎

- - InfoQ cn
MariaDB已经宣布了Cassandra存储引擎的一个预览版本. 该插件允许MariaDB通过标准SQL语法使用Cassandra集群. MariaDB并不是第一款为Cassandra提供SQL支持的产品. 例如,Simba提供了一个 Cassandra ODBC驱动,可用于大多数的ODBC兼容工具.

HTML 5中的tips两则

- - jackyrong
1 input type中的required属性,支持正则表达式,比如.  

数据库的优化tips

- - CSDN博客数据库推荐文章
数据库   TIPS::. 1、用于记录或者是数据分析的表创建时::使用Id作为主键,1,2,3...表示消息条数,用户账号id用于做外键,一个用户对应唯一个accountId.                                     一个accountId可以对应多条数据;. 2、创建索引::    例如需要根据注册版本号和注册游戏ID来查询另外一些字段的时候,就可以根据版本号和游戏ID来创建索引::相当于就是根据查询条件来建索引;.