- Upgrade the PC hardware.
- Add more hard disks.
- Update to the latest OS.
This web site seems rather straight forward from a reader’s point of view. It’s actually a pretty complex system underneath it. It’s made up of many different components. It starts from the hardware, operating system, database, all the way to networking equipment. As the first part of my series of web site tuning, I’m going to start examining the “bottom” layer and move all the way up to the web application.
For starters, I have to choose the right hardware to run a server. Since I’ll be running a database and web application, I don’t want to pick too small of CPU with little memory. I am not running a Windows based machine, so my choice for hardware is more flexible. Most Linux/Unix based Operating Systems out there don’t require much in terms of hardware. I was previously running Fedora Core Linux on a 650Mhz CPU machine with 320Mb of memory. I expect the same hardware to be good enough for Ubuntu Linux. Of course, giving it more CPU and more memory will only help speed up the application’s performance. So, upgrading the hardware is always a good first step to improve web site performance.
Also very important is the choice of hard disk to use in the PC. The web applications (and OS) constantly retrieve from and write to files on the hard disk. If the disk access is slow, it will impact the performance of the software. I started with a 5400 RPM 40Gig Maxtor hard drive using ATA66 IDE interface. Linux is generally a compact OS (unlike Windows) and server-based applications are generally small in size. I managed to survive with the old disk for quite some time.
When there’s a lot of disk activity (aka Disk I/O), such as swapping, database access, or log writing, it is a very good idea to get a second (or third) physical hard disks to separate the data, swap, and OS files. Sysadmins sometime call this practice “putting them on a separate spindle“. With the invention of faster and smarter RAID controllers, this may not be necessary anymore. But for old school, true-and-proven results, having multiple disks will only help improve performance of a web site.
As for this site, I’ve upgraded to a 2.4Ghz CPU with 1 Gigabyte memory. I’ve also recently upgraded to 7200RPM Seagate disk drive using SATA100 interface. Plus I’ve upgraded to the latest Fedora Core Linux. The server’s hardware works so well, I can even start using it as a desktop, a backup machine to browse the internet.