Skip to main content

How can I optimize IIS warmup on servers with many sites? (E.g. staged warmup.)

itemprop="text">

Some of our web servers host quite a
few sites. In day-to-day events this has not much effect, as all pages are delivered
reasonably fast and the server's resources are
well-dimensioned.



However, when the host machine
needs to restart (for example for system updates), warming up all sites can take
considerable amounts of time – sometimes over an hour before all warmup is completed.
Presumably, because over ten sites try to grab CPU time for compilation and
loading.



Searching around the web, suggestions
for faster warmup revolve around the idea of a server hosting only few sites, but what
is a good approach for servers with many of
them?



We considered trying to stage warmup, so
that no more sites get processed at a given time than the CPU has room for – means that
the last site probably is not ready a lot sooner, but the first sites will be there
quickly. Already a lot better than the all-or-nothing-like free for
all.




Does IIS provide staged
warmimg-up on IIS startup?


itemprop="text">
class="normal">Answer




Precompiling your web sites will significantly reduce the warmup delay, and
will also avoid a number of intermittent race conditions that occasionally occur during
compilation. You can also configure IIS 8 to preload each web site immediately upon
update as well, but if your CPU is overloaded, that may not be a good option. It sounds
like you may just need more CPU. From experience, I can tell you that if your CPU goes
above about 75% on a 10-minute resolution graph, your users are going to experience
unpleasant delays.



See href="http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization"
rel="nofollow noreferrer">IIS 8.0 Application Initialization for how to
configure application
preloading.



EDIT:
For warmup after a
system restart, precompilation is still highly recommended, but
there is a different configuration option to startup all the sites before the first
request (see reference below). On IIS 8, you may still want to do the application-level
startup too (it will hit specific pages, which allows you to warm caches and load
dynamic dependencies without having to do that manually in your
Application_Start. This type of restart should be done during
non-peak load, and multiple servers with a load balancer is generally the way to avoid
users being affected by the warmup delay. You don't have to go all pricey with a
hardware load balancer, the href="https://msdn.microsoft.com/en-us/library/bb742455.aspx" rel="nofollow
noreferrer">load balancer built into windows is just fine for small shops.
When you are about to start maintenance, you drain the server you're going to restart,
wait for requests to finish (for as long as you want), do the maintenance and then
restart the server in the load balancer, then repeat for the other server. If your
traffic is such that broadcasting it over the network is an issue, you may need a
separate dedicated subnet for the web servers or a router that handles
ICMP.



See href="https://technet.microsoft.com/en-us/library/cc772112(v=WS.10).aspx" rel="nofollow
noreferrer">Configure Automatic Startup for an Application Pool (IIS 7) for
how to configure automatic application start after a system
restart.



Comments

Popular posts from this blog

linux - iDRAC6 Virtual Media native library cannot be loaded

When attempting to mount Virtual Media on a iDRAC6 IP KVM session I get the following error: I'm using Ubuntu 9.04 and: $ javaws -version Java(TM) Web Start 1.6.0_16 $ uname -a Linux aud22419-linux 2.6.28-15-generic #51-Ubuntu SMP Mon Aug 31 13:39:06 UTC 2009 x86_64 GNU/Linux $ firefox -version Mozilla Firefox 3.0.14, Copyright (c) 1998 - 2009 mozilla.org On Windows + IE it (unsurprisingly) works. I've just gotten off the phone with the Dell tech support and I was told it is known to work on Linux + Firefox, albeit Ubuntu is not supported (by Dell, that is). Has anyone out there managed to mount virtual media in the same scenario?

hp proliant - Smart Array P822 with HBA Mode?

We get an HP DL360 G8 with an Smart Array P822 controller. On that controller will come a HP StorageWorks D2700 . Does anybody know, that it is possible to run the Smart Array P822 in HBA mode? I found only information about the P410i, who can run HBA. If this is not supported, what you think about the LSI 9207-8e controller? Will this fit good in that setup? The Hardware we get is used but all original from HP. The StorageWorks has 25 x 900 GB SAS 10K disks. Because the disks are not new I would like to use only 22 for raid6, and the rest for spare (I need to see if the disk count is optimal or not for zfs). It would be nice if I'm not stick to SAS in future. As OS I would like to install debian stretch with zfs 0.71 as file system and software raid. I have see that hp has an page for debian to. I would like to use hba mode because it is recommend, that zfs know at most as possible about the disk, and I'm independent from the raid controller. For us zfs have many benefits,

apache 2.2 - Server Potentially Compromised -- c99madshell

So, low and behold, a legacy site we've been hosting for a client had a version of FCKEditor that allowed someone to upload the dreaded c99madshell exploit onto our web host. I'm not a big security buff -- frankly I'm just a dev currently responsible for S/A duties due to a loss of personnel. Accordingly, I'd love any help you server-faulters could provide in assessing the damage from the exploit. To give you a bit of information: The file was uploaded into a directory within the webroot, "/_img/fck_uploads/File/". The Apache user and group are restricted such that they can't log in and don't have permissions outside of the directory from which we serve sites. All the files had 770 permissions (user rwx, group rwx, other none) -- something I wanted to fix but was told to hold off on as it wasn't "high priority" (hopefully this changes that). So it seems the hackers could've easily executed the script. Now I wasn't able