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:
- What should I do to make it work with 50000 users?
- 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
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.