<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Jesper On Stuff</title>
	<atom:link href="http://jesperen.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://jesperen.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 08 Apr 2008 10:12:22 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Google App Engine by Alexey Rusakov</title>
		<link>http://jesperen.wordpress.com/2008/04/08/google-app-engine/#comment-98</link>
		<dc:creator>Alexey Rusakov</dc:creator>
		<pubDate>Tue, 08 Apr 2008 10:12:22 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/?p=13#comment-98</guid>
		<description>I thought it was something similar to Amazon&#039;s S3 and EC2 services, but after watching the sample app demo it looks its more like online application sandbox.

They only support python and a fairly simple webapp framework, but more is to come.</description>
		<content:encoded><![CDATA[<p>I thought it was something similar to Amazon&#8217;s S3 and EC2 services, but after watching the sample app demo it looks its more like online application sandbox.</p>
<p>They only support python and a fairly simple webapp framework, but more is to come.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by Maximus</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-94</link>
		<dc:creator>Maximus</dc:creator>
		<pubDate>Thu, 20 Dec 2007 10:54:42 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-94</guid>
		<description>I would like to see a continuation of the topic</description>
		<content:encoded><![CDATA[<p>I would like to see a continuation of the topic</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by jesperfj</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-67</link>
		<dc:creator>jesperfj</dc:creator>
		<pubDate>Mon, 15 Oct 2007 09:53:16 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-67</guid>
		<description>Hi James
Interesting observation. Do you run anything else than IIS on these servers? I am curious about what proces is actually using the CPU. I would set up three counters in perfmon on both servers: 
1) Total CPU usage 
2) CPU usage of w3wp.exe process
3) .Net CLR memory &gt; % time in GC

By comparing 1) and 2) you should get an idea if is Asp.Net using the memory or &quot;other stuff&quot;. As the kernel got its memory reduced to 1 GB, it may be more CPU heavy. 

3) Shows how much CPU the .Net garbage collector uses. Now that you have increased the memory for .Net, the garbage collector should be more busy collecting garbage from this memory. You can also set up perfmon counters to see how many GC collects are performed.

If you got rid of the OOM exceptions on the 4GB server, you may find it acceptable that it performs slightly worse than the other server because you never know when OOM will show its ugly face to the users and the result is usually a broken website. If recycling the App pool once a day avoids OOM exceptions, i very much prefer this to recycling at random times of day when memory is full. But I recommend a balanced strategy where you recycle once a day, but also have a memory limit where to recycle just in case you are getting close to a OOM. But it should be the exception that this occurs. I assume you add data to the Asp.Net cachesince you run out of memory. If you have set up any limits in your code where you stop to add more to the cache, you actually have a so called &quot;self inflicted&quot; memory leak. You can therefore avoid the OOM&#039;s if your code stops adding to the cache at some limit.

The Sitecore CMS is heavily relying on caching, but still in general our customer websites run for days, weeks and months without hitting memory limits or experiencing OOM&#039;s. This has been obtained by monitoring the processes &quot;Private bytes&quot; in our code, and stop adding to the cache at configured thresholds.

Notice: I agree that recycling the system service should not be the norm. But your code may keep pointers to the memory, which is e.g. the case if you store something in a (in process) session variable. The garbagfe collector will NEVER be able to collect this memory because it is in use. Therefore, at some point you have to prioritize what data to cache in memory.

Brgds. Jesper</description>
		<content:encoded><![CDATA[<p>Hi James<br />
Interesting observation. Do you run anything else than IIS on these servers? I am curious about what proces is actually using the CPU. I would set up three counters in perfmon on both servers:<br />
1) Total CPU usage<br />
2) CPU usage of w3wp.exe process<br />
3) .Net CLR memory &gt; % time in GC</p>
<p>By comparing 1) and 2) you should get an idea if is Asp.Net using the memory or &#8220;other stuff&#8221;. As the kernel got its memory reduced to 1 GB, it may be more CPU heavy. </p>
<p>3) Shows how much CPU the .Net garbage collector uses. Now that you have increased the memory for .Net, the garbage collector should be more busy collecting garbage from this memory. You can also set up perfmon counters to see how many GC collects are performed.</p>
<p>If you got rid of the OOM exceptions on the 4GB server, you may find it acceptable that it performs slightly worse than the other server because you never know when OOM will show its ugly face to the users and the result is usually a broken website. If recycling the App pool once a day avoids OOM exceptions, i very much prefer this to recycling at random times of day when memory is full. But I recommend a balanced strategy where you recycle once a day, but also have a memory limit where to recycle just in case you are getting close to a OOM. But it should be the exception that this occurs. I assume you add data to the Asp.Net cachesince you run out of memory. If you have set up any limits in your code where you stop to add more to the cache, you actually have a so called &#8220;self inflicted&#8221; memory leak. You can therefore avoid the OOM&#8217;s if your code stops adding to the cache at some limit.</p>
<p>The Sitecore CMS is heavily relying on caching, but still in general our customer websites run for days, weeks and months without hitting memory limits or experiencing OOM&#8217;s. This has been obtained by monitoring the processes &#8220;Private bytes&#8221; in our code, and stop adding to the cache at configured thresholds.</p>
<p>Notice: I agree that recycling the system service should not be the norm. But your code may keep pointers to the memory, which is e.g. the case if you store something in a (in process) session variable. The garbagfe collector will NEVER be able to collect this memory because it is in use. Therefore, at some point you have to prioritize what data to cache in memory.</p>
<p>Brgds. Jesper</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by James</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-58</link>
		<dc:creator>James</dc:creator>
		<pubDate>Sat, 29 Sep 2007 06:40:16 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-58</guid>
		<description>WE have 2 servers w/2GB physical RAM both are idetical.
