On 27 Jan 2009, at 05:44, Sumedh wrote:
> I know there is a lot of variety in terms of amount of reads vs. > writes, complexity of processing (CPU required), security, speed > requirements, session requirements etc, etc. But still, if there are > some ad hoc basic conditions, which tell you when you need to start > thinking about clustering your servers or database, it'll be useful... When you get consistent complaints from your users that the service is too slow ;) It's important that you understand HOW and WHY your application is slow though - just arbitrarily adding an extra webserver won't help you if it is your database that is the bottleneck. Also, clustering isn't always the answer - sometimes you can get away with moving all of your static assets to Akamai or S3 (or even creating a load of DNS aliases to fool users browsers into downloading more static assets in parallel), or using Memcache to relieve some of the strain on your DB (assuming you've already done as much as you can to optimise your table structure, indexes, queries etc). There are a bunch of tricks, but as I already said - you need to understand where the bottleneck is first, otherwise you'll be wasting time and money fixing a problem that doesn't exist. Once you get into database replication, sharding etc... that becomes a whole heap of pain which is an entire subject in itself. The VERY FIRST thing I'd do - before launching ANY live application - is to move the Symfony rewrite rules from .htaccess into my httpd.conf - sitting in a .htaccess file they need to get read from disk every time a page is requested, which is a massive performance hit. Load it once, at server start up, and it's never touched again until the server is restarted. > Does symfony have something for out of the box clustering? Symfony supports DB sessions - obviously once you have more than one server involved, chances are that a visitor is not always going to hit the same server for a series of requests, so file based sessions are no use. I always use DB sessions, regardless of how many (or few) servers I think I'll eventually deploy to - it saves a headache in the long run. There are some other plugins in the plugin repository which may help - I haven't yet seen one that allows you to specify a list of DNS aliases for static resources, and randomly distribute these on the page via the link_to helper... maybe I'll do that plugin next time I have a need for that functionality :) > any good resource I can go through? Cal Henderson's (Flickr) book - Building Scalable Websites. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~----------~----~----~----~------~----~------~--~---