activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (ARTEMIS-485) Global client thread pool is not unbounded by default
Date Mon, 18 Apr 2016 15:10:26 GMT


ASF GitHub Bot commented on ARTEMIS-485:

Github user mtaylor commented on the pull request:
    @bgutjahr Hi.  The issue with unbounded thread pools is that it can eventually exhaust
the system threads.  We have seen this happen and the whole server grinds to a hault.  We
introduced a fixed pool size, to avoid this scenario (though it is possible to exhaust system
memory, since we essentially have an unbounded job queue).  It is possible to add a setting
to timeout threads, which would solve your issue with the fixed thread pool, creating and
storing lots of threads.  We've also recently changed the default thread pool size to something
more reasonable.
    Your changes around API and injecting pools sounds good.  I'll comment in the commit.

> Global client thread pool is not unbounded by default
> -----------------------------------------------------
>                 Key: ARTEMIS-485
>                 URL:
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 1.2.0
>            Reporter: Bernd Gutjahr
> With the change #263, "Allow configurable size for client global pools", the default
global client thread pool has been changed from an unbounded thread pool to a fixed size pool.
In addition, that changed made it impossible to configure the thread pool as unbounded.
> With the unbounded thread pools, client threads are created on demand, but get cleared
after an idle time of one minute. In normal client operations, there weren't many client threads.
With the change to a fixed size thread pool, the pool quickly fills up with the configured
number of client threads, which never go away.
> I have seen that each thread had ~500kB allocated, which leads to 250MB  with the default
of 500 threads.
> Therefore, I would like to have the default changed back to -1 (= unbounded thread pool),
as it also documented in the "Client-Side Thread Management" chapter of the user documentation.
The code also needs to be fixed to handle -1 correctly, as it currently changes it to 2.

This message was sent by Atlassian JIRA

View raw message