powered by Jive Software

Openfire Connection

Hi Openfire geecky,

We had openfire beta testing, 1 Windows Framework Openfire Server 3.6.3 with a thousands of clients accesssing remotely, when the ISP connection becomes RTO means inaccessible of Openfire from our client. when the ISP connection becomes online again then our client started connecting to server simultaneously, the CPU utilization of our Openfire Server was too high and may cause the server to hang up.

In a normal day of connection even all the openfire clients was successfully connected to the server, the utilization of our server is only 5% to 10% CPU utilization. I just want to clear that why it happened to our openfire server that when all our (1,000 +) clients when trying to connect to the server simultaneous the server CPU becomes too high (about 100%).

Kindly give us advice on wht would be the adjustment in server side to minimize or even to eliminate this issue.

Hoping for your positive feedback.

Thank you and Regards,

Edgar Abellana

System Administrator

M.Lhuillier Financial Services, Inc.

Hard to tell what is happening exactly. Maybe when all clients try to reconnect, Openfire is still having their old sessions in memory and starts to clean them up. When users login in the morning, there are no old sessions hanging on the server, so it may handle them easier. This is on a guess. Also, in the morning you users probably still not launching their PC simultaneously and there are logging in in batches, not all at once. In this case when all clients start to reconnect almost simultaneously it creates a heavier load.

Are you using Spark as a client. I have just tested and it seems it is using static intervals for reconnection. So if all clients lose connection at one time, they will try to reconnect at the same time. You may want to find a client which is doing reconnects at a random intervals. This way all clients won’t try to connect simultaneously.

Another thing, which i’m not sure will work, is to use Connection Managers, so they would handle the connections, lifting this load from the main Openfire server https://igniterealtime.org/projects/openfire/connection_manager.jsp

But then you will probably face the problem that Connection Manager will get the high load. Though, as it is only managing the connections, maybe it will be able to handle large number of connections better.