Performance Optimization in Sitecore
- Gopal Shah
- Feb 23, 2015
- 3 min read
Updated: May 15, 2024
Hi All!
I would like to share my experience with Sitecore Administration and things I have learned over the period of time.
Here are some basics to have optimized Sitecore in Production Environment
Ensure you IIS environment is up-to-date
Consider your server is Windows Server 2008 R2 x64
Update with latest security updates and patches
Your AppPool should be 64 bit
At least have 4 Processors of your virtual or physical web server
4GB of RAM for w3wp for 20,000+ item versions
If you have more items, have more RAM
Optimize Cache
Monitor your site and tune your cache!
Data, Item and Prefetch Cache – All are important
Bottom line – More cache! Great Performance!
Use HTML Cache and make almost all rendering on the site Cacheable
Keep an eye on the Cache threshold value – Tune it if required
Tune your initial Prefetching but avoid disabling it – it’s good to start your Sitecore
Optimize Database
Keeping security on the top of the list – Make sure your database servers are in the same network with your Web Servers and Content Servers
Use Database clean up tools to cleanup your databases
Cleanup below DBs
History
PublishingQueue
EventQueue
Use – Sitecore.Task.Cleanup.xyz Agent
Rebuild Indexes with maintenance plans
Setup DB properties
Auto Close – False
Auto Shrink – False
Compatibility – SQL 2008 – 100
Recovery Mode – Simple
Run DBCC CheckDB to check Database consistency errors
Tune your Analytics Database
Sitecore Client Specific Configuration
Make sure not to use the Full Publish – It will clear all cache
Use Smart or Incremental Publish
Enable content Expiration in IIS – In HTTP Response header (30 days)
By doing this – client web browser will not request for the static files until the mentioned period (30 days)
Keep in mind – Sitecore client using many static files
Enable HTTP Static compression in IIS
Enable HTTP Dynamic compression in IIS
Keep in Mind – Compressing Dynamic files may use more CPU but help in lower bandwidth! Take a wise decision.
Disable long running validators
Do not show standard fields in Content Editor
Limit the number of items that share the same parent to 100 items per parent
Clean up obsolete versions
5 t0 10 versions at max per item in Master Database.
Monitor Sitecore and Restarts
If Sitecore logs has restart details WITH “Sitecore Shutting Down” message – Consider it as “Soft Crash”
For some reason the hosting environment has forced the process to recycle
Examples:
Custom Scheduled Recycle
Microsoft Scheduled Recycle – 1740 minutes (29 Hours)
Other App Poll recycle settings
Some critical file change
config change
Bin folder or dll updated
File added on website/bin folder
IIS setting change
Check out for any changes applied recently or remotely
If Sitecore logs has restart details WITHOUT “Sitecore Shutting Down” message – Consider it as “Hard Crash”
Could be stack overflow
Some worker thread deadlocks
Immediately, setup a crash dump and analyze with WinDBG
Follow: https://mukteshmehta.wordpress.com/2013/12/31/my-notes-on-debugging-live-environment-5/
Disable Search Indexes if you do not use them
<setting name=”Indexing.UpdateInterval” value=”00:00:00″/>
Be aware about any scheduled operation
Like: Perform a complete rebuilding of Lucence Index
Perform Load Testing
To understand: Slow Running pages, code paths any code issue – take help of developer
Most common Load test solutions
VS2012
JMeter
WCAT
Stress testing tools
AntProfiler
Performance counters
% time in GC
included GC
bytes in all heaps
total committed bytes
total reserved bytes
request/second
request execution time
Sitecore cache state counters
Cache hits
Cache misses
Cache clearings
Physical Reads
Physical Writes
Take help of developer – have some more suggestions – keep on tuning!
Follow below blogs:
https://sitecorebasics.wordpress.com/2011/09/25/does-your-cm-server-performing-slow/
http://sitecoreblog.alexshyba.com/2010/09/optimize-sitecore-performance-checklist.html
http://sitecoreblog.patelyogesh.in/2013/08/sitecore-performance-improvement.html
Comments