Application Pool warm-up

I had a post the other day on forums.iis.net that I did some research and wanted to share.  It was regarding Application Pool warm-ups.  Currently, there is no settings to help after a recycle, crash of an app pool etc.  http://www.asp.net/learn/whitepapers/aspnet40/#_Toc223325464   ASP.NET 4.0 has some configuration posted here.  I know IIS 7.5 will have the plumbing to support this.   A few searchs on the internet (Google, Live) shows there is plenty of Sharepoint warm-up scripts and ideas.  Sharepoint is dreadfully slow on warm-up.   Here are a couple of handle links I found.



Here is my response in the forum.


“The app pool warm up architecture is a weakness that will be address in Win 2008 r2 with some warmup architecture.  Until then, the only way would be to A) Use SCOM (System Center Operations Manager) to send an HTTP request on a recycle.   It can watch for events and send requests based on an additional management pack.  SCOM is pretty pricey and not all people deploy it.  B) Would be to have some script that makes an http request to a webpage that runs every X number of seconds (vbs file scheduled with task scheduler).  C) Have some external monitoring htting the website doing screen scrapes.  B) and C) are poor mans options and it’s a ‘shot in the dark’, but it’ll at least be hitting your site on a continual basis minimizing potential perfmon issues.


To help minimize app pool recycles, you can set the recycle event to a specific time (say in the middle of the night).  On a webfarm, make sure to stagger so not all are hitting at once.  Set the virtual memory limits higher so you don’t accidentally get a lot of resets.   I’d look at the application pool properties (advanced) and see what stands out.   The memory limits and controlled recycle times are two that strike me right off. Under recycle event log entry, you can experiment with logging everything and build some log parser queries to look for specific events to see if there are issues.  the long short of the story nothing easy, I see searching google there are some Sharepoint ones, these might be something to try, but nothing specific to generic IIS. (Sharepoint warm-up times are terrible).


http://weblogs.asp.net/steveschofield/archive/2006/09/28/Schedule-a-task-to-call-a-webpage-using-Task-scheduler_2E00_.aspx


I look forward to R2’s feature for this, it’s long overdue and will help with performance on many data driven and ASP.NET websites.  If you have a method that you’ve found successful, I’d like to here.  Drop me a line at steve AT iislogs.com


Cheers,


Steve Schofield
Microsoft MVP – IIS

Configure Passive (PASV) ports for FTP 7 – w/pictures

They say a picture is worth a 1000 words, in this case it’s worth every one.  Recently in the forums @ http://forums.iis.net, a few posts came up people trying to setup FTP over SSL with an external firewall.  They were running into issues where they could connect, but couldn’t get a directory list.  After answering a few threads stating the configuration to support FTP over SSL with PASV ports.   I thought I would blog what few steps to complete the config.    This blog isn’t meant to be the ‘end all be all’, but will be a targeted post to help people visually.


I’m assuming you’ve installed FTP 7.  If not, here is an article to install FTP 7.   This is a great starter article and one I’d recommend for people looking for a secure FTP over SSL solution.  (Assuming you have Windows Server 2008 / FTP 7.x of course)


http://learn.iis.net/page.aspx/263/installing-and-troubleshooting-ftp75/


 


Also, I’m assuming you configured your server to use an SSL certificate.  If not, here is an article that can assist setting this up.


http://learn.iis.net/page.aspx/304/using-ftp-over-ssl/


 


First thing: Define a range of PASV TCP ports on your router or firewall.  From my days of running WS-FTP server, they used ports 4900 – 4910 by default.    I got hooked and use these ones.  The ports can be anything.  If you are not sure, check with your network admin.


 


Secondly – Open IIS Manager, select the computer name, open FTP Firewall Support


 



 


Next, type in the Data Channel Port Range and external IP address.   The External IP address can be left blank and filled in at a site level.  The port range will be inherited by each site.  Assuming you have static IP address on each site, there won’t be an issue sharing this range across multiple FTP sites.


 



 


TEST, TEST, TEST


You can use FileZilla, CoreFTP to test your connections. 


 


Between the two articles on http://learn.iis.net, and this added tidbit, you should have a secure FTP solution over port 21.   I’ve not tried using port 990 for FTP recently, I’ve done it in the past but it’s been too long, so I stick with port 21, require SSL and open a few PASV ports. 


 


Hope this helps,


 


Steve Schofield


Microsoft MVP – IIS


 


Resources.


http://blogs.iis.net/jaroslad/archive/2007/09/29/windows-firewall-setup-for-microsoft-ftp-publishing-service-for-iis-7-0.aspx


 


http://support.ipswitch.com/kb/FS-20051115-DM01.htm


 


Check out Robert’s blog (IIS Team FTP guru)


http://blogs.iis.net/robert_mcmurray/default.aspx