Cassandra 卡桑德拉性能调整

Cassandra 卡桑德拉性能调整,cassandra,ycsb,Cassandra,Ycsb,我已成功安装了一个包含10个节点的多节点Cassandra群集, nodetool status命令显示每个节点都处于正常状态 但是我的表现很差 以下是我的结果: Operations /seconds = 4000 Read Latency = 13ms write Latency = 10ms 我使用YCSB来衡量绩效 我到目前为止所做的调整: Consistency level = 1 Replication Factor = 3 Heap size = 4GB 我的硬件: 每个节点都

我已成功安装了一个包含10个节点的多节点Cassandra群集, nodetool status命令显示每个节点都处于正常状态

但是我的表现很差

以下是我的结果:

Operations /seconds = 4000
Read Latency = 13ms
write Latency = 10ms
我使用YCSB来衡量绩效

我到目前为止所做的调整:

Consistency level = 1
Replication Factor = 3
Heap size = 4GB
我的硬件: 每个节点都是带有CentOS的VM

2GHZ CPU with 8 cores
8GB RAM
1GB/ps N/W

请让我知道我还可以调整哪些设置以获得群集的最大性能。

如果您有一个系统,其中有10个虚拟机和一个磁盘,则任何(不在内存中)数据库的性能都会很差。尤其是旋转磁盘(无论多么昂贵)将成为一个主要的竞争点。有了一个非常好的SSD,您可能能够完成一些实例,但性能压力测试可能总是会遇到这一点或CPU瓶颈(如果系统配置正确的话)

4gb堆和压力工作负载很有可能会导致GC和内存问题,您对此有任何监控吗?可以使用visualvm并连接到
ip:7199
(ip设置在
cassandra env.sh


每个虚拟机的8gb内存处于最低规格端。您需要至少8gb的JVM堆以及堆外内容和操作系统的空间。16gb的系统可能就足够了。共享磁盘将再次破坏性能,因此它只能发挥这么大的作用。但是应该能够比4k/秒做得更好。

物理硬件是什么样子的?虚拟机是否必须共享资源(CPU、RAM、磁盘、NIC)?@Ralf是的,虚拟机共享资源,总RAM为64GB,我已为CPU和NIC共享的每个虚拟机分配了8GB/RAM。在单个物理机上运行所有C*节点几乎不会产生任何水平扩展,也不会产生任何硬件故障容限。所有节点竞争相同的资源。特别是磁盘,这可能是您的瓶颈。@Ralf我不认为磁盘会成为瓶颈,因为:I)我正在使用NetApp Storage Controller和SAS磁盘(因此我有足够的磁盘)ii)我已使用nmon进行了检查,CPU利用率约为60%,即使YCSB以200个线程运行,内存利用率约为50%,是否还有其他瓶颈原因?或者一些我可能错过的卡桑德拉配置?什么操作系统?什么版本的C*?ycsb的哪个版本/分支?但我有通过光纤通道连接到服务器的存储控制器。(16 x 600GB SAS磁盘)。没有CPU瓶颈,因为我使用nmon来监视CPU,当YCSB运行时,它仍有60%的使用率。我知道我使用的是虚拟机,性能会受到影响,但4000次操作/秒仍然太低,我现在将检查GC并在此处更新。我怀疑低堆是您的直接瓶颈。您能否尝试使用5个节点并将操作系统内存/堆的大小增加一倍?8gb的默认jvm堆设置非常好。