[ 
https://issues.apache.org/jira/browse/JAMES-3086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051050#comment-17051050
 ] 

Benoit Tellier commented on JAMES-3086:
---------------------------------------

Helloo Rachid.

Thanks for in depth testing, this kind of feedback is much wanted.

Realse 3.4 degraded ActiveMQMailQueue performance and had undergone recent work 
regarding performance. cf https://github.com/linagora/james-project/pull/2942

At Linagora, we have similar performances (30 mail / seq, but of smaller size 
when running cassandra-guice james-server stress tests on a single machine).

Regarding ElasticSearch indexing, there is no control over thread count. You 
need to now that in cassandra-guice, mailbox event traitment (and thus 
elastic-search indexing) is scheduled asynchronously for each newly append 
messages (in a reactor elastic thread blocked in synchronous IO)

distributed-james (akka "rabbit") is executing indexing behind a message queue 
thus reducing pressure. 

To be noted: I believe ElasticSearch indexing could be ported to a reactive 
non-blocking code style with moderate efforts. We would need to leverage 
futures in the elasticsearch driver, then allow reactive-non-blocking execution 
for MailboxListeners. That way "ElasticSearch" threads won"t be IDLE. Would you 
be interested to contribute on this?


> 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: 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.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to