Wildfly 增加线程数

Wildfly increasing threads number

我有一个 Wildfly-8.0。0.Final 服务器 运行 在 Windows 机器上处于独立模式。

为了配置 JVM 内存分配,我编辑了 $JBOSS_HOME\bin\standalone.conf.bat,添加了以下内容:

set "JAVA_OPTS=-Xms512M -Xmx2048M -XX:MaxPermSize=512M"

在控制台管理 > 运行时 > 平台 > JVM 中,我注意到内存正常(一段时间后,它正在被释放),但线程数量在每个客户端连接时增加。

对于其他服务器配置,我保留了默认值。

服务器启动时的线程数是:live 60,daemon 20,但几个小时后我发现live 400,daemon 360。我不是专家,但这似乎是一个错误。是真的吗?如何限制线程数?

我注意到在控制台管理配置文件 > 核心 > 线程中 "Thread Pools" 和 "Thread Factories" 都是空的。

根据您提供的信息,几乎不可能知道发生了什么。 当您遇到线程问题时,您应该做的是分析您的应用程序。您可能有一个错误配置的线程池导致了您不知道的问题(从 Quartz 到数据库)。

  1. IDE 方法

使用现代 IDEs,您应该能够在调试模式下看到所有 运行 线程。如果您无法从 IDE 找到以调试模式启动您的应用程序的方法,您可以尝试使用 remote debugging.

  1. 线程转储

JDK 有一个非常好的功能,称为 jstack,您可以使用它来获取 Java 应用程序中所有线程的堆栈跟踪快照。

  1. 专业剖析师

您可以尝试 JDK 的 VisualVM 或众多付费配置文件之一。探查器可以为您提供有关线程的更多信息(它们何时创建、何时死亡、它们的状态如何变化...)

我想你必须在启动脚本中设置以下参数:

-Dorg.jboss.server.bootstrap.maxThreads