I forgot to say that I already choose to install Hazelcalt plug-in in order to meet this requirement.
Please describe a common usage of one of the logged in users. Will they be doing lots of pubsub, lots of server2server, lots of MUC, lots of presence, etc.
We plan to have a very small delivered features: chat, presence, buddies list; that's it...
potentially 1 million of registered accounts..with 300K concurrent connections...with approximativelly 10-20 contacts per buddies list.
This is a very optimistic number of registration. It also possible that these numbers could be reduced by 10.
Thanks for your help
1 of 1 people found this helpful
OK, I would think a having 3-4 beefy modern servers would be sufficient to meet that load, but you would want to figure out a way to produce a test load against that cluster to see how it performs. There is no magic performance metric for openfire, it entirely depends on the workload the users generate. Some operations are very 'expensive' and some are not.
I forgot to mention that :
- we will use a lot group mechanism in order to filter packets
- we DO NOT need chat room with multiple users (for now). If one day we plan to handle this, will this impact a lot performance ?
- we DO NOT need server to server communication
- we DO NOT need server to components communication
We can imagine to have 10 servers if needed (financial considerations are not mine)
do you know if virtualisation has huge impacts on performances
Regarding our requirements (presence & chat)...what would be a very expensive operation ?
Thanks again for your time
Hey Christophe, I was wondering whether have you found an answer to this? I'm planning to scale this up to nearly the same levels
Curious to know
- which type of hardware are that you have them running on?
- are the machines hosted VMs in like AWS?
- how many machines are there in the cluster?
- what types of storage provider have you setup? I'm assuming the default MySQL setup
- what level of XMPP activities (message/min) does it demand on the cluster
A couple of thoughts
- Have you dabbled with the Connection Manager? You can offload and scale horizontally by having the connection manager be able to hold on to more concurrent connections in front of the cluster
- How about using HA Proxy or Nginx in front of each instance to help manage and queue the connections?
- If the machines are Linux, was the system limit config upp'ed for the openfire user?
- Assuming the OpenFire cluster is hooked to MySQL, I'd tweak that quite a bit depending on the hardware and disk