There is no official fixed amount of memory per connection/user proposed or documented. Because it all depends on what users actually do, how often, etc. Maybe it will be enough for 10000 in your case, maybe not. You may gradually increase number of users, monitor your system and increase memory when needed. You may also try synth tests. Explanation: scalability, system requirements
It seems that you are already on 64-bit version of Openfire, so increasing JVM memory shouldn’t be a problem. Just need lots of RAM