Java/Hector cassandra客户端在不同操作系统上的不同性能

Java/Hector cassandra客户端在不同操作系统上的不同性能,java,ubuntu,cassandra,thrift,hector,Java,Ubuntu,Cassandra,Thrift,Hector,我们在5节点replication 3上使用了Cassandra,至今已超过一年 当前版本1.2.12 我们编写了一个程序,通过hector/Java在Cassandra中删除记录 在旧操作系统(OpenSuSE)上,我们的写入性能大约为2500次/s。 现在我们正在将节点升级到Ubuntu 12.04 LTS。(Cassandra未被触碰,有自己的raid系统)。 因此,我们将删除程序移动到具有新操作系统的其他节点。 在该节点上,写入性能约为70 ops/sec,这是不可接受的 我们在两台机器

我们在5节点replication 3上使用了
Cassandra
,至今已超过一年

当前版本1.2.12

我们编写了一个程序,通过
hector/Java
Cassandra
中删除记录

在旧操作系统(
OpenSuSE
)上,我们的写入性能大约为2500次/s。 现在我们正在将节点升级到Ubuntu 12.04 LTS。(
Cassandra
未被触碰,有自己的raid系统)。 因此,我们将删除程序移动到具有新操作系统的其他节点。 在该节点上,写入性能约为
70 ops/sec
,这是不可接受的

我们在两台机器上使用相同的
JRE
和相同的程序代码

/etc/security/limits.conf 
都是一样的

在低速机器上评测java代码的瓶颈是:
org.apache.thrift.transport.TIOStreamTransport.read()

有人知道是否有任何操作系统设置会减慢卡桑德拉的操作速度吗? 谢谢你的帮助


更新:(第3天)

  • 请注意,在具有
    内核3.5
    和更低版本的机器上,性能还可以。。。继续搜索
  • 具有
    内核3.8
    的机器性能较差

更新:(第4天)

“操作系统/内核怀疑”是错误的/现在我有两台ubuntu机器具有相同的内核版本/一台速度快,一台速度慢

。。。没有防火墙。。。检查网络:P


更新:(第5天)

我做了一些交叉测试(通过
AllOneConsistencyLevelPolicy
将每个节点彼此连接起来)
使用
Kernel 3.8+
联系cassandra服务器
Kernel的cassandra客户端遇到了更多问题,请确保两者的资源限制和raid配置相同。Readahead是一种特别常见的错误配置设置;请参阅本页上的“setra”:

特别适用于以非root用户身份运行Cassandra的Ubuntu:

您还需要编辑
/etc/pam.d/common session*
,并在末尾添加以下行:

会话需要pam\u限制。因此


cp.

检查两个操作系统上的文件系统。也许它们是不同的。文件系统是一样的。cassandra在一个单独的RAID卷上,新的OS安装并没有改变这个卷。当我在节点1(旧操作系统)上运行程序时,它的性能很高,而在节点2(新操作系统)上,它的性能很差。这是设置卡桑德拉的一个很好的检查清单。我检查了设置,所有的RAID-SA看起来都正常。也许我的问题不太准确。问题似乎不是集群,而是Java客户端(Hector),它在ubuntu上的性能很差。我将改进我的问题以解决这个问题。