Thursday, November 21, 2019

Optimize Sitecore Performance


Sitecore Optimization

Let's separate out optimization into two categories 
Content Management (CM)
Content Delivery  (CD)

Alright let's talk about CM optimization that being said there are different ways to optimize content management server first let's talk about a setting called disable cache size limits in Sitecore

File Path : <Sitecore Web root>/App_Config/Sitecore.config

<setting name="Caching.DisableCacheSizeLimits" value="true"/>

If true, Sitecore does not limit cache size growth and ignores any maximum cache sizes specified in the web.config file. Enabling this setting can improve the application's performance in 64-bit environments by allowing Sitecore to take full advantage of the available memory. After setting this value to true, monitor the system at regular intervals, as this configuration can cause Sitecore to consume too much memory and cause Out Of Memory errors.

Note: It is only recommended to set the setting to true in 64-bit environments.
You can keep track of live cache statistics https://your.sitecore.website/sitecore/admin/cache.aspx

Enable IIS HTTP keep-alive

Enabling the HTTP keep-alive reduces the number of connections required to be opened. If the HTTP keep-alive is disabled, a new connection is made for every requested object on a web page.
To enable the HTTP keep-alive:
  1. Launch IIS Manager.
  2. Navigate to the site that you wish to enable the HTTP keep-alive.
  3. Double click the HTTP Response Headers (located in the IIS grouping).
  4. In the Actions panel, click Set common headers...
  5. Select Enable HTTP keep-alive.
  6. Click OK


Memory monitor & Health monitor

Sitecore recommends disabling the Memory Monitor in production environments, and only enabling it for troubleshooting memory related issues.
<hook type="Sitecore.Diagnostics.HealthMonitorHook, Sitecore.Kernel"/>
<hook type="Sitecore.Diagnostics.MemoryMonitorHook, Sitecore.Kernel">
<param desc="Threshold">6GB</param>
<param desc="Check interval">00:00:05</param>
<param desc="Minimum time between log entries">00:01:00</param>
<ClearCaches>false</ClearCaches>
<GarbageCollect>false</GarbageCollect>
<AdjustLoadFactor>false</AdjustLoadFactor>
</hook>

Note: Disabling Item Caching has a significant negative impact on performance

<setting name=”Caching.ItemCachingEnabled” value=”true”/> (enabled by default)

Optimize Sitecore Tree

Administrators should take into account that performance degrades as the number of items under any item increases. Usability is also affected. As a general precaution, no item should be the parent of more than 100 other items. Make use of bucketed items.

If a company has a thousand users who access the site or more, architects should group users such as by location, by office, by department, by team, by first letter(s) of login name or other criteria to support a limited number of users under each folder in user manager.

Optimize Sitecore Cache

     Client Data Store cache
          Security caches
     Viewstate cache (not sure how this goes with MVC)
          Registry cache
          XSL caches
          Prefetch caches (Sitecore loads Prefetch caches during application initialization)
o   First caching layer between the application & database
o   Prefetch contains data from single provider
o   Loading too much data into Prefetch can adversely affect
Note: recycling of IIS clears all the Sitecore cache except media cache (media uses file system)


----- Stay tune for rest of the content -----

No comments:

Post a Comment

Setup Sitecore Serialization SCS

Are you looking to setup SCS on Sitecore 10.4 version in 5-10 minutes on your local Sitecore CM instance? then you have come to the right pl...