gpt4 book ai didi

java - Cassandra 性能相对于两个应用程序主机是不同的

转载 作者:行者123 更新时间:2023-12-02 10:09:34 25 4
gpt4 key购买 nike

我的java应用程序将批量记录写入cassandra集群。我的应用程序在两个WAS节点上运行,并且都连接到同一个集群。批量插入(异步)进程在两个was节点上同时运行。第一个 WAS 节点插入要插入的整组记录的前 50%,第二个 WAS 节点插入其余 50%。

我们观察到这两个服务器节点之一花费了几乎两倍的时间来完成其插入过程。两个 WAS 实例都具有合理的配置并连接相同的集群。

请提出可能的原因。

最佳答案

一种可能性是两个 WAS 节点不相同,尽管您希望它们相同。基本平台性能信息是诊断任何性能问题的起点。

如果您使用的是 Linux,我将通过比较两个 WAS 节点的性能监控信息(使用 NMON 等工具)来开始诊断此问题。

http://nmon.sourceforge.net/pmwiki.php

这样的命令将导致 nmon 数据每 10 秒写入文件 1800 个样本

nmon -f -F <filename.nmon> -s 10 -c 1800 -t

然后使用 NMON 可视化工具等工具,您可以以图形形式比较两个节点的数据

https://nmonvisualizer.github.io/nmonvisualizer/

类似的工具可用于其他平台,例如适用于 Windows 的 perfmon。

在这种情况下,我最初会寻找两个 WAS 节点之间使用的 CPU 的差异。如果插入记录所需时间较长的节点中的 CPU 较高,则该节点可能配置了较少的内核 (VM),或者该节点中的 java 堆较小,因此花费了大量时间进行垃圾收集,或者可能该节点配置了 SSL,而另一个节点没有配置,等等

如果节点中的 CPU 较低,需要更长的时间来插入记录,那么一定存在一些外部瓶颈限制了节点完成的工作 - 可能节点上的网络端口配置错误,导致该节点之间的流量Cassandra 集群受到限制,或者该节点的 Cassandra 接口(interface)配置不正确,或者该节点的硬盘驱动器速度缓慢或出现故障,因此读取批量数据进行插入速度很慢,等等。

性能问题诊断需要收集性能数据,然后跟踪线索。

关于java - Cassandra 性能相对于两个应用程序主机是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55100574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com