Performance testing nopCommerce 3.70 on Azure using Redis + Blob + Azure SQL

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
7 years ago
chadwixk wrote:
If you are hosting Azure SQL DB data tier switch to SQL hosted on the server. Unless you want to spend a fortune on much higher Azure SQL tier switching to SQL hosted on the VM increased our performance 7 fold.

Greg, so do you mean to host both the nopcommerce Web app and SQL server on the same VM?

We did this and yes, the performance is much better, but you miss out on scaling flexibility like autoscaling.


Yes that's what I mean. So until someone can implement and test everything you are all suggesting to see if there is even any performance increase at all it is the best suggestion. Too be honest I think the issue is with Azure DB to begin with and the amount of DTU's provided in lower tier Azure DB. We tested on higher tiers and the site is much faster but who wants to pay that much for the higher tier's? Certainly not companies that are just starting out.
7 years ago
Greg Smyth wrote:
If you are hosting Azure SQL DB data tier switch to SQL hosted on the server. Unless you want to spend a fortune on much higher Azure SQL tier switching to SQL hosted on the VM increased our performance 7 fold.

Greg, so do you mean to host both the nopcommerce Web app and SQL server on the same VM?

We did this and yes, the performance is much better, but you miss out on scaling flexibility like autoscaling.

Yes that's what I mean. So until someone can implement and test everything you are all suggesting to see if there is even any performance increase at all it is the best suggestion. Too be honest I think the issue is with Azure DB to begin with and the amount of DTU's provided in lower tier Azure DB. We tested on higher tiers and the site is much faster but who wants to pay that much for the higher tier's? Certainly not companies that are just starting out.


Thanks for the clarification Greg.

We use a low level tier, but our DTU utilization never goes above 10% and typically run around less than 5%. But still the server side calls are very slow...and we only have 150 published products and 25 - 50 concurrent user sessions. Our web app CPU hovers around 10% with spikes to 35% and memory between 60% - 80%.

Given that we don't seem to be taxing either the database or web servers, will increasing them really provide any benefit?
7 years ago
chadwixk wrote:
If you are hosting Azure SQL DB data tier switch to SQL hosted on the server. Unless you want to spend a fortune on much higher Azure SQL tier switching to SQL hosted on the VM increased our performance 7 fold.

Greg, so do you mean to host both the nopcommerce Web app and SQL server on the same VM?

We did this and yes, the performance is much better, but you miss out on scaling flexibility like autoscaling.

Yes that's what I mean. So until someone can implement and test everything you are all suggesting to see if there is even any performance increase at all it is the best suggestion. Too be honest I think the issue is with Azure DB to begin with and the amount of DTU's provided in lower tier Azure DB. We tested on higher tiers and the site is much faster but who wants to pay that much for the higher tier's? Certainly not companies that are just starting out.

Thanks for the clarification Greg.

We use a low level tier, but our DTU utilization never goes above 10% and typically run around less than 5%. But still the server side calls are very slow...and we only have 150 published products and 25 - 50 concurrent user sessions. Our web app CPU hovers around 10% with spikes to 35% and memory between 60% - 80%.

Given that we don't seem to be taxing either the database or web servers, will increasing them really provide any benefit?


We have 38,000 products online. We originally started with Azure SQL Business Tier which was very fast. Less than 1 second page loads. Then those tiers were retired and we were forced to move up to a low Azure SQL DB tier. 6 to 7 second page load times. We tested on the next tier up but with higher DTU's and there wasn't much difference. We had to move up 5 tiers to get the performance we were used to. Cost went from around .25 an hour to over 1.20 an hour. That's not chump change at $864 per month. Still not as fast as business tiers and the cost was just too much. Installed SQL on the VM and got 1 second page loads.

Since you don't have many products and concurrent user is fairly low why do you need the flexibility to scale up SQL Azure DB when if you have issues it will be either CPU or Memory and you can scale up the VM at that point?

For companies that are just starting out, for some reason with Azure, they feel they need two Azure VM's, availability sets, load balancing, Azure SQL DB, all the Azure bells and whistles. That's fine if you are a business that is established porting over your existing infrastructure but if you're just starting out with a website, a webapp is just fine on 1 VM with SQL hosted on the same VM.

We decided to focus on sales as we have local infrastructure as well as cloud infrastructure. When sales are at the point we need, we will port all our infrastructure over but the cost to do so with all the bells and whistles is expensive on Azure.
7 years ago
Greg Smyth wrote:
If you are hosting Azure SQL DB data tier switch to SQL hosted on the server. Unless you want to spend a fortune on much higher Azure SQL tier switching to SQL hosted on the VM increased our performance 7 fold.

