首页 > 解决方案 > 如何调整wildfly managed-executor-service 线程池参数

问题描述

我对性能调整有疑问。

我正在使用 Linux 64 位服务器,java 1.8 和 wildfly 10.0.0.final 。我开发了一个 web 服务,它通过 wildfly 配置使用线程工厂和托管执行器服务。

我的webervice的目的是接收有大数据的请求,保存数据,然后创建一个新线程来处理这些数据,然后返回对请求的响应。这样,webservice 可以快速返回响应,而无需等待数据处理完成。配置的 managed-executor-service 拥有一个专门用于此目的的线程池配置。

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

我试图弄清楚设置线程池的最佳组合是什么。以下是我的担忧:

有没有人对如何设置参数以处理重负载和轻负载情况有任何建议,而不会在池中留下太多空闲线程?我其实不熟悉这个领域,像多少空闲线程意味着太多,如何衡量它。

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

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

非常感谢你的帮助,

海伦

标签: javamultithreadingwildflyexecutorservice

解决方案


推荐阅读