Windows Administration

JessCoburn.Com running on ARR! and that not be Pirate speak thar Matey!

3 Blog posts to say “Hey I’m running on my site load balanced using ARR”. This is the third and hopefully last blog post for tonight.  I posted two other posts tonight:

  1. Discusses the first stage of Applied Innovations Cloud Initiative.
  2. Discusses ARR & Load balancing.

All of this was to explain how I’m running my website currently (which I tend to test everything on first so I break it a lot but you have to break eggs to make cake, right?).

ARR or Application Request Routing is a new extension to IIS7 that allows you to turn a Windows Server (or VPS as in my case) into an Application Aware Load Balancer with such features as offloading compression and SSL encryption!

How I’m running JessCoburn.com

For the past year and a half, JessCoburn.com has (and continues to) run on a shared web hosting server that runs IIS7 on top of Windows Server 2008. My site is treated identically to how my customers sites are treated as I firmly believe in eating your own dog food (no not ALPO but using the same services you sell). The site makes use of FastCGI to run the PHP engine and backends to a shared MySQL server. All of our shared web servers connect to the SQL servers via a private dedicated gigabit network for optimal performance. In addition, I make use of expiry headers for output caching of my images and also use the wordpress plugin supercache to reduce my reliance on MySQL queries so my pages render faster.  So that’s why it’s been fast, I think you’d agree that’s pretty well optimized for a Windows shared hosting website (same thing you could for as little as $8.33 a month with one of our Windows hosting accounts..  Sure it’s optimized but there’s still a problem.

What’s the problem with JessCoburn.com?

The problem is my web site runs on a single web server. This means if there’s maintenance on the box (don’t worry we do this during load traffic times) there’s still potentially downtime. This also means if my site ever gets popular enough to make the first page of DIGG or REDDIT (use those social bookmarks please) then no matter how much I optimize my site on that one web server, I could have a problem… These are the trade-offs we accept with shared hosting (today).

But what if, I could run JessCoburn.com on multiple web servers and load balance them? Yeah who’s going to go out and spend 20K to load balance his little wordpress blog (the profit margins aren’t that good you know).  Well thanks to our own cloud computing initiative and the good folks on the IIS Team at Microsoft I can do just that for peanuts! Today!

My new configuration

I have a Windows 2008 VPS running IIS7 with ARR 2.0 Beta 2 on it. It’s of course running on our High Availability Managed Windows VPS Hosting Cluster.  I also have JessCoburn.com still running on the shared Windows Hosting server running on IIS7 and I setup another VPS server running on top of Virtuozzo running Windows 2003 and copied the site there. Just to show that you can route requests to any kind of server.  Both servers back end to the same MySQL server.

All requests for JessCoburn.com come into the ARR server and it then proxies these requests between the Shared Server and the Win2003 VPS server.  In the event one of the sites crashes, is down or has problems, ARR will redirect all requests to the other server.

Installing Windows 7 From a USB Thumb Drive

My most popular blog post is about installing Windows 2008 from a USB thumb drive. Over the weekend I decided to upgrade my Laptop from Windows Vista to Windows 7 and used the same instructions to do that upgrade. So the instructions for:

  • Installing Vista from a USB Thumb Drive
  • Installing Windows Server 2008 from a USB Thumb Drive
  • Installing Windows 7 from a USB Thumb Drive

are all the same: http://jesscoburn.com/archives/2007/10/15/installing-windows-2008-via-usb-thumbdrive/

Terminal Services Across Multiple Monitors

At work and home I have the same setup, dual monitors. I always RDP into my desktop these days instead of installing Outlook, Office, etc at home and I’ve always found myself not working in dual monitor mode because of this when working remotely.

Turns out you can use multiple monitors in Terminal Services afterall.

Enabling Multiple Monitors via RDP

To enable multiple monitors in an RDP session you’ll use the switch: /span  so you’ll start RDP with the command:

mstsc /span

When it loads just log into the machine as you normally do and your display will now span both monitors. The monitors will have to be the same resolution, only supports side-by-side configuration and a maximum resolution of 4096×2048

Remotely Kill Process on a Windows Server

Ran into a problem today where I needed to kill a process on a server that I didn’t have remote KVM access to and couldn’t RDP into. This particular machine had only VNC and the VNC service was hung. 

Windows Server includes two commands tasklist and taskkill that allow you to remotely list the processes running on a machine and then kill these processes.

Viewing Tasks on Remote Computer

To view the processes just use the command:

tasklist.exe /S SYSTEM /U USERNAME /P PASSWORD

Killing Tasks on Remote Computer

Once you have the PID of a process you can execute

taskkill.exe /S SYSTEM /U USERNAME /P PASSWORD /PID PID_NUMBER

I found this great tool by googling it and finding the watching the net blog article on it, there’s more information on their blog (along with a ton of google adsense ads..).