The triumphs, trials, and tribulations of running a Web site

Like many Web masters, I'm not a systems or network specialist. I have no formal training or extensive experience in either area. I'm strictly responsible for managing the development and production of Windows NT Magazine's Web sites. Because of the Web technology group's ever-growing needs, short development timelines, and a need to address problems quickly, my group has become responsible for its own tech support. This added responsibility can be taxing at times and takes away from what we are supposed to be doing. However, tech support also keeps us current on system configuration issues. The best part about providing our tech support is that we can limit access to the Web servers. Because our IS department doesn't support our machines, IS can't access them. The whole situation is a Catch 22--we can limit access to the machines, which makes security easier, but we also have to support them. I imagine the Web technology group will soon have a support mechanism instead of the development team having to support itself.

In terms of tech support, the biggest trouble area has been selecting the proper hardware and software for hosting our Web site. We've switched Web server software and hardware several times during the past two years. Some of these changes resulted in dramatic improvements; others had the same effect as opening a can of worms.

The Right Hardware and Software
Did you know you can have too much horsepower in your hardware? When I upgraded our single Pentium Pro 200 Web server to a quad Pentium Pro 200 machine, the Windows NT Magazine Lab, which does all sorts of performance and scalability testing, tried to warn me that I might be disappointed. We were going to launch the Windows NT Solutions Directory, and I wanted to start gearing up for it.

Initially, we set up the quad Pentium Pro machine to run Internet Information Server (IIS) and SQL Server--we were quickly disappointed. Some testing showed that this configuration worked well, but when we put it under heavy load, it choked. Too many processes were competing for the same resources. So we went back to running the Web site from the single Pentium Pro 200 machine and moved the SQL Server to a separate dual Pentium 100 machine. This configuration didn't run circles around the quad Pentium Pro 200 machine in performance, but it was stable.

After a lot of testing, tweaking, and shuffling, we ended up with a quad Pentium Pro 200 with 256MB of RAM for the Web server and a quad Pentium Pro 200 with 512MB of RAM for the SQL Server. Of the two, the database server running SQL Server 6.5 has been magical. No matter what type of Web testing we do against other Web servers, this machine screams. It concentrates on one thing, providing database access, and it performs this task very, very well. For the SQL Server, I wouldn't want any other system.

Besides using the right system, configuring it with lots of RAM helps. Added RAM is nice for performance when you can get your applications to use it. However, 512MB is painful when you have to reboot your live machine and wait through the memory test. Unfortunately, our servers do not let us escape the test, so we have to wait for the machine to verify all the memory.

The Web server has been a different story. Our Web server hosts several applications, unlike the SQL Server, which provides only one service. Our Web server hosts IIS 3.0, Cold Fusion 3.0, AdJuggler, and IIS Assistant (IISA). That list might not sound like much (or to some readers it might sound like too much), but a lot is happening here. IISA and AdJuggler have never caused problems in terms of performance or stability, but IIS and Cold Fusion have their moments. When IIS dies, everything stops, and when Cold Fusion stops, more than 80 percent of the site becomes unavailable. When you start considering virtual servers, more than just one Web site is at risk--if one is down, they're all down.

We haven't seen an astronomical increase in performance with the quad Pentium Pro Web server, so I'd rather have several less-powerful machines than one all-powerful machine. In fact, because of recent performance problems, I moved the Web forums off the main Web server onto a separate machine. The forums server still accesses the same SQL Server, but I've distributed the Web server processes for better performance. The best part is that the forums application went from being sluggish and almost unusable to being a speed demon. Moving the forums to their own server also increased performance on the main Web server.

By distributing various Web applications over different servers, I've learned that I can better tune and troubleshoot the applications. If I had our configuration to do over again, I would have each Web site running on a separate single or dual Pentium Pro server instead of one quad Pentium Pro Web server. Not very efficient or cost effective, but such a configuration would make pinpointing problems easier because you don't have everything running on one machine. Distributing sites and applications lets you find the squeaky wheel when you have a problem. For the cost of the quad Pentium Pros, I could have purchased and configured three dual Pentium Pro machines.

This configuration won't work for everybody, but at least you can get a sense for some options you need to consider when selecting your hardware. Base your selection on what you think your current needs are and what you think they will be in 6 to 12 months.

The fact that so many IIS benchmarks are done on dual Pentium Pro machines, and the fact that I don't think I am even touching my quad Pentium Pro machine gave me a great idea for next month's column. I am going to do a series of performance tests on different hardware configurations. I will be pitting a dual Pentium Pro 200 against a quad Pentium Pro 200. At the time of this writing, I haven't determined what set of tests I will use. Nonetheless, I plan to let you know what you can expect with these different setups. The initial round of tests will use IIS 3.0, and we will see whether IIS 4.0 makes it into the picture.

Personal preferences really come into play when you begin selecting the software you use to deliver your information. Personally, I've gone from one Web server application to another, then back to the first, and then back to the other. We currently use IIS 3.0, and I'm anxiously awaiting IIS 4.0. As I mentioned last month, I like the direction Microsoft is taking with this product. And if the company continues to make the product available for free as it has with the other versions of IIS, then the decision to use IIS is even easier. But because this topic can quickly turn into a bias-for or bias-against discussion, I will let you look at the different features and prices and come to your own conclusion.

Planning
The best thing you can do for your Web site is to plan it out. You need to decide which individuals are responsible for each part of your site. Changing the character of a Web site is easy, but changing or redirecting people and methods is not. You need to establish your Web site's goals, direction, and responsibilities, keeping everyone involved in mind. This task is easier to do now than it was even two years ago because people are more aware of what the Web is and what it can do for them.

I hope this month's column has given you food for thought. Just remember that buying the biggest, baddest machine around won't necessarily provide you with the ultimate Web environment. Consider your needs and weigh the options. Next month, I will show you how much of an advantage a multiprocessor machine can give you in the Web arena.