как настроить параметр пула потоков управляемого сервиса-исполнителя wildfly - PullRequest
0 голосов
/ 01 октября 2018

У меня есть вопросы, касающиеся настройки производительности.

Я использую 64-битный сервер Linux, Java 1.8 с wildfly 10.0.0.final.Я разработал веб-сервис, который использует фабрику потоков и сервис управляемого исполнителя через конфигурацию wildfly.

цель моего веб-сервиса - получить запрос с большими данными, сохранить данные, а затем создать новый поток для обработки этих данных, а затем вернуть ответ на запрос.Таким образом, веб-служба может быстро вернуть ответ, не дожидаясь окончания обработки данных.Сконфигурированная управляемая служба executor-service содержит конфигурацию пула потоков специально для этой цели.

для моего понимания конфигурации, core-thread определяет, сколько потоков будет живо в пуле потоков.когда основной поток заполнен, новые запросы будут помещены в очередь, когда очередь заполнена, тогда будут созданы новые потоки, но через некоторое время эти вновь созданные потоки будут прерваны.

Я пытаюсьвыясните, какая комбинация лучше всего подходит для установки пула потоков.Следующие мои проблемы:

  • если этот основной поток установлен слишком маленьким (например, 5), возможно, время ответа будет долгим, потому что только 5 активных потоков обрабатывают данные, остальныепомещаются в очередь, пока очередь не заполнится.время отклика не будет хорошо выглядеть при большой нагрузке

  • , если я установлю для параметра core-thread большой (например, около 100), это означает, что даже система не занята,еще будет 100 живых потоков в пуле.Я не вижу никакой конфигурации, которая могла бы позволить этим потокам быть прекращенными.Я обеспокоен тем, что слишком много живых потоков простаивает.

Есть ли у кого-нибудь какие-либо предложения о том, как установить параметры для обработки как тяжелой, так и легкой нагрузки без слишком большого количества свободных потоков вбассейн?Я на самом деле не знаком с этой областью, например, сколько свободных потоков означает слишком много, как ее измерить.

Ниже приведена конфигурация для фабрики потоков и управляемого-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"/>

Большое спасибо за вашу помощь,

Елена

...