Apache Ignite中的会话写超时问题

问题描述 投票:0回答:1

我们正在对Apa​​che Ignite进行负载测试。

我们有1个数据库服务器和1个tomcat的App服务器。

两台机器都有此设置。

CPU Intel I7
Speed   2.6Ghz
Cores   4
Ram 16GB
Disk 500GB

配置->

App server Java Heap -> Xms512m, Xmx3072m.
DB server Java Heap -> Xms512m, Xmx3072m.
DB server persistence -> true
DB server Offheap Max size -> 3072m.
Write throttling enabled.
Client failure detection timeout set to 10000ms
Failure detection timeout set to 30000ms
Query thread pool size is the default -> 8

场景->

通过tomcat App服务器,我已经启动了500个线程,这些线程运行业务逻辑以从Ignite设置和获取数据。在代码方面,存在用于缓存访问的信号锁定,并且当其他线程正在使用资源时,线程通常处于阻塞状态。运行3-4个小时后,App服务器已引发以下警告。

"org.apache.ignite.logger.java.JavaLogger" "warning" "WARNING" "" "294" "Communication SPI session write timed out (consider increasing 'socketWriteTimeout' configuration property) [remoteAddr=xxxxx/xxxxx:47100, writeTimeout=2000]" "" "" "" "" "" "" "" "" "" "" "" "" "" "ROOT" "{""service"":""xxxx"",""logger_name"":""org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi""}"

我还看过很多“可能太长的JVM”打印,在该打印之前显示了大约500ms至1000ms的延迟。

抛出执行后,几分钟后,客户端断开连接,查询抛出了此错误->

org.apache.ignite.internal.IgniteClientDisconnectedCheckedException: Query was canceled, client node disconnected.

虽然它运行良好,但我启用了JProfiler只是为了查看它在App服务器JVM中的运行情况,并且我可以看到很多线程处于“阻塞”状态。而且由于它是4核计算机,所以我可以看到一次(使用逻辑核)一次最多执行12-15个应用服务器线程。然后退出分析器,使其运行2-3个小时,直到发生异常。

尽管我们不会实时产生那么多线程,而在生产中,我们将在服务器上拥有100个内核,但对我们而言,重要的是要了解如何设置可扩展以满足部署需求的部署。需要产生许多线程。

有人可以解释吗?

java multithreading ignite gridgain
1个回答
0
投票

类似长GC的声音导致客户端节点分段。最长的“可能JVM暂停时间过长”消息是什么?您是否尝试增加failureDetectionTimeout?减少客户端节点的堆大小?

© www.soinside.com 2019 - 2024. All rights reserved.