The machine hosting this post is going on 11 years old. The original 8G disk has been displaced by three PATA drives totalling 340G. The memory is maxed out at 768M. Otherwise, the Optiplex GX1 with a 450MHz Pentium II is pretty much the same as when I bought it at the (then bricks and mortar) Dell Factory Outlet. When first put into production in ’99 as a mail/web/name server, I think it was running Red Hat 5 (4? 6?). Now it runs Fedora 11. Unless/until it needs to handle dramatically more traffic, performance should be more than adequate — load average is usually less than 1, and right now it is using only 64M of swap space. Xvnc & GNOME stuff are always running and perform OK when needed.
Most people don’t have a use for hardware this old, but I find myself accumulating machines to use as spares, in case the original Optiplex gives out, and for testing and random experiments. I wouldn’t run Windows on this hardware, and probably wouldn’t tolerate the performance of GNOME or KDE on an ongoing basis, but for “server” stuff it is quite serviceable.
The biggest challenge is memory consumption. This GX1 has 3 slots, and there are 512M DIMMs that would fit physically, but the circuitry won’t address more than 768M. I have a couple of Optiplex GX100s with faster processors, but only 2 memory slots, so they’re maxed out at 512M. They’re useful for testing and one stands ready as a hot spare for this machine, but the difference between 512M and 768M is quite noticeable.
The 512M constraint was most noticeable building a kernel from source. To avoid severe swapping, or worse, I had to stop all the GUI stuff, MySQL, httpd, etc. Even then, watching the memory consumption made me wonder if the build would complete. It did, but it took about 10 hours on a 733MHz Pentium III! The corresponding build on a 3.0GHz P4 with 2G of memory took about 2 hours, a factor of 5 improvement vs. the 4.1x improvement one might expect based on clock frequency. Even that comparison is probably understated, since the 3.0GHz/2G machine was still runing the GUI stuff, MySQL, httpd et al during the build.