Hello,
In response to Stas's question about improving performance by splitting your
SQL and Apache over diffent machines... Please reads Stas's original posting
for this discussion.
There has been an discussion in the Mod_Perl mailing list about whether you
would profit from splitting your Mod_Perl enabled Apache server and a SQL
database like MySQL over multiple machines. To give this discussion some
technical and scientific background I've run some benchmarks.
They're available in HTML on
http://cztb.zeelandnet.nl/rzweb/benchmarks/splitservers.html
--
Conclusions: (for the benchmarks see the web-page above)
By this testing I'd say the difference in CPU performance (47%) is the key
here. Where does the other 16 % go ? Probably in the 0,30 load of the MySql
machine. And maybe in the slighly older version of MySql. I don't realy see
any significant decrease in performance here, by using a separate MySql server
for your Database.
But You Should Be asking yourself what 3 Tier actually means.
This has been figured out by all sorts of University buffs, and some mayor
soft and hardware firms as well. Why would they invent 3 Tier? Because its
faster, and easier to administrate even more secure.
Now to prove that, I did the same test again, but then with ab doing a
thousand requests over 20 simultaneous connections. The Mysql deamon on the
mod_perl machine was bogging up over 95% of the CPU time, in addition to
taking up over 20 Megs of memory!!!! The mod_perl httpd's are taking up to 10
Megs each! The httpd's and mysqld are fighting for Memory and CPU time and
take the combined server to its limits. By splitting the tasks over two
servers both do, what the're good at. The MySQL server has all it's resources
available for doing query's, the Mod_Perl server has all the memory it needs
to server the requests.
So what happens where your site is (very) busy? You actually get a *MAYOR*
speed increase! Even when the mysql server is a MUCH SLOWER machine than the
mod_perl apache server!
So you can definetly benefit from splitting your Mod_perl and MySql Servers
over diffent machines, even slower ones...
With the price of computer hardware these days, state of the art being more
than double the price of a system with some slightly lower spec. If you
anticipate a lot of traffic, go for two cheap machines in stead of one state
of the art one... UW2 SCSI in the sql machine, loads of RAM in the mod_perl
server.
What would work great would be these specs.
Mod_Perl:
400 Mhz machine
256 MB Ram or better
Small IDE disk
MySQL:
500 Mhz machine
128 MB Ram
Large UW2 SCSI disk
I hope this has some added value to this discussion...
--
Yours sincerely,
Met vriendelijke groeten,
Marko van der Puil http://www.renesse.com
[EMAIL PROTECTED]