Greg, so do you mean to host both the nopcommerce Web app and SQL server on the same VM?

We did this and yes, the performance is much better, but you miss out on scaling flexibility like autoscaling.

Yes that's what I mean. So until someone can implement and test everything you are all suggesting to see if there is even any performance increase at all it is the best suggestion. Too be honest I think the issue is with Azure DB to begin with and the amount of DTU's provided in lower tier Azure DB. We tested on higher tiers and the site is much faster but who wants to pay that much for the higher tier's? Certainly not companies that are just starting out.

Thanks for the clarification Greg.

We use a low level tier, but our DTU utilization never goes above 10% and typically run around less than 5%. But still the server side calls are very slow...and we only have 150 published products and 25 - 50 concurrent user sessions. Our web app CPU hovers around 10% with spikes to 35% and memory between 60% - 80%.

Given that we don't seem to be taxing either the database or web servers, will increasing them really provide any benefit?

We have 38,000 products online. We originally started with Azure SQL Business Tier which was very fast. Less than 1 second page loads. Then those tiers were retired and we were forced to move up to a low Azure SQL DB tier. 6 to 7 second page load times. We tested on the next tier up but with higher DTU's and there wasn't much difference. We had to move up 5 tiers to get the performance we were used to. Cost went from around .25 an hour to over 1.20 an hour. That's not chump change at $864 per month. Still not as fast as business tiers and the cost was just too much. Installed SQL on the VM and got 1 second page loads.

Since you don't have many products and concurrent user is fairly low why do you need the flexibility to scale up SQL Azure DB when if you have issues it will be either CPU or Memory and you can scale up the VM at that point?

For companies that are just starting out, for some reason with Azure, they feel they need two Azure VM's, availability sets, load balancing, Azure SQL DB, all the Azure bells and whistles. That's fine if you are a business that is established porting over your existing infrastructure but if you're just starting out with a website, a webapp is just fine on 1 VM with SQL hosted on the same VM.

We decided to focus on sales as we have local infrastructure as well as cloud infrastructure. When sales are at the point we need, we will port all our infrastructure over but the cost to do so with all the bells and whistles is expensive on Azure.


Great point. But it was more than just the autoscaling. It was just all of the setup and maintenance of the VM. Yeah, it's not terrible, but we're app developers, not infrastructure guys, so liked the PaaS route so we can focus on app dev....and really wanted this architecture to work so we wouldn't have to revisit again if we got larger later.
7 years ago
From my developers experience Azure DB requires different approach to application design. You need to introduce level of indirection between you storage and logic and also separate update commands and read queries (CQRS, Command Interface and Mediator patterns). Without it you'll get slow and unresponsive application which is happening to NopCommerce because it uses old school approach with repository + EF which is not really suitable for Azure. Although it's very good at old Iaas (Infrastructure as a Service ie with VMs)
I hope after migration to .NET Core announced in v4.0 it would be possible to host it on very cheap linux environments.
People asks for more async approach but in my opinion CQRS with strong focus on Q (query) optimization will give more effect.
btw, using TableNonTracking for read queries and Table for update requests is the first step in this direction.
7 years ago
I am a bit worried about the nop team is not making any statement here. Do they follow this thread at least?

For our case we can not wait until .NET Core based nopCommerce is released. We need perfomance tuning as soon as possible.
7 years ago
I submitted all suggestions made in this thread to nop dev team by "issue" in github project: https://github.com/nopSolutions/nopCommerce/issues/2287
7 years ago
[email protected] wrote:
I submitted all suggestions made in this thread to nop dev team by "issue" in github project: https://github.com/nopSolutions/nopCommerce/issues/2287


Thanks a lot! I've just assigned it to 4.00 and marked as high priority (highlight)
7 years ago
a.m. wrote:
I submitted all suggestions made in this thread to nop dev team by "issue" in github project: https://github.com/nopSolutions/nopCommerce/issues/2287

Thanks a lot! I've just assigned it to 4.00 and marked as high priority (highlight)


That is fantastic Andrei!
7 years ago
a.m. wrote:
I submitted all suggestions made in this thread to nop dev team by "issue" in github project: https://github.com/nopSolutions/nopCommerce/issues/2287

Thanks a lot! I've just assigned it to 4.00 and marked as high priority (highlight)


Awesome Andrei! Thank you!!!
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.