Java 如何调整wildfly托管执行器服务线程池参数

Java 如何调整wildfly托管执行器服务线程池参数,java,multithreading,wildfly,executorservice,Java,Multithreading,Wildfly,Executorservice,我对性能调整有疑问 我正在使用Linux64位服务器,Java1.8和wildfly 10.0.0.final。我开发了一个webservice,它通过wildfly配置使用线程工厂和托管执行器服务 我的WebService的目的是接收包含大量数据的请求,保存数据,然后创建一个新线程来处理这些数据,然后返回对请求的响应。这样,Web服务可以快速返回响应,而无需等待数据处理完成。 已配置的托管执行器服务持有专门用于此目的的线程池配置 就我在配置中的理解而言,核心线程定义了线程池中有多少线程处于活动

我对性能调整有疑问

我正在使用Linux64位服务器,Java1.8和wildfly 10.0.0.final。我开发了一个webservice,它通过wildfly配置使用线程工厂和托管执行器服务

我的WebService的目的是接收包含大量数据的请求,保存数据,然后创建一个新线程来处理这些数据,然后返回对请求的响应。这样,Web服务可以快速返回响应,而无需等待数据处理完成。 已配置的托管执行器服务持有专门用于此目的的线程池配置

就我在配置中的理解而言,核心线程定义了线程池中有多少线程处于活动状态。当核心线程已满时,新请求将放入队列,当队列已满时,将创建新线程,但这些新创建的线程将在一段时间后终止

我试图找出设置线程池的最佳组合。以下是我关注的问题:

  • 如果这个核心线程设置得太小(比如5个),响应时间可能会很长,因为只有5个活动线程在处理数据,其余的线程将被放入队列中,直到队列已满。在重载时,响应时间看起来不太好

  • 如果我将核心线程设置为大(比如100个),这意味着即使系统不忙,池中仍然会有100个活动线程。我没有看到任何允许终止这些线程的配置。我担心有太多的活动线程空闲

有人对如何设置参数来处理重负载和轻负载情况有什么建议吗?实际上我并不熟悉这个领域,比如有多少空闲线程意味着太多,如何测量它

以下是线程工厂和托管执行器服务的配置

<managed-thread-factory name="UploadThreadFactory" jndi-name="java:jboss/ee/concurrency/factory/uploadThreadFactory"/>

<managed-executor-service name="UploadManagedExecutor" Jodi-name="java:jboss/ee/concurrency/executor/uploadManagedExecutor" context-service="default" thread-factory="UploadThreadFactory" hung-task-threshold="60000" core-thread="5" max-thread="100" keep-alive-time="5000" queue-length="500"/>

非常感谢你的帮助

海伦