I am trying to test how many concurrent user connections Openfire can handle. I have noticed a limit at4000 users. How can I handle 50000 concurrent connections or more on Openfire? What configuration should be done to handle large number of connections.
My Server Config
OS -UbuntuServer14.04.164 bit
Processor-3.00GHz
RAM -512 MB
OpenfireVersion-3.9.3
For testing purpose, I am using a virtual server setup on virtualbox.
Scenario
I'm testing Openfire 3.9.3 without connection manager and with no SSL either (yet). The server is a virtual machine setup on Virtualbox having 3.00GHz processor and 512MB RAM. It is a standard Openfire install with MySQL database connection with 100 maximum connections.
When testing with a load testing script from https://community.igniterealtime.org/docs/DOC-1232 [Please note I have not setup a cluster] the number of user connection increase steadily till 4000 concurrent user connections. Once 4000 users are connected, all connections begin to drop until all connections are lost and I get an error as follows:
java.net.SocketException:Too many open files
at java.net.Socket.createImpl(Socket.java:460)
at java.net.Socket.<init>(Socket.java:431)
at java.net.Socket.<init>(Socket.java:211)
at OpenfireClusterStressTest.testMultipleLogin(OpenfireClusterStressTest.java:111)
at OpenfireClusterStressTest.main(OpenfireClusterStressTest.java:46)
Issue
Cannot handle more than 4000 concurrent user connections. How to increase this limit? What openfire configuration is required to achieve the same?