We worked with Gato to define a test configuration that could be realistic connecting a given number of users and changing regularly of status and exchanging messages.
We made different kind of tests depending on the rosters size.
As said in this post before, it is not really easy to have an idea of the traffic you will have. I would say it depends mainly on the following questions:
number of simultaneous users
rosters size (mean/max …)
type of connections (permanent or frequent disconnections - roaming user for example)
the previous question may be associated to the kind of users, do they change regularly their presence status.
Usage of MUC
So there are many questions and the only precise answers can be got in a real environment.
We can try to set some orders of ideas to make the test to be as close as possible to the reality but it is never exact.
I was able to simulate between 20/30K users with users using large rosters (lets say 150) with a medium message traffic and presence updates.
For that purpose I used a WF server (Xeon bi-dualcore 3.2 GHz 4Gb RAM) and an identical server for DB using Postgres. I connected the server to 3 CMs (Xeon Dual Core 2Gb RAM) loaded by 6 tsung clients.
It behave pretty well.
And just a final point to ryang, I was able to reach 80K users once (I have a snapshot) but the system was not stable and failed during high load. But it was before NIO and I bet we will reach this limit and go far above!