如何检查连接是否是性能瓶颈

How to check if connection is the performance bottleneck

我将 Apache Ignite 与 Java 应用程序一起使用,并观察到随着并发性的增加,响应时间也会增加。我注意到 java 应用程序和 Ignite 服务器之间只建立了一个连接。我如何确认这是否是瓶颈?线程转储显示某些线程正在等待 Socket.Read 方法。它与连接数有关吗?

自 Ignite 2.7.6 起,Thin Client 仅与服务器节点建立一个连接。是的,当从多个线程使用时它会成为瓶颈。

我建议每个线程有一个 IgniteClient 实例,或者使用某种连接池。

此外,Ignite 2.8 引入了分区感知(计划于今天发布),其中与每个指定服务器节点建立瘦客户端连接,并将基于密钥的请求分派到主节点。这也可能对您有所帮助。

您是否尝试过 java JDK 附带的应用程序(JVisualVM) or best yourkit 以确定您在哪些方面浪费了时间?