I’m assuming you’re running some recent version (NT/2K/2K3/XP) of Windows . If not, the idea of what I’m about to say will be the same for *nix/mac, just the tools to find it will be different. For older Windows my advice is: good luck.
The goal is to find the bottleneck and fix that by upgrading it. Then if that exposes another bottleneck at a higher level of performence fix that. Or, more likely, fixing the one will be enough performance gain for your current traffic. As traffic grows, a new bottleneck will eventually emerge. Then you fix that, etc. Such is the life of a real server/network admin.
First look in Task Manager and evaluate CPU utilization under heavy load. If it’s less than 75%, you don’t need more CPU.
Next, look at network bandwidth. The Task Manager monitor only knows how fast your NIC is, it doesn’t know how fast your router or external connection are. But you can see if the NIC is saturated. Anything sustained above 75% means time to upgrade, anything less means save your money.
Likewise, if it says you have a 100Mbps connection running at 10% that’s 10mbps in use. IOW, the NIC is just loafing. But if you know your ISP is giving you 10Mbps, because that’s all you’re paying for, then that part of the link is saturated at 100+%. So buy more bandwidth.
If you’re bootlegging a server on ADSL, note that uplink speed (ie the bulk of your traffic) is much slower than downlink speed & will saturate with almost no traffic compared to even a 10Mbps NIC.
Also be careful when doing these calcs to keep bits per second and bytes per second straight. The conversion factor (net of overhead) is roughly 10 to 1, and that’s the difference between deciding something is only 10% used vs it’s 100% saturated.
You can also look at the RAM. Here’s a good simple explanation of what to look for and what it means: http://www.petri.co.il/pagefile_optimization.htm The quicky is to look at the task manager performance tab while under heavy load and look at “physical memory available” and “commit charge total”. If the pysical memory available is more that 15% of the physical memory total, you don’t need more RAM at that moment. But … if commit charge total is more than physical memory total, you would get at least some benefit from more RAM. Look also at commit charge limit, which is the high-water mark for RAM consumption since bootup. If that’s below 120% of total physical, any more RAM would be wasted.
For waay more info than you ever knew existed, fire up the “Performance” tool under Control Panel under “Administrative Tools” (or enter “perfmon.msc” in the Run… menu item). Then click Help & start reading.
If you just want the quicky how-to without much understanding, then seach the help for “Choose” and click the entry named “Choosing which counters to use”. That has lots of good click-this-then-that type info on tracking down what’s realy going on inside your box, at least assuming it’s a post-WinME version.
If I was a betting man, I’d bet you’ll find the bottleneck is ISP network bandwidth unless you’re paying for waay more pipe than you need. And if you are paying for too much, now you’ll know enough to cut back there and quit wasting money so the new kid can get shoes when the time comes.