List of content
- 1. Introduction
- 2. What is GrandNode?
- 3. GrandNode - performance
- Homepage stress test with 10 concurrent users per second
- Homepage stress test with 50 concurrent users per second
- Homepage stress test with 250 concurrent users per second
- Homepage stress test with 500 concurrent users per second
- All products stress test with 10 concurrent users per second
- All products stress test with 25 concurrent users per second
- All products stress test with 50 concurrent users per second
- All products stress test with 100 concurrent users per second
A comprehensive guide which describes one of the most interesting fact about GrandNode, it's performance. We've decided to explain it in detail. From this article, you will learn what is GrandNode and finally you will get detailed stats about GrandNode performance.
2. What is the GrandNode?
If we want to detailly describe what is GrandNode, we would need to jump into the history a little. GrandNode is a typical e-commerce platform, based on top of the latest ASP.NET Core. From a sea of other platforms, you can notice that we decided to use a totally different database engine than the majority of e-commerce platforms. We are convinced that MongoDB guarantees much better performance and much lower maintenance costs than a paid MSSQL license.
GrandNode can be a perfect choice for developers who are looking for a tool, which will create each type of marketplace for them, according to customer needs. Below you can find the types of marketplaces which are perfect to create with GrandNode:
- Simple online store - the most common usage of GrandNode. Typical online store with simple products, products' variants, grouped products,
- Marketplace with digital products - sell the games, mp3, videos, pictures or anything you want with full support for digital products,
- Auction portal - with Auction products, you are able to create a second eBay or Allegro without third-party plugins!
- Reservation portal - GrandNode can be a perfect choice for a website for hotel, apartments. With Reservation type products you are able to create a perfect website to handle reservations. You can check the real example of such page - https://veganhouse.pl - it's a page made by one of our users.
- E-Learning portal - After courses release, GrandNode became a perfect choice to create a fully functional e-learning portal with paid access to premium content. You can create a portal like Udemy or Coursera easily. You can follow our guide and get knowledge about such portal creation.
- Multi-vendor marketplace - GrandNode is possibly the best multi-vendor marketplace available for free. I also recommend visiting our guide about multi-vendor marketplace creation.
3. GrandNode - performance
Our tests were performed on Digital Oceans servers, based in Frankfurt to get the lowest latency. On the screenshot below, you can find the parameters of the servers. I've used pretty nice servers, which are usually not used at smaller stores. It's important to mention at the very beginning, that if you use the cheapest clouds, shared servers the scores will be much lower.
So, are you curious what's the result of my tests? Jump into the details, you can be surprised. To perform load testing, I've used the free, online tool called Loader.io and a few configurations. Prerequisites Default GrandNode installation Database server on the different machines but on the same location CSS & JS Minification All products – category with all available sample products (around 50 products on a single page).
Scenario #1 – Homepage stress test with 10 concurrent users per second during the 1-minute test (600 users in a minute)
A pretty simple test, I've started from the lowest number of concurrent users. In the beginning, I didn't know from which level I should start. So I decided to take the lowest possible number of concurrent users, so 10 per second.
As you can see on the screenshot below GrandNode ended with 311 ms avg. response time and 600 users online during the one minute.
Scenario #2 – Homepage stress test with 50 concurrent users per second during the 1-minute test (3000 users in a minute)
The next text was configured to simulate 50 concurrent users per second during the 1-minute test, so it should result in 3000 users in a minute.
The results were amazing, 141 ms average response time for 50 concurrent users. It gave us almost 3000 users in a minute. I'm not counting one stroke, because I don't know the reasons for it, again the results were very stable. For sure you can agree that 50 concurrent users are the result of satisfying not one shop owner. The fact is that such numbers in many small/medium stores will only be sporadic at the time of great promotions.
Scenario #3 – Homepage stress test with 250 concurrent users per second during the 1-minute test (15000 users in a minute)
GrandNode had to handle 250 concurrent users, so 15,000 users in a minute. What were the results? On the one hand, impressive. Without any tricks, tweaks, the standard version withstood this move with an average response time of 4.3 s. On the other hand, 4.3 s is a result that should definitely be improved before the production release of the final store.
Scenario #4 – Homepage stress test with 500 concurrent users per second during the 1-minute test (30000 users in a minute)
The last test on the homepage was configured to totally destroy the application. However, I couldn't do it. 30,000 online users during the minute. It results in 4.8 s average response time and it is a score which should be definitely improved. For me, personally, the store owners should guarantee better loading time during that load. No one will wait almost 5 seconds until the store opens.
Scenario #5 – All products stress test with 10 concurrent users per second during the 1-minute test (600 users in a minute)
The second test was created to provide clear information about the loading time of the full page of products. All products category had 45 products. I've started from the same configuration - 10 concurrent users per second to compare what will be the difference between the homepage and category page.
GrandNode ended with 327 ms average response time.
Scenario #6 – All products stress test with 25 concurrent users per second during the 1-minute test (1500 users in a minute)
The second config scenario in that category had 25 concurrent users. What was to be expected, GrandNode had pretty awesome results.
GrandNode ended this test with 264ms average response time.
Scenario #7 – All products stress test with 50 concurrent users per second during the 1-minute test (3000 users in a minute)
GrandNode finished this scenario with a 2.1 s average response time. This scenario has shown that there is already a place for improvements. With this amount of concurrent users, stability dropped slightly, which can be seen from the differences in individual loading times.
Scenario #8 – All products stress test with 100 concurrent users per second during the 1-minute test (6000 users in a minute)
The last test remained as the icing on the cake. Deadly as it turned out. We've created 100 concurrent users and it was too much for a default configuration. Only 17 customers from 6000 possible users were able to visit the store.