【发布时间】:2014-02-06 18:23:24
【问题描述】:
我们在 5 个节点上使用 Cassandra 复制 3 一年多了。
当前版本 1.2.12
我们编写了一个程序,通过hector/Java删除Cassandra中的记录。
在旧操作系统 (OpenSuSE) 上,我们的写入性能约为 2500 ops/sec。
现在我们将节点升级到Ubuntu 12.04 LTS。 (Cassandra 没有被触动,有它自己的突袭系统)。
因此,我们将删除程序移动到具有新操作系统的另一个节点。
在这个节点上写性能大约是70 ops/sec,这是不能接受的。
我们在两台机器上使用相同的 JRE 和相同的 Programm-Code。
/etc/security/limits.conf
都是一样的。
分析慢机器上的java代码说瓶颈是:org.apache.thrift.transport.TIOStreamTransport.read()
有谁知道是否有任何操作系统设置会减慢 cassandra 操作? 感谢您的帮助。
更新:(第 3 天)
- 注意到在具有
kernel 3.5和更低性能的机器上可以...继续搜索 -
kernel 3.8的机器性能不佳
更新:(第 4 天)
“OS/kernel-suspicion”错误/现在我有 2 台内核版本相同的 ubuntu 机器/一台快,一台慢
...没有防火墙...检查网络:P
更新:(第 5 天)
我做了一些交叉测试(通过AllOneConsistencyLevelPolicy 将每个节点相互连接)
我在使用 Kernel 3.8+ 联系 Cassandra-servers kernel <=3.5 的 cassandra-clients 方面遇到了更多问题。
- 3.8 到 3.8 有的慢,有的快
- 3.8 到
我不知道下一步该去哪里搜索...欢迎集思广益 ;)
仍然很慢...只是与localhost 的连接(总是)很快。
在两个不同数据中心(也是两个不同的提供商)的两个不同集群上出现这种现象。所以它很可能与网络基础设施无关。
Cassandras 在第二个数据中心 (2.0.6) 中也有不同的版本
所以我仍然认为这是一些内核问题......没有其他人有这个问题?
找到了……我们正在以非 root 用户身份运行 cassandra。 ubuntu 中有一个额外的“开关”,它限制了打开文件的数量。 它正在跟踪线程。
https://askubuntu.com/questions/162229/how-do-i-increase-the-open-files-limit-for-a-non-root-user
引用: [...]
您还需要编辑/etc/pam.d/common-session*,并在末尾添加以下行:
session required pam_limits.so
[...]
成功了。
【问题讨论】:
-
检查两个操作系统上的文件系统。也许他们是不同的。
-
文件系统是一样的。 cassandra 在一个单独的 raidvolume 上,新的操作系统安装没有改变它。当我在节点 1(旧操作系统)上运行 Programm 时,它具有高性能,在节点 2(新操作系统)上性能很差
标签: java ubuntu cassandra thrift hector