On unix systems we often talk about the server’s load. The load can be found by using the w command or with various other tools. The important thing to know is that load is made up of 3 numbers and will look similar to this
load average: 0.21, 0.24, 0.20
The first number is the 1 minute load average, the second number is the 5 minute load average and the third number is the 15 minute load average. The numbers themselves are attempting to illustrate the average number of active processes that are on that machine for the corresponding time frames of 1, 5 and 10 minutes. Unfortunatlly, unix load is a bit naive but is still a good marker to start looking at a machines utilization. Each processor can execute a single process, so on a single processor box a load of 1 would indicate that the CPU is busy executing 1 process and none are in queue. If the load was 10 then the box would have 9 processes waiting for CPU time and 1 in execution all of the time. Not a happy load for a single processor machine. I try to keep the system load at less then 2x the number of CPUs. So on my dual quad core workstation (yeah baby) I try to keep the load below 16. With 8 CPUs available, that means each CPU would be executing a process and have another process waiting in queue to be executed. In reality, I run out of disk IO well before I run out of CPU, which further highlights the load average being a starting point and not an oracle. You’re mileage may vary depending on the CPU architecture that you’re running on, but by and large the 2x rule seems to work out pretty well.