HomeGuidesAPI ReferenceGraphQL
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Warming Up Sites

This topic describes how to perform a warmup of your Optimizely Digital Experience (DXP) site when it scales up or out and before new code is deployed to production.

See information on scaling up an app.

Warmup is the process whereby a Web App gets requests, such as pre-populating in-memory cache before it starts to receive production traffic. This is needed to make new code deployments to production and scaling up/out as seamless as possible.

Default behavior

Optimizely's deployment automation engine attempts to configure a warmup section automatically during deployments by...

  • Issuing a web request to the start page.
  • Parsing the resulting HTML output to find all relative links on the site's start page.

This is done for each unique hostname that was bound to the site.  This warmup package is autmomatically added as dependency from EPiServer.CloudPlatform.Cms which is a required package to run in DXP

How it works

To warmup the application, EPiServer.CloudPlatform.Cms.Warmup parses hompage links and follows them with request.  There are limited number of options which you can configure on WarmupOptions.

"EPiServer" : {
  "CMS" : {
    "WarmupOptions" : {
      "Disable"                   : "true",
      "FollowLinkLevel"           : 1,
      "WaitingForStartupTimeout"  : "0:3:0",
      "StartupWaitingInterval"    : "0:3:0",
      "RequestTimeout"            : "0:0:1:0",
      "MaxNumberParallelRequests" : 50
    }
  }
}
public void ConfigureServices(IServiceCollection services)
{
            services.Configure<WarmupOptions>(x =>
            {
                x.Disable = true;
                x.FollowLinkLevel = 1;
                x.WaitingForStartupTimeout =  TimeSpan.FromSeconds(180);
                x.StartupWaitingInterval =  TimeSpan.FromMilliseconds(10);
                x.RequestTimeout =  TimeSpan.FromMinutes(1);
                x.MaxNumberParallelRequests =  50;     
            });
}

Did this page help you?