What's a high load for my system?

I'm not sure if this belong in dummies or advanced so I made my best guess. Go easy on me if I get it wrong.

I'm trying to determine what a high load for my system is. I run a php/mysql web server with a dedicated host. The host has a Intel Xeon 3110 (Dual Core) processor.

Our load seems to spend a lot of time above 5. When I look at right right now (off peak hours) I get 6.92, 7.02, 5.95.

Now normally you want your load under the number of concurrent processes your machine can run. In our case I'm not sure if that's 2 or 4. But more realistically, even when the load touches 12 for a brief moment the server seems to respond pretty well. I doubt more than 1/4 of a second is added.

Question: If you were setting up nagios, where would you set your critical and urgent alerts for load for a system lime mine?

Dual core means two concurrent processes, one per core.

As you've discovered, load's not the whole story, it really depends on what the load is. If things play nice, i.e. don't thrash the disk and don't hog memory, your system can run lots of them without much strain. (The more of them you have beyond the number of cores, the slower they'll run of course.) nice them so important things get higher priority, and responsivity will get even better.

So what your maximum load is really depends what your system's actually doing.

So the i7 in my desktop should, in theory, be ok with a load under 8. It has 4 cores with hyper threading. It looks like 8 to task manager in Win 7 (4x2).

Are you saying the x3110 only runs 2 processes at a time?

Hyperthreading isn't multitasking. The effect, in an OS equipped to handle hyperthreading, is about a 30% performance improvement over a non-hyperthreading core. That it appears as two "virtual" cores is a side-effect, you don't really have eight cores.

So, four cores, four simultaneous processes.

Two cores, two simultaneous processes.

These CPU's could be fine with a great deal more processes than that depending on speed requirements etc. They will just have to start time-sharing in order to run them all.

Great reply. So now on to the critical question.

It's a php/mysql server. What kind of magic numbers would you set for the monitoring software?

I'm think alert at a load of 8 and critical around 16?

Anything under 8 and I don't care.

Thoughts?

Should work, I suppose. Most of the jobs are going to be tiny, then. (with perhaps the odd huge one here or there, like a database fullsearch or something.) Taken by itself, load doesn't tell you all that much; it doesn't tell you how long things have been running for one thing, so an average of 8 could mean 8 quick requests on average or 4 quick requests on average plus four more that are pinned and getting nowhere. It also doesn't tell you anything about resource competition(except in that when things slow down, the load average may creep higher yet as jobs back up.)