Major performance hit with MINA 2.0.9 vs 2.0.7


Andi has been doing some awesome performance testing of Openfire and finds that there is a major regression of scalability from Openfire 3.9.3 to 3.10.1. Here are some Tsung reports

3.9.3 reports:

3.10.1 reports:

Andi then did a test with simply replacing MINA in 3.10.1 from version 2.0.9 to 2.0.7

Here's the test result for 3.10.1 with mina 2.0.7. Very similar to the 3.9.3 performance. Also got to around 15k users with memory being stable around 300-400MB.

This MINA Jira issue may be related

It may be time to consider downgrading Openfire to MINA 2.0.7




Daryl Herzmann
June 19, 2015, 12:38 PM

(06/18/2015 10:37:06 PM) Andi: Alright so the performance tests from today are looking pretty good. 3.10.1 with Tom's changes to revert mina back to 2.0.7 are on par with the performance of 3.9.3.
(06/18/2015 10:38:06 PM) Andi: The test we ran today was to get about 19k users logged in, have them IM with each other as well as create and join some of about 250 rooms.
(06/18/2015 10:38:38 PM) Andi: Some of these rooms ended up with 200 to 350 users, all of which are posting messages. Not at crazy rates but somewhat realistic scenarios
(06/18/2015 10:39:00 PM) Andi: So overall a pretty decent load of connected users, IM messages as well as MUC activity going on.
(06/18/2015 10:41:09 PM) Andi: Also the earlier thing I mentioned about higher mem usage of 3.10.1 is a non issue. while at the end after the test, 3.10.1 ended up with more 'used' memory, most of that was unreachable objects and just didn't get garbage collected yet. Here's the heapdump MAT analysis of that:
(06/18/2015 10:41:58 PM) Andi: and here are the 4 Tsung reports for the 2 runs of the test against 3.9.3 and 2 runs of the test against 3.10.1 with Tom's changes. Also Openfire was not restarted between the 2 3.10.1 runs.
(06/18/2015 10:42:16 PM) Andi:
(06/18/2015 10:42:29 PM) Andi:
(06/18/2015 10:42:42 PM) Andi:
(06/18/2015 10:42:55 PM) Andi:

Tom Evans
June 17, 2015, 10:58 PM

PR submitted against master (3.11.0), but can also be merged into 3.10 branch as needed to support a 3.10.2 patch release.

Tom Evans
June 17, 2015, 10:57 PM
Tom Evans
June 17, 2015, 9:17 PM

I'll grab this one. Looks like we need to (at least) revert this commit:

and maybe several others related to NIOConnection.



Tom Evans


Daryl Herzmann