1. Ensure data/item/prefetch caches are of a sufficient size.
- Check our cache configuration reference
- The following shared source modules should be useful in this exercise:
http://trac.sitecore.net/CachingManager
http://trac.sitecore.net/CacheTuner
2. Ensure client caching is properly configured (MediaResponse.XXX settings).
3. Media Library structure – make sure the tree is balanced.
4. Change MediaLinkPrefix from ~/media to something else, for example “-/media”:
- set the value of the “Media.MediaLinkPrefix” to alternative prefix:
<setting name="Media.MediaLinkPrefix" value="-/media" />
-add the following line to the customHandlers section:
<customHandlers> <handler trigger="-/media/" handler="sitecore_media.ashx" /> <handler trigger="~/media/" handler="sitecore_api.ashx" /> … </customHandlers>
This really helps for high traffic websites. Apparently tilde in the path forces different way of resolving the system permissions on a resource on Windows Server.
6. Consider adding other edge caching options in front of the web servers.
7. Leverage CDN like AKAMAI.
Some links and food for thought:
- http://sdn.sitecore.net/Scrapbook/Changing%20media%20URLs%20in%20Sitecore%206.aspx
- http://www.sitecoredevelopment.com/en/MarkGraber/Using-Akamai-Net-Storage-for-Sitecore-Media-Items.aspx
- http://sdn.sitecore.net/Forum/ShowPost.aspx?postid=18768
- http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?postid=27646
- http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?postid=15132
- http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?postid=26647
8. Use dedicated “Sitecore media server” (e.g. replace hostname in media links to point to another Sitecore instance; would require some customization).
Some great stuff here:
Thanks to the guys from our brilliant customer service for helping me to come up with a more complete list.