Re: Performance question (IIS 6)
From: David Wang [Msft] (someone_at_online.microsoft.com)
Date: 06/01/04
- Next message: David Wang [Msft]: "Re: Problem with .rpt open files (Crystal Report) in IIS 6"
- Previous message: David Wang [Msft]: "Re: IIS V6 Master Logging?"
- Next in thread: Glen Appleton: "Re: Performance question (IIS 6)"
- Reply: Glen Appleton: "Re: Performance question (IIS 6)"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 31 May 2004 19:25:39 -0700
IIS6 is designed to be frugal with system resources. Thus, Application
Pools load "on-demand", and they unload "on-idle timeout".
The delay on the first request is due to interaction between IIS process
recycling and CLR's initialization costs. CLR initialization happens once
per process, but IIS6 recycles processes based on many parameters, include
idleness, to conserve resources. Thus, every time IIS6 recycles a process,
subsequent managed code execution take the CLR initialization hit.
IIS6 does not have any provisions to "pre-load" application pools -- doesn't
make sense when Application Pools are designed to be loaded "on demand".
You can do this yourself by making a request to the necessary application
pools to trigger them to load. It is quite trivial to use the many existing
web request making tools and automate a little "warm-up" script to do this.
My suggestion for your non-production environment would be:
1. Turn off all the application pool recycling parameters except maybe the
memory based ones (ASP.Net and Web Services can take advantage of it, should
they start hogging too much memory)
2. Make one request to spin up each of the application pools that you use to
host Web Services
This should prevent you from hitting the delay caused by loading the CLR
until you reboot the server.
It is quite odd to optimize against "startup costs" when one frequently
reboots the server because the act of rebooting incurs infinite startup
costs for everything.
--
//David
IIS
This posting is provided "AS IS" with no warranties, and confers no rights.
//
"Glen Appleton" <buglen@hotmail.com> wrote in message
news:OR13jEmREHA.904@TK2MSFTNGP12.phx.gbl...
Hi there,
I have a development network setup with one server (2003 Ent) and one
workstation (XP Pro SP1) that I'm using for learning and testing web
services. I have all the updates on the 2003 server with IIS 6 and the
latest FP extensions installed with Windows SharePoint Services and SQL
Server Reporting Services running.
After I boot up the server each day, the first time I log into any of the
sites on the box it takes quite a bit longer than any subsequent visits
until I have to reset IIS for some updates. Is this due to the idle time
out settings on the web site application pools? Since this is basically a
single user scenerio, how can I set it up to pre-load the application pools
as IIS starts up to get better performance?
Thank you for any help you can provide.
- Glen
- Next message: David Wang [Msft]: "Re: Problem with .rpt open files (Crystal Report) in IIS 6"
- Previous message: David Wang [Msft]: "Re: IIS V6 Master Logging?"
- Next in thread: Glen Appleton: "Re: Performance question (IIS 6)"
- Reply: Glen Appleton: "Re: Performance question (IIS 6)"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|