powered by Jive Software

How to increase Openfire capacity?

I saw a couple of posts saying one Openfire node is able to handle up to 200000 concurrent users or at least 50000. However, no one really explained how to achieve such a performance.

Our Openfire installation had 4000 real concurrent users and Java Memory was always 95-99%.

We switched to 64-bit JVM to let it have more memory but it looks like once we have 5000-6000 users we’ll have problems again. Tried to play with cache settings a little bit – no real improvement, maybe it wasn’t the right direction.

I have 2 questions:

  1. What should I do to make it work with 50000 users?
  2. How many concurrent users can this installation handle?

Our current configuration:

Windows Server 2008 R2

CPU: Quad-Core AMD 2.20 GHz (2 processors)

4 Gb RAM

Openfire 3.8.1

Java: 1.6.0_33 (64-bit) (-Xms1024m; -Xmx3200m; -Xss128k; -Xoss128k)

Database: MySQL 5.5.28 (max 45 connections), running on the same machine

Average roster is 1 to 3 users. No groups. Not more than 1 entry in Vcard.

PEP disabled. Proxy disabled.

Cache settings:

cache.group.size 200000

cache.lastActivity.size 1500000

cache.offlinePresence.size 100000

cache.routeUserSessions.size 400000

cache.userCache.size 1000000

cache.username2roster.size 1000000

cache.vcardCache.size 100000

1 Like

64 bit JREs consume 2x the memory of 32 bit versions. Consider doubling your max heap size.

I found out that some MySQL settings really change Openfire behavior. I set innodb_buffer_pool_size = 800M and since that Openfire uses only 60-65% of its memory with 5000 concurent users.

I can’t increase heap - the server has only 4GB of RAM.

We’re going to migrate to Ubuntu.

You need more RAM. Loads of more RAM even if you’re running a windows based system :wink: My service runs on windows server too and the bottle neck is mostly only RAM. You may consider to upgrade to an 4 core xeon processor or smth. similiar too.

hi max,

How did you test for openfire? Programing with Smack?

You may use Tsung, and change ulimit on linux.

but I still can not get the performance - at least 50000. Just you said, no one explain for it. Maybe, the solution is not free.