Vuser Test Result - songeunwoo/ngrinder GitHub Wiki
We could have increased the possible max vuser per agent by calibrating JVM options in nGrinder 3.2. The following is the result of our internal test. ‘O’ means that the test with the given vuser count per agent was executed successfully for 15 min. X means that the test was automatically stopped by the controller due to the lack of memory.
Groovy
vuser per agent | 1000 | 2000 | 3000 | 4000 | 5000 | 6000 |
---|---|---|---|---|---|---|
1k response | O | O | O | O | O | X |
10k response | O | O | O | O | O | X |
100k response | O | O | O | O | O | X |
process/thread count | 10/100 | 10/200 | 10/300 | 10/400 | 10/500 | 10/600 |
Jython
vuser per agent | 1000 | 1500 | 2000 | 2500 | 3000 | 4000 |
---|---|---|---|---|---|---|
1k response | O | O | O | O | O | XXX |
10k response | O | O | O | XOO | O | XXX |
100k response | O | O | O | O | O | OO |
process/thread count | 10/100 | 10/150 | 10/200 | 10/250 | 10/300 | 10/400 |
In summary, when using Groovy as a scripting language, it supports twice vuser count than using Jython. Even when selecting Jython, it still supports 5 times more vuser count than previous version.
Agent Machine Spec
Agent machine specs we used for this test are
- 2 Core, 4Gram VM (with 3.4Gram free)
- CentOS 5.3 64bit
- JDK 1.6u33 64bit
- nGrinder 3.2 agent
Reponse generating code
The following JSP code is used to simulate the responses. These generate 1k / 10k / 100k responses respectively.
1k response.
<%
Thread.sleep(500);
for (int i = 1; i < 20;i++) {
out.println("Hello!!! My Name is JunHo Yoon. Welcome! Perf Test!");
}
%>
10k response.
<%
Thread.sleep(500);
for (int i = 1; i < 200;i++) {
out.println("Hello!!! My Name is JunHo Yoon. Welcome! Perf Test!");
}
%>
100k response.
<%
Thread.sleep(500);
for (int i = 1; i < 2000;i++) {
out.println("Hello!!! My Name is JunHo Yoon. Welcome! Perf Test!");
}
%>