We were having OutOfMEM exceptions.

We added 2GB to one to make 4GB and added the 3/GB switch.

The servers host ASP.NET xml web services that use IIS / http for transport.

The server with 2GB is slightly outperforming the server with 4GB in terms of response times.

Also, the 4GB server is using much more CPU than the 2GB Server to do the same job.

With using the 3GB switch, the kernel is now limited to 1GB.
Could there be an issue with http.sys queuing up since it runs in kernel mode?

We recycle the App pool on a schedule once a day. All other settings on the App pool are
default.

Should we try tuning with recycling maxed used mem: 800?

Is it true that recyling using this method is standard practice?

Recycling a system service to manage the Application doesnt sound as good as the Application
performing Garbage collection on its own.

Can you give some advice?

Thanks,
James</description>
		<content:encoded><![CDATA[<p>WE have 2 servers w/2GB physical RAM both are idetical.<br />
We were having OutOfMEM exceptions.</p>
<p>We added 2GB to one to make 4GB and added the 3/GB switch.</p>
<p>The servers host ASP.NET xml web services that use IIS / http for transport.</p>
<p>The server with 2GB is slightly outperforming the server with 4GB in terms of response times.</p>
<p>Also, the 4GB server is using much more CPU than the 2GB Server to do the same job.</p>
<p>With using the 3GB switch, the kernel is now limited to 1GB.<br />
Could there be an issue with http.sys queuing up since it runs in kernel mode?</p>
<p>We recycle the App pool on a schedule once a day. All other settings on the App pool are<br />
default.</p>
<p>Should we try tuning with recycling maxed used mem: 800?</p>
<p>Is it true that recyling using this method is standard practice?</p>
<p>Recycling a system service to manage the Application doesnt sound as good as the Application<br />
performing Garbage collection on its own.</p>
<p>Can you give some advice?</p>
<p>Thanks,<br />
James</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Multiple Application Pools impact on Virtual Memory and Pagefile Size by jesperfj</title>
		<link>http://jesperen.wordpress.com/2007/09/21/multiple-application-pools-impact-on-virtual-memory-and-pagefile-size/#comment-57</link>
		<dc:creator>jesperfj</dc:creator>
		<pubDate>Mon, 24 Sep 2007 12:18:28 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/09/21/multiple-application-pools-impact-on-virtual-memory-and-pagefile-size/#comment-57</guid>
		<description>Hi Christian
Yes, these are Sitecore sites. However the focus of the article is more on what happens to the server environment at extreme memory loads rather than going into details of Sitecore. One should&#039;t put too much into the actual numbers of sites that we cound run in this test as several conditions are artificial. E.g. the number of hits/site/minute was taken out of blue air, and as you also point to, we didn&#039;t stress the server with requests to css, javsacript and image files during these tests.

But if you are going to perform similar tests on your own, you should be able to find some gold nuggets that are not too obvious at first look.

/Jesper</description>
		<content:encoded><![CDATA[<p>Hi Christian<br />
Yes, these are Sitecore sites. However the focus of the article is more on what happens to the server environment at extreme memory loads rather than going into details of Sitecore. One should&#8217;t put too much into the actual numbers of sites that we cound run in this test as several conditions are artificial. E.g. the number of hits/site/minute was taken out of blue air, and as you also point to, we didn&#8217;t stress the server with requests to css, javsacript and image files during these tests.</p>
<p>But if you are going to perform similar tests on your own, you should be able to find some gold nuggets that are not too obvious at first look.</p>
<p>/Jesper</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Multiple Application Pools impact on Virtual Memory and Pagefile Size by Christian</title>
		<link>http://jesperen.wordpress.com/2007/09/21/multiple-application-pools-impact-on-virtual-memory-and-pagefile-size/#comment-56</link>
		<dc:creator>Christian</dc:creator>
		<pubDate>Mon, 24 Sep 2007 08:57:26 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/09/21/multiple-application-pools-impact-on-virtual-memory-and-pagefile-size/#comment-56</guid>
		<description>Interesting post :-)

You do not write what kind of asp.net website you are doing test against - is it Sitecore sites?

Most websites use image, css, javascript etc. is this also including in your test?
Most files will be cached on the client, but the will still make a hit on the server with the E-tag, so each of your *.aspx request should make 15 extra hits to static files</description>
		<content:encoded><![CDATA[<p>Interesting post <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>You do not write what kind of asp.net website you are doing test against &#8211; is it Sitecore sites?</p>
<p>Most websites use image, css, javascript etc. is this also including in your test?<br />
Most files will be cached on the client, but the will still make a hit on the server with the E-tag, so each of your *.aspx request should make 15 extra hits to static files</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by jesperfj</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-16</link>
		<dc:creator>jesperfj</dc:creator>
		<pubDate>Sat, 11 Aug 2007 16:10:58 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-16</guid>
		<description>Hi Raj
You should check if it is &quot;OutOfMemory&quot; (OOM ) OR &quot;memorylimit Exceeded&quot; exceptions that is thrown when you get to 1.8GB. Assuming it is &quot;memorylimit Exceeded&quot;, you could increase the memoryLimit. That would be in IIS manager on IIS 6.0, where you should find the &quot;Maximum Memory...&quot; and adjust it to whatever you find right.

Notice however that 1.8GB is the recommended memoryLimit when using the 3GB switch. Without the switch the recommendation is only 800MB. But you can of course increase the limit above 1,8GB and see what happens. But the risk of receiving OOM exceptions will increase.

You could also see if you can decrease the memory usage by storing it outside the ASP.Net process. If you start new IIS website with its own application pool on the same server, this application pool will get its own 3GB virtual memory - giving you 3+3 = 6GB virtual memeory on one machine. However there is no such thing as a free meal, and boosting virtual memory like this will increase disk swapping by Windows memory management. 

What kind of exception is it you receive, and what is the memoryLimit set to?</description>
		<content:encoded><![CDATA[<p>Hi Raj<br />
You should check if it is &#8220;OutOfMemory&#8221; (OOM ) OR &#8220;memorylimit Exceeded&#8221; exceptions that is thrown when you get to 1.8GB. Assuming it is &#8220;memorylimit Exceeded&#8221;, you could increase the memoryLimit. That would be in IIS manager on IIS 6.0, where you should find the &#8220;Maximum Memory&#8230;&#8221; and adjust it to whatever you find right.</p>
<p>Notice however that 1.8GB is the recommended memoryLimit when using the 3GB switch. Without the switch the recommendation is only 800MB. But you can of course increase the limit above 1,8GB and see what happens. But the risk of receiving OOM exceptions will increase.</p>
<p>You could also see if you can decrease the memory usage by storing it outside the ASP.Net process. If you start new IIS website with its own application pool on the same server, this application pool will get its own 3GB virtual memory &#8211; giving you 3+3 = 6GB virtual memeory on one machine. However there is no such thing as a free meal, and boosting virtual memory like this will increase disk swapping by Windows memory management. </p>
<p>What kind of exception is it you receive, and what is the memoryLimit set to?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by Raj</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-9</link>
		<dc:creator>Raj</dc:creator>
		<pubDate>Sun, 08 Jul 2007 14:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-9</guid>
		<description>Hi jasperfj,
Thank you very much for the information. Its been a very useful one. The myths about /3GB are now unravelled. 
I have a typical problem facing. I have a web server farm of about 36 servers (32 bit) and in each server the RAM size is 4GB. As you said earlier, since the 3GB switch is not enabled the kernel uses 2GB and other applications can use another 2GB.
The problem is that my ASP application running on the IIS 6.0 is reaching its peak of 1.8 GB memory utilisation very frequently. i thought if i could change the boot.ini file by adding 3GB switch, the application will be able to use more virtual memory. Hoping that this may increase maximum limit for memory utilisation. But there wasn&#039;t any success. I just rebooted the machine after adding 3GB switch. Should i be following any other steps to achieve what i am looking for ?? 
Can you please suggest me how do i increase the virtual memory limit from 1.8GB to more. (P.S The application is an ASP application)</description>
		<content:encoded><![CDATA[<p>Hi jasperfj,<br />
Thank you very much for the information. Its been a very useful one. The myths about /3GB are now unravelled.<br />
I have a typical problem facing. I have a web server farm of about 36 servers (32 bit) and in each server the RAM size is 4GB. As you said earlier, since the 3GB switch is not enabled the kernel uses 2GB and other applications can use another 2GB.<br />
The problem is that my ASP application running on the IIS 6.0 is reaching its peak of 1.8 GB memory utilisation very frequently. i thought if i could change the boot.ini file by adding 3GB switch, the application will be able to use more virtual memory. Hoping that this may increase maximum limit for memory utilisation. But there wasn&#8217;t any success. I just rebooted the machine after adding 3GB switch. Should i be following any other steps to achieve what i am looking for ??<br />
Can you please suggest me how do i increase the virtual memory limit from 1.8GB to more. (P.S The application is an ASP application)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by jesperfj</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-6</link>
		<dc:creator>jesperfj</dc:creator>
		<pubDate>Fri, 15 Jun 2007 08:41:56 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-6</guid>
		<description>Hi Adam
If you start up perfmon to show &quot;Process\Private Bytes&quot; as well as Virtual Bytes you should see that private bytes stay below the 800Mb you stated in Max Used Memory. What are these values when you experience OOM&#039;s? First of all you should double check that it really is OOM exceptions you experience.
The &quot;memoryLimit exceeded&quot; (MLE) exception could also cause problems, and it is more or less so that whenever you decrease the MaxUsedMemory, you also decrease the risk of OOM&#039;s but INCREASE the risk of MLE&#039;s and vice versa. Therefore it is important to be certain what exception you actually experience.
With your setup (MaxUsedMemory=800 and 3GB switch) you have 2.2 GB memory free for the tasks that usually cause OOM&#039;s. So if your code uses up this 2.2GB it is a bit extreme. You can download a free trial of a memory profiler at memprofiler.com that can tell you about anything about the current memory status of your process. It should enable you to find the cause of the OOM&#039;s.
When you set Max Used Memory to 400Mb, I am almost certain that process recycles do to memoryLimit Exceeded. If you observer private bytes in perfmon you should be able to see it increase up to the 400MB limit, and then suddenly drop as the process is recycled. What is the highest &quot;Private Bytes&quot; you observe when you set Max Used Memory to 800MB?
It sounds like you may have a &quot;memory leak&quot; somewhere in the code, that needs to be fixed in order to get rid of the recycles. If you have such a leak, it is only a question about time before you run into trouble.
Feel free to write again.
</description>
		<content:encoded><![CDATA[<p>Hi Adam<br />
If you start up perfmon to show &#8220;Process\Private Bytes&#8221; as well as Virtual Bytes you should see that private bytes stay below the 800Mb you stated in Max Used Memory. What are these values when you experience OOM&#8217;s? First of all you should double check that it really is OOM exceptions you experience.<br />
The &#8220;memoryLimit exceeded&#8221; (MLE) exception could also cause problems, and it is more or less so that whenever you decrease the MaxUsedMemory, you also decrease the risk of OOM&#8217;s but INCREASE the risk of MLE&#8217;s and vice versa. Therefore it is important to be certain what exception you actually experience.<br />
With your setup (MaxUsedMemory=800 and 3GB switch) you have 2.2 GB memory free for the tasks that usually cause OOM&#8217;s. So if your code uses up this 2.2GB it is a bit extreme. You can download a free trial of a memory profiler at memprofiler.com that can tell you about anything about the current memory status of your process. It should enable you to find the cause of the OOM&#8217;s.<br />
When you set Max Used Memory to 400Mb, I am almost certain that process recycles do to memoryLimit Exceeded. If you observer private bytes in perfmon you should be able to see it increase up to the 400MB limit, and then suddenly drop as the process is recycled. What is the highest &#8220;Private Bytes&#8221; you observe when you set Max Used Memory to 800MB?<br />
It sounds like you may have a &#8220;memory leak&#8221; somewhere in the code, that needs to be fixed in order to get rid of the recycles. If you have such a leak, it is only a question about time before you run into trouble.<br />
Feel free to write again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding ASP.Net memory by Adam</title>
		<link>http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-5</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Fri, 15 Jun 2007 06:42:30 +0000</pubDate>
		<guid isPermaLink="false">http://jesperen.wordpress.com/2007/05/23/understanding-aspnet-memory/#comment-5</guid>
		<description>Im running iis6 with win server 2003 with /3gb switch in boot.ini and 4gb ram.
I have set the Max Used Memory to 800mb
and im getting OOM exceptions fairly frequently.

Ive tried changing it to 400mb, but now i get the process recycling every couple of minutes..

The above looks and sounds great.. but for the life of me i cant get the process to recycle at a resonable frequency per day.

any tips?</description>
		<content:encoded><![CDATA[<p>Im running iis6 with win server 2003 with /3gb switch in boot.ini and 4gb ram.<br />
I have set the Max Used Memory to 800mb<br />
and im getting OOM exceptions fairly frequently.</p>
<p>Ive tried changing it to 400mb, but now i get the process recycling every couple of minutes..</p>
<p>The above looks and sounds great.. but for the life of me i cant get the process to recycle at a resonable frequency per day.</p>
<p>any tips?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
