[ https://issues.apache.org/jira/browse/JAMES-3086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532065#comment-17532065 ]
Benoit Tellier commented on JAMES-3086: --------------------------------------- Hello, I am getting a fresh look at this: - elastic threads are not related to elasticsearch but is the kind of thread we use in reactor (our reactive library) to handle potentially blocking taks - Those elastic threads sits there doing nothing. Waiting... - Use of elastic is deprecate because it just starts too many threads, reactor community prefer using bounded elastic. Such a move should be done in James too. A SEDA architecture can be used to prevent deadlocks. - As Cassandra 3.x is not fully reactive, paging can block. We thus aggressively switch threads to avoid blocking in parralel threads. A migration to a true reactive driver (4.x) would allow us to solve this, dramatically reducing the count of allocated elastic threads. This would also decrease scheduling overhead, context switches... - Busy threads are the SMTP threads as well as the spooler threads (mail processing) which essentially blocks. This would benefit from a migration to pure reactive code just like we did for the IMAP protocol. I would be happy to get sponsored doing this! I suggest you use https://github.com/jvm-profiling-tools/async-profiler when reporting "over exhausted CPU", its flame graphs allows knowing exactly what the CPUs are doing which is invaluable. This is further more a really easy to use tool. > Mail Server Load Test giving very low throughput > ------------------------------------------------ > > Key: JAMES-3086 > URL: https://issues.apache.org/jira/browse/JAMES-3086 > Project: James Server > Issue Type: Bug > Components: POP3Server, SMTPServer > Affects Versions: 3.3.0 > Reporter: Rashid Mahmood > Priority: Blocker > Attachments: executors-waiting-to-acquire.png, > image-2020-03-04-09-30-30-054.png, threaddump.txt > > > After functional tests, we are performing load tests against James Server > setup with Casandra/Elasticsearch(cassandra-ldap-guice) packaging option. > With JMeter constant throughput timer of 300 SMPT requests per seconds we are > achieving around 10 requests per seconds. Each Request is with 100KB > attachment. Observed CPU of the machine (where MailServer running) was over > exhausted. > Many of the threads in thread dump were in awaiting notifications state. > I see around 100 threads from Elastic search, is there any configuration to > control this? > Where is the bottleneck? > !image-2020-03-04-09-30-30-054.png! > > See the thread dump in attachment. -- This message was sent by Atlassian Jira (v8.20.7#820007) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org