Check out 'top' command in a terminal.
It will give you some specs on how to monitor your hardware a bit..
Here is what it says on my current system.
top - 17:18:11 up 16 days, 21:38, 3 users, load average: 0.17, 0.43, 0.44
Tasks: 83 total, 1 running, 81 sleeping, 0 stopped, 1 zombie
Cpu(s): 5.6% us, 1.5% sy, 1.6% ni, 91.0% id, 0.2% wa, 0.0% hi, 0.0% si
Mem: 255052k total, 253584k used, 1468k free, 3512k buffers
Swap: 530140k total, 110292k used, 419848k free, 75060k cached
The first line shows the current date, then the uptime, then amount of users logged in. You can have one user logged in 3 places and it will show '3'.
Load Average indicates how many proccesses are waiting in the kernel que to be ran. This you want to keep a eye on as it can help indicate a problem.
The first load average is the load averaged over a minute.
The second is over 5 minutes
The third is over 15 minutes.
One way to look at is to divde the load by number of cpus to get the percentage of cpu load. So if the first number is 4 and you two cpus then your cpus are 200% loaded. If they were 200% faster then maybe they'd have a load of 1.
However this is not always a good way to look at it as usually the bottleneck on modern machines is the I/O and not the actual cpu. So it may indicate that your harddrives aren't keeping up so well.
It also depends on the natural load of your machine. Some servers will always have a very high load, like 6 or 7 or even 20. This may be normal. It may indicate that they need to be upgraded, but if everything is satasfactory then everything is satasfactory.
Also on desktops you typically have one thing running full tilt, like a game or something, so a very low average like 1 or 2 or even .50 would be normal.
It all depends. But watching that you can see things when they start to be abnormal. Like if your system is normall a '3.12', but all of a sudden it's '10.5' it may indicate a network or harddrive problem or somebody is trying to do a DOS attack on your computer or a user is abusing the system. It would probably be worth investigating. So in this way you can use load to see the normal load on a system, but then when it's screwy like it's much too high or it's very low then it may indicate a problem.
The next line is 'tasks'.
Tasks: 83 total, 1 running, 81 sleeping, 0 stopped, 1 zombie
Pretty self explainatory. Running tasks are the busy ones. Sleeping ones are ones that aren't using any CPU time, but are taking up RAM. The Zombie task is a job that failed badly and has become seperated from it's 'parent'. They don't use cpu or ram, but if you have a lot of them then that's from a buggy program.
The third one:
Cpu(s): 5.6% us, 1.5% sy, 1.6% ni, 91.0% id, 0.2% wa, 0.0% hi, 0.0% si
Now this is a bit confusing to me.
The 'us' is cpu percentage being used buy user-land. Your applications, your users, your network services, etc.
the 'sys' indicated system usage. This, I beleive, is the actual cpu being used by the kernel for things like file system access or network. This indicates the overhead of running the OS more or less.
The 'ni' is 'niced' proccess. Niceness is the term used for scedualing proccesses.. 'Nicer' programs let other ones run before they do.
'id' is idle time. The percentage of the time that the cpu is idle.
'wa' is the time spent on I/O wait. So the time the CPU is waiting on memory or on disk activity before it can complete a given task.
I don't know what the other two are for..
But then you add all the different things up and they should be 100%.
So if you machine is under heavy load and 96% of the time it's sys, and 4% of the time is user this means that your kernel is eating up all the cpu time to run the software and very little time is actually being used to actually RUN the software.
The same thing with idle. If your waiting for something to get done and it's using up 96% of wait.. then the bottle neck is probably going to be your harddrives. If everything is running slow then looking at ways to speed up disk access probably will have the best results.
A example of something you an look at on a desktop is something like using gnome-terminal.
Now Xterms, especially ones like Gnome were you have support for anti-aliased text and unicode they use a lot of cpu resources when displaying large amounts of text.
So one thing to look as a experiment if your using a Linux desktop would go like this:
open up two xterms. In one open up 'top' program.
The other run this command:
find /
Then look at the cpu usages in top. You'll see that all the cpu time is spent in user.
cancel that after a bit (don't let it complete so you don't cache the directory system).
Now run it again with top running, but do this:
find / > /dev/null
This redirects output to /dev/null so it doesn't get displayed. Now only errors are displayed.
Look at top now and you'll see that all the time is spent in 'wait'. This is because the find command is running much much faster now and now the bottleneck is disk speed.
The third line is:
Mem: 255052k total, 253584k used, 1468k free, 3512k buffers
Swap: 530140k total, 110292k used, 419848k free, 75060k cached
Memory usage. the Mem line is physical ram, the Swap is your swap partition.
The total is amount total you have, obviously.
The 'used' is amount used by active proccesses.
'free' is amount that is not used by anything.
'buffers' is stuff that is being used a cache and whatnot.
The idea is that you want to keep used at a reasonable level and you want the rest of the ram to be used up by buffers. This means that your system is going to be running efficiently.
The reason you don't want very much free is because memory that is not being used is worthless. You want stuff in buffers because it will get swapped out if you need to use more ram, but buffers keep some file system cache and other things which makes your system more efficient. Remember that I/O is the biggest bottleneck so the more time you spend in physicial ram the better.
This example is showing a inefficient usage of RAM. It doesn't have quite enough so that the swap is starting to be used. Swap is bad since it is conflicting with I/O which increases the wait load on the cpu, and also it's much more slower then physical ram. It is good because without swap the kernel will start randomly killing off proccesses as a last ditch attempt to keep your machine from locking up due to running out of ram.
So looking at this my system would probably benifit from having a ram upgrade or figuring out a way to replace proccesses with less ram intensive ones or trying to reduce the ram usage in other ways.
A more usefull indicator of RAM usage is aviable if you look at the /proc/meminfo file.
One of the things to keep in mind about 'top' is that it's configurable. It may have a slightly different display for different operating systems and different distros. See the man file for details.
There are other commands and such to check out.
For instance there are 'stat' commands.
A overview of some stuff is shown:
http://www.redhat.com/magazine/011sep05/features/tools/
Also there are things that gkrellm that make nice eye candy.
I once setup a small cluster of machines with gkrellmd daemons so that on my desktop I had 5 different gkrellm windows with each one showing the second by second status of the machines in the cluster.
Then there are more 'enterprise' tools that you can use to gather the information from many machines and ouput it with nice graphs and all sorts of other stuff. And there are lower level tools you can use to gather statistics and do usage accounting and stuff like that.