I need to scale up my application. When I reach a particular user volume, the app becomes unresponsive, users can't log in in a reasonable time, and the UI becomes unresponsive. I give the AwareIM and Tomcat servers 4GB and 2GB respectively. In the control panel, neither process ever exceeds 1GB and the CPU is not challenged. I'm really not sure what exactly I'm running out of, but it's something. I am happy to set up a load balancer but based on what I know of them, the load balancer will poll the machine for signs of stress, but at the machine level, there is none. I would have thought that I would see one or both Java processes getting close to their memory allocations and then pffft - all of this would happen. But it's something else. So first I need to better understand the Java internals to understand what is happening. Second, I need a strategy for scaling that will work. I really like the load balancer approach because I get server redundancy and higher availability. I think the next best option is to set up a second node. Okay, but I'd rather not.
If you are operating at high load or any scale above a single app server, I hope you add some value to this thread.