This blog is powered by subText, an open source of ASP.net based blog engine. And because I am an ASP.net web developer I ought to use a blog engine that is powered by ASP.net. And because of that, this blog is hosted on windows based IIS web server at Webhost4life who once is a very good hosting provider for ASP.net based website. They also generously add PHP support on their IIS server as well, which is why when I started my other two new blogs I went ahead and used self-hosted WordPress as the new blog engine.
Everything went extremely smooth, except one thing. Loading the website is quite slow, painfully slow when you first access it, especially when the site is new and only have certain numbers of visitors a day. It’s a major problem that I need to address, as I have another WordPress powered website launching soon.
The problem is, web applications hosted on IIS are all session-based. When the site is staying in idle long enough, all launched, cached session will be all shut down and the state related to that session will be cleaned up accordingly at the same time. So when next visitor comes to the site, the web server needs to launch the same process again, which takes time and slow. I am not an Apache expert, so I am not so sure if that applies the same to the sites hosted on Apache.
The solution is, either configuring the web server to extend the timeout, or setting up some tools that constantly check the website, like once per minute. I don’t own or have control on this web server, so I went for the second option.
I could write a simple app that does the work, but instead of doing that, I installed a free network monitor app PRTG Network Monitor on one of my computers that pretty much run 24 hours, and set it up so it uses http/get to check out all my new launched website once per minute.
The results? Awesome. Accessing these new launched websites that only have a few visitors a day is blazingly fast now.