activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dejan Bosanac (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQ-6184) Improve nio transport scalability
Date Thu, 25 Feb 2016 11:06:18 GMT
Dejan Bosanac created AMQ-6184:
----------------------------------

             Summary: Improve nio transport scalability
                 Key: AMQ-6184
                 URL: https://issues.apache.org/jira/browse/AMQ-6184
             Project: ActiveMQ
          Issue Type: Improvement
    Affects Versions: 5.13.0
            Reporter: Dejan Bosanac
            Assignee: Dejan Bosanac
             Fix For: 5.14.0


NIO transport uses unbounded thread pool executor to handle read operation. Under large number
of connections and load, this could lead to large number of threads and eventually OOM errors.
Which is the exact problem that nio transport is supposed to solve. Some work has been done
in [AMQ-5480], to make this configurable, but there's still more work to make it more robust.
Creating a fixed thread pool with a queue in front gives much better results in my tests.

Additionally, the same thread pool is used for accepting connections ([AMQ-5269]). This can
lead to the broker not being able to accept new connections under the load. I got much better
results when experimenting with implementing acceptor logic directly and handling it in the
same thread (without reintroducing the old problem). 

With these two improvements in place, the broker accept and handle the number of connections
up to the system limits.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message