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

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

我们观察到这两个服务器节点中的一个几乎需要两倍的时间才能完成其插入过程。两个 WAS 实例都具有合理的配置和相同的群集连接。

请建议可能的原因。


慕桂英4014372
浏览 112回答 1
1回答

元芳怎么了

一种可能性是两个 WAS 节点并不相同,尽管您打算它们完全相同。基本平台性能信息是诊断任何性能问题的起点。我将通过比较两个WAS节点的性能监视信息来开始诊断此问题,如果您使用的是Linux,请使用NMON之类的工具。http://nmon.sourceforge.net/pmwiki.php像这样的命令将导致 nmon 数据每 10 秒写入一个文件,用于 1800 个样本nmon&nbsp;-f&nbsp;-F&nbsp;<filename.nmon>&nbsp;-s&nbsp;10&nbsp;-c&nbsp;1800&nbsp;-t然后使用像NMON可视化工具这样的工具,您可以以图形形式比较两个节点的数据https://nmonvisualizer.github.io/nmonvisualizer/类似的工具可用于其他平台,例如Windows的perfmon。在这种情况下,我最初会寻找两个WAS节点之间使用的CPU的差异。如果插入记录需要较长时间的节点中的 CPU 很高,则可能是该节点配置了较少的核心 (VM),或者该节点中的 java 堆较小,因此它花费了大量时间进行垃圾回收,或者该节点配置了 SSL 而另一个节点未配置, 等等等等。如果节点中的CPU不足,需要更长的时间来插入记录,那么一定存在一些外部瓶颈,限制了节点完成的工作 - 也许节点上的网络端口配置错误,因此该节点和Cassandra集群之间的流量受到限制,或者该节点的Cassandra接口配置不正确, 或者节点可能有一个缓慢或故障的硬盘驱动器,因此读取批量数据以进行插入的速度很慢,等等。性能问题诊断需要收集性能数据,然后跟踪线索。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java