I once took over an application that was running on a 2-CPU webserver w/4GB RAM going against a 4-CPU DB server with 8GB RAM running a tuned Oracle database with a real DBA administering it. It was dog-slow, like 4 minutes a page. I rewrote it to go against an untuned MySQL database I randomly threw together running on a hyperthreaded single-cpu
desktop w/2GB that was also running the webserver and some other stuff. Every page returned under 5 seconds, most under 2 seconds. We noticed
zero improvement when we split the database onto its own server-class machine. In other words, the number and quality of servers make very little difference if the application is crap and may do little to improve performance for a well-written application.
As for performance reasons to split your stuff - do it only when your single machine is IO-bound.
- In general, if you think something isn't in Perl, try it out, because it usually is. :-)
- "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"