诗与远方

Cassandra 2.x中文教程(3):初步优化性能

本节适用于Cassandra 2.0.9

在上一节《Cassandra 2.x中文教程(2):执行简单的CQL操作》中,我们已经通过cqlsh建立了keyspacetable以及对表的CRUD操作。本节将介绍针对Cassandra的安装优化(初步)。

根据官方文档介绍,安装JNA可以提升Cassandra的内存使用性能,在Linux上面它就不需要把JVM内存放到swap分区,防止相关的性能问题。

Cassandra 2.0.9需要JNA 3.2.7以上的版本,建议直接下载安装而不通过yum

1、下载jna.jar

1
wget https://maven.java.net/content/repositories/releases/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar

2、把jna.jar放到CLASSPATH

3、修改/etc/security/limits.conf

1
2
3
vi /etc/security/limits.conf
cassandra soft memlock unlimited
cassandra hard memlock unlimited

注:cassandra这个用户名是我们以后用来启动Cassandra的。如果没有上面的语句将提示这样的警告:

1
WARN 21:16:33,064 Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or run Cassandra as root.

4、验证是否成功安装

通过我们在《Cassandra 2.x中文教程(2):执行简单的CQL操作》一文中安装的环境可以看到,如果不安装JNA,那么启动的时候有这样的提示

1
INFO 21:04:58,827 JNA not found. Native methods will be disabled.

安装好JNA以后是这样的提示

1
INFO 21:20:42,076 JNA mlockall successful

5、对于生产环境下的配置官方推荐如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vi /etc/security/limits.conf
cassandra - memlock unlimited
cassandra - nofile 100000
cassandra - nproc 32768
cassandra - as unlimited
vi /etc/security/limits.d/90-nproc.conf
cassandra - nproc 32768
vi /etc/sysctl.conf
vm.max_map_count = 131072
sysctl -p
swapoff --all

重要!!!同步时间

参考:Cassandra2.0官方文档。

原文地址:http://pimin.net/archives/138