Welcome to WebmasterWorld Guest from 18.104.22.168
Forum Moderators: open
2 Xeon 3.0 Single CPU servers
1 Xeon 3.0 Dual CPU server
4GB Ram in each server
Running PHP - a modified version of WordPress and a few plugins for WordPress
PHP gd for captchas
Peak hours getting 5,000 - 7,000 uniques - lasting for 8 hours of the day - total of over 100,000 uniques for the day
Servers are behind a Linux Virtual Server load balancer - 50% of traffic to the Dual Xeon - 25% to the other two
Currently these servers are running with an average load of 150+ - is it rediculous for me to think that the servers should be able to handle that kind of traffic?
There are many, many more things that would need to be considered though.
Have you tried looking for bottlenecks? starting with the code.
my thoughts that this isn't as much a hardware issue as a config/code issue
Yes, sounds like it.
Database backend? RAM bound, CPU bound, disk bound?
As jatar_k says, you need to identify the bottlenecks, only then can you acertain what you need to do to resolve it.
a modified version of WordPress and a few plugins for WordPress
Probably first port of call.
I'm no expert on configuring multiple servers in this fashion, but I wonder whether you'd be better off with the 2 single CPU boxes dealing with Apache and the dual CPU box running your database, rather than all three doing both tasks?
Any suggestions on how/where to pinpoint the bottlenecks?
It can be useful as a RELATIVE measure. It's useful to know that the load on a particular system is twice as much today as it was yeterday, for example.
Load is simply the number of processes in the ready queue (plus the number of processes currently running - i.e. 1 or a single-CPU system, 2 for a dual-CPU system, etc. - assuming at least 1/2 processes are ready to run...)
One system might run happily with a load of 100 and a low CPU utilization. Another system might bog-down with a load of 10 and 100% CPU utilization. It depends on both the speed of the system and the behaviour of processes.
Instead, check average CPU% and I/O utilization, and do some simple practical tests - for example, are web pages slow to load?
The measurements that should matter to you are the measurements that affect your users. Your users don't care about a synthetic number generated by your operating system.
Thanks everyone for the help.