An important calculation to keep in mind is:
(Managed Heap + native heap + (thread stack size * number of threads)) cannot exceed 2 GB on 32bit x86 Windows or Linux systems
This is a limitation of the Oracle Java VM. It means that even if you install 4 GB of RAM into your server, a single instance of the JVM cannot grow beyond 2 GB on a 32 bit server machine.
Note: A 64 bit OS/JVM has much bigger values. It’s recommended that a 64
bit OS with large memory hardware (>2 GB assigned to the JVM) is used for
deployments of >250 concurrent or >2500 casual users.
You can also set up your machine to cluster if you prefer to solve multi-user access performance issues with additional machines rather than a single powerful server.