On machines where you have 2GB of memory or more, you shouldn't set your maximum heap size larger than 1430 MBytes.
On any computer system, as load (number of users, amount of work being done) increases, performance (how long it takes to do each task) will decrease, but in a non linear fashion. Any increase in load (demand) beyond a certain point will result in a dramatic decrease in performance. This means that some resource is in critically short supply and has become a bottleneck.
At some point, the resource in critical short supply can not be increased. This means an architectural limit has been reached. Some commonly reported architectural limits in Windows include:
- 2 GB of shared virtual address space for the system
- 2 GB of private virtual address space per process
- 660 MB System PTE storage
- 470 MB paged pool storage
- 256 MB nonpaged pool storage
One sure fire way to run into this issue is to stuff lots of nested components into the session scope. Add a few cross joins to populate them with lots of meaningless data and you'll have a meltdown almost as fast as building infinite loops.