<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Performance Tuning and Optimization of EPiServer</title>
	<atom:link href="http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/</link>
	<description>Chatter about EPiServer, ASP.NET, CSS and Web Development.</description>
	<lastBuildDate>Wed, 21 Dec 2011 01:21:54 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Fredrik Haglund</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-4105</link>
		<dc:creator>Fredrik Haglund</dc:creator>
		<pubDate>Mon, 01 Nov 2010 14:00:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-4105</guid>
		<description>Ok, glad to hear that it works well for you. 

Why it solves your performance issue is another question. 

You will get the same items cached several times in memory, you get the complexity to setup EPiServer&#039;s cache invalidation (propagating publish events between the instances), setup ASP.NET State handling and lose performance to serialization instead and finally you will probably have to buy load balancing licenses (not sure about that). So I would not recommend it unless you have a real need.

If you have a lot of requests for static content like images investigate if Kernel Mode Caching can help you to improve your performance. 

One benefit I can see is that when you have more than one worker process running it can scale better to use your other CPU cores but asp.net applications usually scales well so this might be an indication of thread blocking code?</description>
		<content:encoded><![CDATA[<p>Ok, glad to hear that it works well for you. </p>
<p>Why it solves your performance issue is another question. </p>
<p>You will get the same items cached several times in memory, you get the complexity to setup EPiServer&#8217;s cache invalidation (propagating publish events between the instances), setup ASP.NET State handling and lose performance to serialization instead and finally you will probably have to buy load balancing licenses (not sure about that). So I would not recommend it unless you have a real need.</p>
<p>If you have a lot of requests for static content like images investigate if Kernel Mode Caching can help you to improve your performance. </p>
<p>One benefit I can see is that when you have more than one worker process running it can scale better to use your other CPU cores but asp.net applications usually scales well so this might be an indication of thread blocking code?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco ter Horst</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-4101</link>
		<dc:creator>Marco ter Horst</dc:creator>
		<pubDate>Wed, 27 Oct 2010 17:39:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-4101</guid>
		<description>Just to update those of you who are interested in this topic:
We&#039;ve been running a Web Garden now for almost 2 1/2 months now on our production system and we&#039;re very happy with the result and the performance and capacity boost we gained from it without having to buy new resources.
This is our setup:
1 virtual server with 4CPU cores and 8GB of memory
1 App Pool for web users configured to use 3 max. worker processes
1 App Pool for CMS users configured to use 1 max. worker process
Both pools are configured to recycle @ 950000KB memory usage as we saw that the website becomes instable @ values above this (regardless of Web Garden setup or not.
As you can see, with 8GB of RAM, memory is not really the issue in our setup.</description>
		<content:encoded><![CDATA[<p>Just to update those of you who are interested in this topic:<br />
We&#8217;ve been running a Web Garden now for almost 2 1/2 months now on our production system and we&#8217;re very happy with the result and the performance and capacity boost we gained from it without having to buy new resources.<br />
This is our setup:<br />
1 virtual server with 4CPU cores and 8GB of memory<br />
1 App Pool for web users configured to use 3 max. worker processes<br />
1 App Pool for CMS users configured to use 1 max. worker process<br />
Both pools are configured to recycle @ 950000KB memory usage as we saw that the website becomes instable @ values above this (regardless of Web Garden setup or not.<br />
As you can see, with 8GB of RAM, memory is not really the issue in our setup.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fredrik Haglund</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-4056</link>
		<dc:creator>Fredrik Haglund</dc:creator>
		<pubDate>Fri, 13 Aug 2010 12:18:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-4056</guid>
		<description>Yes, this is true but there is also the fact that EPiServer caches all page data in memory. 

If you enable 2 or more instances they will start compeeting about memory. From a performance perspective it is probably better to scale out and use load balancing</description>
		<content:encoded><![CDATA[<p>Yes, this is true but there is also the fact that EPiServer caches all page data in memory. </p>
<p>If you enable 2 or more instances they will start compeeting about memory. From a performance perspective it is probably better to scale out and use load balancing</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco ter Horst</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-4055</link>
		<dc:creator>Marco ter Horst</dc:creator>
		<pubDate>Fri, 13 Aug 2010 11:29:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-4055</guid>
		<description>Hi Fredrik,

in the blog you state: &quot; ...  Do not use Web Garden unless you know what you are doing. ...&quot;

In fact, it&#039;s not quite so difficult to implement a Web Garden with EpiServer. All thanks to Microsoft&#039;s own ASP.NET State Service.

The main problem with Web Gardens and EpiServer is session state information.
E.g. if you log on to the CMS while your request is being handled by IIS worker process (A) and perform an action in the CMS which is handled by IIS worker process (B), you will get prompted to login again. 
Not really a workable environment.

With the ASP.NET State Service it&#039;s fairly simple to handle session information outside of the IIS worker processes. It only requires the service to be started (it ships with Windows Server out of the box) and the web.config to be altered to use it (See: http://technet.microsoft.com/nl-nl/library/cc732412(WS.10).aspx ).

With this change implemented, enabling a Web Garden is a piece of cake really ;-)

Hope this helps!</description>
		<content:encoded><![CDATA[<p>Hi Fredrik,</p>
<p>in the blog you state: &#8221; &#8230;  Do not use Web Garden unless you know what you are doing. &#8230;&#8221;</p>
<p>In fact, it&#8217;s not quite so difficult to implement a Web Garden with EpiServer. All thanks to Microsoft&#8217;s own ASP.NET State Service.</p>
<p>The main problem with Web Gardens and EpiServer is session state information.<br />
E.g. if you log on to the CMS while your request is being handled by IIS worker process (A) and perform an action in the CMS which is handled by IIS worker process (B), you will get prompted to login again.<br />
Not really a workable environment.</p>
<p>With the ASP.NET State Service it&#8217;s fairly simple to handle session information outside of the IIS worker processes. It only requires the service to be started (it ships with Windows Server out of the box) and the web.config to be altered to use it (See: <a href="http://technet.microsoft.com/nl-nl/library/cc732412(WS.10).aspx" rel="nofollow">http://technet.microsoft.com/nl-nl/library/cc732412(WS.10).aspx</a> ).</p>
<p>With this change implemented, enabling a Web Garden is a piece of cake really <img src='http://blog.fredrikhaglund.se/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Hope this helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrik Almqvist</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-3180</link>
		<dc:creator>Patrik Almqvist</dc:creator>
		<pubDate>Wed, 18 Feb 2009 15:30:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-3180</guid>
		<description>Thanks a lot!!</description>
		<content:encoded><![CDATA[<p>Thanks a lot!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fredrik Haglund</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-3176</link>
		<dc:creator>Fredrik Haglund</dc:creator>
		<pubDate>Wed, 18 Feb 2009 14:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-3176</guid>
		<description>Ah... sorry! The reason is that there are installers that expect that both the Default Application Pool and the Default Web Site exist, otherwise they fail. There are olso a risk that an installer modifies the first pool or web site. So that is why you should leave them in place and not use them.

If you used Cassini in Visual Studio for debugging it did also picks up settings from the default web site that affects the site you are debugging.</description>
		<content:encoded><![CDATA[<p>Ah&#8230; sorry! The reason is that there are installers that expect that both the Default Application Pool and the Default Web Site exist, otherwise they fail. There are olso a risk that an installer modifies the first pool or web site. So that is why you should leave them in place and not use them.</p>
<p>If you used Cassini in Visual Studio for debugging it did also picks up settings from the default web site that affects the site you are debugging.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrik Almqvist</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-3175</link>
		<dc:creator>Patrik Almqvist</dc:creator>
		<pubDate>Wed, 18 Feb 2009 13:33:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-3175</guid>
		<description>Great article, though I have a question..   You write about DefaultApplictionPool: &quot;Do not use it and do NOT delete it (even if you plan to never use it). Create your own pool instead...&quot; bur you do not explain why!?  Maybe it&#039;s obvious, and just lack of knowledge from my side, but would very much like to know why.</description>
		<content:encoded><![CDATA[<p>Great article, though I have a question..   You write about DefaultApplictionPool: &#8220;Do not use it and do NOT delete it (even if you plan to never use it). Create your own pool instead&#8230;&#8221; bur you do not explain why!?  Maybe it&#8217;s obvious, and just lack of knowledge from my side, but would very much like to know why.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Björn Gullander</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-2251</link>
		<dc:creator>Björn Gullander</dc:creator>
		<pubDate>Wed, 05 Mar 2008 10:31:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-2251</guid>
		<description>Good article that handles some of these assembly loading problems that can be a horror to resolve. 

Is there any case when the bind redirect does not work? I have a case where a 3rd-party component uses version 4.61.0.83 of Episerver.dll but in our codebase we use version 4.61.3.83. 

We have added an assembly redirect in the web.config but still we get the yellow screen telling that the 3rd-party application wants the earlier version. 

Is there any other way to force the 3rd-party application to use version 4.61.3.83 ? 

Or is my only solution to ask for a new dll referencing the correct version from our partner?</description>
		<content:encoded><![CDATA[<p>Good article that handles some of these assembly loading problems that can be a horror to resolve. </p>
<p>Is there any case when the bind redirect does not work? I have a case where a 3rd-party component uses version 4.61.0.83 of Episerver.dll but in our codebase we use version 4.61.3.83. </p>
<p>We have added an assembly redirect in the web.config but still we get the yellow screen telling that the 3rd-party application wants the earlier version. </p>
<p>Is there any other way to force the 3rd-party application to use version 4.61.3.83 ? </p>
<p>Or is my only solution to ask for a new dll referencing the correct version from our partner?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mattias Nordgren</title>
		<link>http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/comment-page-1/#comment-2172</link>
		<dc:creator>Mattias Nordgren</dc:creator>
		<pubDate>Tue, 05 Feb 2008 11:42:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fredrikhaglund.se/blog/2008/02/01/performance-tuning-and-optimization-of-episerver/#comment-2172</guid>
		<description>Great article!</description>
		<content:encoded><![CDATA[<p>Great article!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

