The good news is that my AwareIM application is popular and profitable. It gets anywhere from 50 to 900 logins per day. The number of concurrent users is hard to measure, but that's the issue. In my case, it seems that somewhere around 40-50 (maybe lower) is the max before things cave in. See my associated post here:
https://forum.awareim.com/d/7595>
I currently run an app server and separate database server - both on AWS.
Regardless of how many concurrent users I can get on the system, I need to scale up. I'm ready to add another app server and load balancer but it's important to understand how the system fails when overloaded because it seems that it would affect the usefulness of load balancer. When the system dies, the control panel looks normal, the CPU is snoozing, and the memory consumption is flat. Makes sense because AwareIM has essentially stopped consuming resources. In most cases, the site does not present the login screen. This indicates that the Tomcat server is done. When I close the control panel, it does not respond and I have to kill the Java processes and restart the control panel, then normal operation is resumed. To me this indicates that AwareIM is done. I have spoken with another forum user who indicates that certain memory settings can be adjusted for the AwareIM server, but I don't have the details. Even so, there is a limit at some point. So my question is, if I set up a load balancer and additional server, how will the load balancer know the system is overloaded? Any measure of CPU/Memory consumption at the machine level will not be a good indicator.
So I'm putting out the call to anyone who has been there and done that. If you are running a load balancer, I would like to talk to you. If you have maximized performance on your AwareIM app, I want to talk to you. If you have had to scale your environment to meet extraordinary demands, let's talk. BTW, if you can offer quality consulting in this area, I'm paying.