top of page

Performance Optimization in Sitecore

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

  1. Ensure you IIS environment is up-to-date

  2. Consider your server is Windows Server 2008 R2 x64

  3. Update with latest security updates and patches

  4. Your AppPool should be 64 bit

  5. At least have 4 Processors of your virtual or physical web server

  6. 4GB of RAM for w3wp for 20,000+ item versions

  7. If you have more items, have more RAM

  8. Optimize Cache

  9. Monitor your site and tune your cache!

  10. Data, Item and Prefetch Cache – All are important

  11. Bottom line – More cache! Great Performance!

  12. Use HTML Cache and make almost all rendering on the site Cacheable

  13. Keep an eye on the Cache threshold value – Tune it if required

  14. Tune your initial Prefetching but avoid disabling it – it’s good to start your Sitecore

  15. Optimize Database

  16. 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

  17. Use Database clean up tools to cleanup your databases

  18. Cleanup below DBs

  19. History

  20. PublishingQueue

  21. EventQueue

  22. Use – Sitecore.Task.Cleanup.xyz Agent

  23. Rebuild Indexes with maintenance plans

  24. Setup DB properties

  25. Auto Close – False

  26. Auto Shrink – False

  27. Compatibility – SQL 2008 – 100

  28. Recovery Mode – Simple

  29. Run DBCC CheckDB to check Database consistency errors

  30. Tune your Analytics Database

  31. Sitecore Client Specific Configuration

  32. Make sure not to use the Full Publish – It will clear all cache

  33. Use Smart or Incremental Publish

  34. Enable content Expiration in IIS – In HTTP Response header (30 days)

  35. By doing this – client web browser will not request for the static files until the mentioned period (30 days)

  36. Keep in mind – Sitecore client using many static files

  37. Enable HTTP Static compression in IIS

  38. Enable HTTP Dynamic compression in IIS

  39. Keep in Mind – Compressing Dynamic files may use more CPU but help in lower bandwidth! Take a wise decision.

  40. Disable long running validators

  41. Do not show standard fields in Content Editor

  42. Limit the number of items that share the same parent to 100 items per parent

  43. Clean up obsolete versions

  44. 5 t0 10 versions at max per item in Master Database.

  45. Monitor Sitecore and Restarts

  46. If Sitecore logs has restart details WITH “Sitecore Shutting Down” message – Consider it as “Soft Crash”

  47. For some reason the hosting environment has forced the process to recycle

  48. Examples:

  49. Custom Scheduled Recycle

  50. Microsoft Scheduled Recycle – 1740 minutes (29 Hours)

  51. Other App Poll recycle settings

  52. Some critical file change

  53. config change

  54. Bin folder or dll updated

  55. File added on website/bin folder

  56. IIS setting change

  57. Check out for any changes applied recently or remotely

  58. If Sitecore logs has restart details WITHOUT “Sitecore Shutting Down” message – Consider it as “Hard Crash”

  59. Could be stack overflow

  60. Some worker thread deadlocks

  61. Immediately, setup a crash dump and analyze with WinDBG

  62. Follow: https://mukteshmehta.wordpress.com/2013/12/31/my-notes-on-debugging-live-environment-5/

  63. Disable Search Indexes if you do not use them

  64. <setting name=”Indexing.UpdateInterval” value=”00:00:00″/>

  65. Be aware about any scheduled operation

  66. Like: Perform a complete rebuilding of Lucence Index

  67. Perform Load Testing

  68. To understand: Slow Running pages, code paths any code issue – take help of developer

  69. Most common Load test solutions

  70. VS2012

  71. JMeter

  72. WCAT

  73. Stress testing tools

  74. AntProfiler

  75. Performance counters

  76. % time in GC

  77. included GC

  78. bytes in all heaps

  79. total committed bytes

  80. total reserved bytes

  81. request/second

  82. request execution time

  83. Sitecore cache state counters

  84. Cache hits

  85. Cache misses

  86. Cache clearings

  87. Physical Reads

  88. Physical Writes

  89. Take help of developer – have some more suggestions – keep on tuning!

  90. Follow below blogs:

  91. https://sitecorebasics.wordpress.com/2011/09/25/does-your-cm-server-performing-slow/

  92. http://sitecoreblog.alexshyba.com/2010/09/optimize-sitecore-performance-checklist.html

  93. http://sitecoreblog.patelyogesh.in/2013/08/sitecore-performance-improvement.html

Comments


bottom of page