
Interesting
results were obtained during load testing of the
.NET Forge CMS content management system in the Windows Azure cloud environment and on the Windows Server servers. GALS Soft conducted the test methodology, load tests and data analysis on the equipment of Infobox hosting provider. Testing took place with the participation of the Russian branch of Microsoft.
In testing, we investigated the capabilities of the following .NET Forge CMS editions:
')
- Community edition: a free edition with ample opportunities for creating community sites, blogs, personal websites and other types of solutions;
- Business edition for creating online stores, sites with high load, for which the critical issues of scaling, fault tolerance and security;
- Web cluster of creating online stores, sites with high load, including support for the Windows Azure platform and Web Farm.
Testing a Web Cluster in Azure
The Windows Azure Platform is a scalable Internet-based cloud computing services platform hosted in Microsoft data centers. The Windows Azure platform provides a wide choice of functions for creating applications at all levels: from web applications for users to complex corporate systems. It includes an operating system for cloud computing and a set of services for developers. The main advantages of cloud hosting are obvious - it is flexibility, reliability and efficiency.
In .NET Forge CMS 7.0, full integration with the Windows Azure platform (with cloud infrastructure, Windows Azure Storage cloud storage, SQL Azure cloud database, Windows Azure AppFabricated Cache cloud cache), with support for an unlimited number of application instances and automatic synchronization between machines is implemented. excludes data loss. All this allows you to increase the reliability of the web project, to solve the problem of performance during peak loads, for example, in the seasonal peaks of sales of an online store. In addition, Windows Azure simplifies the construction of Internet services using .NET technology, almost completely removing from the developer the care of setting up such “trifles” as file sharing services or project scaling.
Testing the Web Cluster in Azure has its own characteristics. Firstly, testing was carried out with the static content turned off to eliminate the effect of limited bandwidth on the results. Secondly, during testing, the server loading parameters were not removed due to its senselessness.
Web Cluster, Azure small node
Test environment:
- 1x small virtual machine (1.6 GHz CPU, 1.75 GB of RAM, 225 GB in storage).
User Scenarios:
- User scenarios are completely identical to the scenarios used in testing the business edition.
Test parameters:
- When testing this edition in a small virtual machine with standard testing parameters, it turned out that even with 1100 users the response time is about 40 seconds, which is obviously unacceptable. Therefore, for this test, the initial and final number of users has been reduced.
- Test duration: 140 minutes
- Initial number of users: 100
- Final number of users: 750
- User response time: 3-7s
- Profiles used: Registered user, Unregistered user
Statistics on the test results:

The dependence of response time on the number of simultaneously working users for individual pages is presented in the following graph:

Comfortable value in 4c is achieved with no more than 250 simultaneously working users, the maximum acceptable - with 350 users.
Web cluster, Azure big node
Test environment:
- 1x large virtual machine (Quad-Core 1.6 GHz CPU, 7 GB of RAM, 1 000 GB in storage).
User Scenarios:
- User scenarios are completely identical to the scenarios used in testing the business edition.
Test parameters:
- Test duration: 140 minutes
- Initial number of users: 1100
- Final number of users: 2400
- User response time: 3-7s
- Profiles used: Registered user, Unregistered user
Statistics on the test results:

The dependence of response time on the number of simultaneously working users for individual pages is presented in the following graph:

A comfortable value of 4c is achieved with no more than 1,100 concurrently working users, the maximum acceptable - with 1,550 users.
Web cluster, cluster in Azure
Test environment:
- 5x large virtual machines (Quad-Core 1.6 GHz CPU, 7 GB of RAM, 1,000 GB in storage)
User Scenarios:
- User scenarios are completely identical to the scenarios used in testing the business edition.
- Test parameters:
- Test duration: 140 minutes
- Initial number of users: 1100
- Final number of users: 2400
- User response time: 3-7s
- Profiles used: Registered user, Unregistered user
Statistics on the test results:

The dependence of response time on the number of simultaneously working users for individual pages is presented in the following graph:

Comfortable value in 4c is achieved with no more than 900 simultaneously working users, the maximum acceptable - with 1550 users. It is clearly seen from the graph that due to the overhead, the use of a cluster is irrational with a small load (the response time is quite long), but very profitable with a large one - the response time grows very slowly with increasing load.
Stability test
To assess the stability of the application, a 24-hour Business Edition test was run, after which the system performance parameters were compared at the beginning and end of testing.
Test parameters:
- Editorial: Business
- Test duration: 1440 minutes (1 day)
- Number of users: 2400
- User response time: 3-7s
- Profiles used: Registered user, Unregistered user
Test results:

CPU load:

Memory allocation:

Memory consumption has been limited to 12GB, after which it has ceased to grow.

Using the disk subsystem: From the graph it can be seen that the use of a hard disk is practically absent. In fact, for a day of very active load about 1.7 GB was recorded, about 2 GB was read. With a similar load, any single hard drive can easily cope.
Server performance in pages / s:

Volume of non-resident pool:

The volume of the pool does not increase for a long time, which indicates the absence of memory leaks.
Results

As a result of testing, all editions of the .NET Forge CMS product showed stable performance and high performance. The results obtained on a single dedicated server in a typical configuration exceed the needs of most high-load projects:
- 13,800,000 pages per day for community edition
- 15 000 000 pages per day for Business Edition
When combining several servers into a cluster in practice, it was possible to achieve a productivity of 44,000,000 pages per day. Intel Xeon e3-1270 standard configuration servers located in the Infobox data center were used for testing. All machines have MS Windows Server 2008 R2 installed.
A series of 24-hour tests with maximum loads revealed the stability of the .NET Forge CMS, which ensures uninterrupted operation of sites on the platform during peak loads.
Comparison of test results

O .NET Forge CMS
The .NET Forge CMS is a powerful site management system based on the ASP.NET platform, which determines its scope in the corporate sector, especially if other services in the company run on the Microsoft platform. The system facilitates the creation of the site, significantly reducing the cost of their development and speeding up the process.
The .NET Forge CMS includes convenient tools for managing the site, including a visual editor, the Hermitage interface, blogs with support for Windows Live Writer, data caching, an online store with advanced discount logic, and much more. The .NET Forge CMS is integrated with Microsoft Visual Studio 2010, the Windows Azure platform, with support for the Microsoft Web Farm Framework.
The product received the status of Certified for Windows Server 2008 R2. The obtained certificate confirms the stability of the product on the Windows Server 2008 R2 platform. Certification for Windows Server 2008 R2 confirms the compatibility of the product with Microsoft server technologies and stability at high loads and in "stressful" situations.
Details of the test, methodology, metrics, advanced test results for Windows Azure and Windows Server, and other data can be found on the Galssoft website at
http://galssoft.ru/Blog.aspx?id=27 .