While it is not easy to answer this question, there are some tips that can help to identify what is the capacity to be set with a VSM.
There isn't specific answer for this question, it would be server dependent.
The limit would depend on how many Virtual Services Model are running, what is the capacity for each and does Java or the OS complain about creating a new thread.
If you have too many threads, then Java does not have enough resources and spends too much time managing threads.
Here is some information that might help you identify what is the capacity you should set for a virtual service on your environment:
Increasing the capacity after the certain point would degrade the performance. Follow the below steps to identify the right threshold:
1. Start with combined capacity of all Virtual service in a VSE to be approximately equal to 4 * CPU cores. The capacity need not be distributed equally, more capacity can be given to VS which gets more transactions.
2. Run the test and monitor memory and CPU usage.
3. If the response time is not acceptable and memory usage is greater than 90% increase memory and if the CPU usage is less than < 90% add more capacity to the VS.
4. Continue running the tests and adjust the settings after each cycle.
Decreasing the think time would give better response time. Think time is not the max time VS would take to respond, it’s the min time it takes to respond. If it’s allowed to reduce the think time in your scenario then reducing it would give better response times.
For more information regarding concurrent capacity, please use the link below: