Test results: Backend browsing
The following performance results are from a test against Sitefinity CMS 7.1. The tests are performed in an NLB environment and compare performance with L2 cache turned on and off.
Environment configuration
The default load balancing test infrastructure consists of a single test controller and single test agent. The test uses three physical machines for the Client, Web, and Database servers that are all in the same local network.
Following is a brief breakdown of the setup:
- One separate Client machine to simulate the requests.
- The Client is connected to a Web server that is hosting Sitefinity CMS. On the Web server all nodes are placed on one virtual machine with different network adapters - 5 nodes on different IPs.
- HAProxy is used as Network Load Balancer and is running on the Web server machine.
- The Web server connects to a separate machine that hosts the Sitefinity CMS database – the Database server.
The following diagram exemplifies the above scenario:
Hardware configuration
Web server:
System Parameter
|
Value
|
Processor
|
Intel® Xeon® Processor E3-1225 v3
(8M Cache, 3.20 GHz, 1600 MHz FSB)
|
RAM
|
32.00 GB
|
System type
|
Windows Server 2012 R2 Standard, 64-bit OS
|
Database server:
System Parameter
|
Value
|
Processor
|
Intel® Core™2 Duo Processor E7300
(3M Cache, 2.66 GHz, 1066 MHz FSB)
|
RAM
|
4.00 GB
|
System type
|
Windows Server 2008 R2 Standard, 64 Bit OS
|
Website data
Performance tests are executed against a website with the following data:
Site content:
Type of content
|
Items count
|
Notes
|
Sites
|
1
|
Single site
|
Pages
|
100
|
|
News
|
10,000
|
|
Events
|
10,000
|
|
Blogs
|
3
|
|
Blog Posts
|
15,000
|
(5,000 in each blog)
|
Image Libraries
|
3
|
|
Images
|
30,000
|
(10,000 in each library)
|
Document Libraries
|
3
|
|
Documents
|
30,000
|
(10,000 in each library)
|
Video Libraries
|
3
|
|
Videos
|
9,000
|
(3,000 in each library. Take over 10GB DB size)
|
Dynamic module (parent) items
|
4,000
|
(only one parent has children)
|
Dynamic module (child) items
|
4,000
|
(placed under one parent)
|
Site users:
Role of user
|
Users count
|
Editors
|
10,000
|
Authors
|
10,000
|
Administrators
|
10,000
|
No role, or no backend access
|
10,000
|
Test results
The backend browsing experience tests cover a sample selection of the most commonly used content modules (static, dynamic, and media). The test logs in as a Sitefinity CMS user, navigates to a particular content page, and makes a request against a particular set of services or pages to retrieve different pages with items of the particular content type. The test duration is 15 minutes, with 1 minute warm-up time and user load varying between 3 and 15 simultaneous users browsing the backend.
Key facts:
The test results show how the introduced L2 cache support in load balancing mode can improve your site performance in backend browsing operations.
On average, Sitefinity CMS 7.1 has 80% improvement in the response time for particular backend operations when L2 cache is turned on in load balancing mode. The main reason for turning on L2 cache in load balanced mode is to prevent the Database server to become a bottleneck under high utilization. As a result, scalability is better.
The test results clearly show better utilization of the available Database server memory (23.80% increase in the used memory) and at the same time an expected decrease (42.70%) in the CPU load on the Database server.
The improved performance allows the tests to make a bigger number of requests for the same period, thus better utilizing the web server resources (33.36% increase in CPU load on the Web server).
The areas affected most by this improvement are:
- Videos – 90.37% decrease in the AVG Page time (sec) with L2 cache turned on.
- Documents – 86.98% decrease in the AVG Page time (sec) with L2 cache turned on.
- Images – 72.31% decrease in the AVG Page time (sec) with L2 cache turned on.
- Dashboard – 67.41% decrease in the AVG Page time (sec) with L2 cache turned on.
The following sections demonstrate the test results for backend browsing of:
- Videos
- Documents
- Images
- Dashboard
Videos
The backend browsing test for videos uses a Video library with 10,000 items. There are 50 items listed per page. The test performs the following:
- Logs in as a user.
- Navigates to the Videos content page.
- Makes requests against the VideoService.svc and VideoLibraryService.svc for retrieving different pages with video items.
- Logs off the user.
Sitefinity CMS output cache is disabled. This test loads the site with 10 simultaneous users for 15 minutes.
The results from the test execution with Sitefinity CMS 7.1 L2 cache turned on against the same test with Sitefinity CMS 7.1 L2 cache turned off show a 90.37% decrease in the average page time (sec), which allows users to browse videos up to 10 times faster.
There is a 35.76% decrease in Database server CPU load, due to the better utilization of data caching.
Enabling L2 cache in load balancing mode shows a 26.42% increase in the utilized DB server memory, demonstrating that Sitefinity CMS efficiently leverages the slower CPU processing of queries by storing the results of already executed queries and serving them from the DB server memory.
Documents
The backend browsing test for documents uses a Documents library with 10,000 items. There are 50 items listed per page. The test performs the following:
- Logs in as a user.
- Navigates to Documents content page.
- Makes requests against the DocumentService.svc and DocumentLibraryService.svc for retrieving different pages with image items.
- Logs off the user.
Sitefinity CMS output cache is disabled. This test loads the site with 10 simultaneous users for 15 minutes.
The results from the test execution with Sitefinity CMS 7.1 L2 cache turned on against the same test with Sitefinity CMS 7.1 L2 cache turned off show a 86.98% decrease in the average page time (sec), which allow users to browse documents up to 7 times faster.
There is a 28.84% decrease in the Database server CPU load, due to the better utilization of data caching.
Enabling L2 cache in load balancing mode results in a 32.55% increase in the utilized Database server memory, demonstrating that Sitefinity CMS efficiently leverages the slower CPU processing of queries by storing the results of already executed queries and serving them from the Database server memory.
Images
The Images backend experience test browses images from an Image library with 10000 items. There are 50 items listed per page. The test performs the following:
- Logs in a user.
- Navigates to the Images module page.
- Makes requests against the ImageService.svc and AlbumService.svc for retrieving different pages with image items.
- Logs off the user.
Sitefinity CMS output cache is disabled. This test loads the site with 3 simultaneous users for 15 minutes.
The results from the test execution with 7.1 L2 cache turned on against the same test with 7.1 L2 cache turned off show a 72.31% decrease in the average
page time (sec), which allow user to browse images up to 3.5 times faster.
There is a 61.56% decrease in the DB server CPU load, due to the better utilization of Data caching, thus the server needs to make less processing.
Enabling L2 cache in Load balancing shows a 30.39% decrease in the utilized DB server memory, proving that Sitefinity CMS efficiently leverages the slower CPU processing of queries by storing the results of already executed queries and serving them from the DB server memory.
Dashboard
The Dashboard browsing test performs the following:
- Logs in a user.
- Makes GET requests against the DashboardService.svc to get the recent items
- Logs off the user.
Sitefinity CMS output cache is disabled. This test loads the site with 3 simultaneous users for 15 minutes.
The results from the test execution with 7.1 L2 cache turned on against the same test with 7.1 L2 cache turned off show a 67.41% decrease in the average page time (sec), which allow user to browse the Sitefinity CMS Dashboard up to 3 times faster.
You can observe a 89.31% decrease in the DB server CPU load, due to the better utilization of Data caching, thus the server needs to make less processing.