Brion Vibber wrote:
On Wed, 17 Sep 2003, Nick Reinking wrote:
Is there a reason why we can't put all the
web servers on one
machine, and the database on the other?
Larousse is too slow, it's already overloaded: too many processes waiting
on each other, no idle time. When it's upgraded, then we finish the
separation.
Forgive me if this is a naive question, but why do we want each server
to be specialised?
Larousse is constantly maxed out for CPU. It loads PHP, Apache, the PHP
scripts and a large portion of the cached HTML into memory, and it still
has plenty left over. It barely touches the disk.
The biggest CPU users on pliny are the apache subprocesses for
other-language wikis. MySQL needs all the memory it can get its hands on
(much of it in the form of buffers). Even with 2 GB (?) of memory, pliny
spends most of its time waiting for the hard drive.
Soon pliny and larousse will have roughly the same capabilities. So why
not give them roughly the same tasks? If we move the other-language
webserving to larousse, pliny's CPUs will have nothing left to do!
I think we should rotate the webserving between larousse and pliny.
Ideally we would load balance it so that pliny has a bit of CPU time
left over for the DB.
DB replication will help spread out the disk access requirements,
although the DB cache will be essentially duplicated on each machine.
The reliability gains make DB replication very attractive, if someone
has the time to set it up.
Probably the best performance would be obtained by splitting the largest
tables of the database between larousse and pliny, although that's
technically difficult and not very robust.
-- Tim Starling.