gpt4 book ai didi

java - Apache Ignite 中的 session 写入超时问题

转载 作者:行者123 更新时间:2023-12-01 17:04:26 28 4
gpt4 key购买 nike

我们正在对 Apache Ignite 进行负载测试。

我们有1个DB服务器和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 应用服务器,我启动了 500 个线程,它们运行业务逻辑来设置和从 Ignite 获取数据。从代码角度来看,缓存访问有信号量锁定,并且当其他线程正在使用资源时,线程通常处于阻塞状态。运行大约 3-4 小时后,应用程序服务器抛出了下面提到的警告。

"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""}"

在显示大约 500 毫秒到 1000 毫秒延迟的打印之前,我还看到过不少“可能太长的 JVM”打印。

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

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

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

虽然在实时情况下,我们不会产生那么多线程,并且在生产中,我们将在服务器上拥有数百个核心,但对于我们来说,了解如何设置可扩展以满足需要产生许多线程。

有人可以解释一下吗?

最佳答案

听起来像是长GC导致客户端节点分段。最长的“可能太长的 JVM 暂停”消息是多少?您是否尝试过增加failureDetectionTimeout?减少客户端节点的堆大小?

关于java - Apache Ignite 中的 session 写入超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61472976/

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