Performance depends on many factors for Episerver Commerce. In general, an e-commerce site should perform reasonably well during peak times so that each customer's shopping experience is fluid enough to effectively convert their shopping cart to a sale. In addition, a site should perform well from small catalogs (50-100 products) to extremely large catalogs (100k+).
Consider the following strategies to run your site at peak performance.
Install the latest version of Episerver Commerce
- If possible, upgrade to the latest version of Episerver Commerce, which includes performance improvements.
Strategies for large catalogs (300k+ entries)
- Implement an enterprise-level search provider (like Solr) which can efficiently index a large catalog.
- Eliminate or reduce the number of calls to the product catalog or database when returning product information during the browsing, search, or checkout process. Search is the critical element with large catalogs, because the return of search data to users determines response time.
- Consider running the Episerver Commerce catalog system on its own server. All e-commerce subsystems can be separated out run independently of one another.
Strategies for high volume/high load sites
- Run performance tests prior to reaching peak times. Episerver Commerce contains test scripts that you can modify to meet your particular scenarios and needs. You should spend as much time testing your application as you do implementing it.
- Implement your Episerver Commerce-based site in a load-balanced environment that can handle the traffic you expect.
- Consider a cloud-based hosting environment. Episerver Commerce is tested in the cloud. This environment lets you easily and rapidly scale your infrastructure without having to invest in physical servers.
- Implement fail-over or backup servers that can handle additional load.
Session state management
By default, Episerver Commerce relies on ASP.NET for managing session states. Enabling session states has noticeable overhead. You can reduce overhead by only enabling session state on pages that need it.