NuGet Perf, The Final Part – Loading Testing – Results
The test was run locally (no network involved ) on a Lenovo W520 laptop with 8 cores & 8 GB RAM with an SSD card. The storage engine we used was Esent, Safe Transactions. Default RavenDB configuration, running in console, with logging disabled.
We took the most obvious approach both in the code we wrote and the test approach. I am pretty sure that I’ll get a lot of helpful suggestions about the load testing. The code is available here, and you are more than welcome to take it for a spin and get your own results. What is important for me to note is that we have done exactly zero performance tuning. That is relevant to both the index we use, to the code that we wrote, everything. I just wrote things down, and didn’t worry about performance, even though this code is going to go through a load test.
Why don’t I worry about it? Because RavenDB is setup to do the Right Thing. It will self optimize itself without you need to take care of that.
With that said, here are the test results:
You can see that the red line is the number of users we have, and we have this worrying green line that seems to go crazy…
Except that this is actually the number of page served. The part that we care about is actually the Avg. Page Time, and that is the blue line.
This line, however, is basically flat no matter the load.
Here are the test results in details
Load test name | LoadTest1 |
Description | |
Start time | 04/09/12 14:16:38 |
End time | 04/09/12 14:21:38 |
Warm-up duration | 00:00:20 |
Duration | 00:05:00 |
Controller | Local run |
Number of agents | 1 |
Run settings used | Run Settings1 |
Max User Load | 300 |
Tests/Sec | 20.0 |
Tests Failed | 0 |
Avg. Test Time (sec) | 12.5 |
Transactions/Sec | 0 |
Avg. Transaction Time (sec) | 0 |
Pages/Sec | 77.1 |
Avg. Page Time (sec) | 0.0062 |
Requests/Sec | 77.1 |
Requests Failed | 0 |
Requests Cached Percentage | 0 |
Avg. Response Time (sec) | 0.0062 |
Avg. Content Length (bytes) | 3,042 |
URL (Link to More Details) | 95% Page Time (sec) |
---|---|
Page 0 | 0.018 |
Page 0 | 0.018 |
Page 2 | 0.014 |
http://localhost:52688/api/search | 0.014 |
Search ravendb | 0.014 |
Name | 95% Test Time (sec) |
---|---|
Browsing | 19.3 |
BrowseAndSearch | 17.6 |
Searching | 10.6 |
Name | Scenario | Total Tests | Failed Tests (% of total) | Avg. Test Time (sec) |
---|---|---|---|---|
Browsing | Load | 1,533 | 0 (0) | 16.0 |
BrowseAndSearch | Load | 1,685 | 0 (0) | 15.0 |
Searching | Load | 2,770 | 0 (0) | 9.00 |
URL (Link to More Details) | Scenario | Test | Avg. Page Time (sec) | Count |
---|---|---|---|---|
Page 0 | Load | Browsing | 0.0072 | 1,629 |
Page 0 | Load | BrowseAndSearch | 0.0071 | 1,783 |
http://localhost:52688/api/search | Load | BrowseAndSearch | 0.0064 | 3,443 |
Search ravendb | Load | Searching | 0.0064 | 2,798 |
Page 1 | Load | Browsing | 0.0063 | 1,617 |
Page 2 | Load | Browsing | 0.0063 | 1,580 |
Page 1 | Load | BrowseAndSearch | 0.0063 | 1,760 |
Search debug | Load | Searching | 0.0055 | 2,810 |
Search grid | Load | Searching | 0.0055 | 2,839 |
Search yui | Load | Searching | 0.0054 | 2,866 |
Name | Scenario | Test | Response Time (sec) | Elapsed Time (sec) | Count |
---|
Machine Name | % Processor Time | Available Memory at Test Completion (Mb) |
---|
Machine Name | % Processor Time | Available Memory at Test Completion (Mb) |
---|---|---|
RAVEN | 13.0 | 1,356 |
Type | Subtype | Count | Last Message |
---|
You can dig in and look at the data, it is quite interesting. Under the load of 300 users, the average page response time was… 0.0062 seconds.
And RavenDB was using just 13% of the CPU, and that include running the agents running the tests.
In my next post, we will go totally crazy…
Comments
Try maxing out the system to see what it is capable of. So far the benchmark shows a throttled load.
13% processor time could also mean 100% on one core.
Comment preview