2008-10-15 5 views

Répondre

8

Je ne peux pas parler de la question MySQL/PostgreSQL car j'ai une expérience limitée avec Postgres, mais mon projet de recherche sur les Masters portait sur les sites Web haute performance avec CherryPy, et je ne pense pas que vous serez déçu utilisez CherryPy pour votre site. Il peut facilement évoluer vers des milliers d'utilisateurs simultanés sur du matériel de base.

Bien sûr, la même chose pourrait être dite pour PHP, et je ne connais pas de benchmarks raisonnables comparant les performances PHP et CherryPy. Mais si vous vous demandiez si CherryPy peut gérer un site très fréquenté avec un très grand nombre de requêtes par seconde, la réponse est définitivement oui.

2

Aller à besoin de plus de données. Jeff avait quelques articles sur les mêmes problèmes et la réponse était d'attendre jusqu'à ce que vous rencontriez un problème de performance.

pour commencer - qui héberge et qu'ont-ils à offrir? Quelles sont vos compétences en talent? Allez-vous embaucher une entreprise extérieure? que recommandent-ils? nouveau projet w/une équipe désireuse d'apprendre un nouveau cadre?

La deuxième chose est de faire quelques maquettes - comment l'interface va-t-elle fonctionner? De quelles données a-t-il besoin pour charger et persister? L'idée est de garder votre trafic entre le web et le DB. par exemple. pas de pages bavardes avec beaucoup de requêtes.

Une fois que vous aurez une meilleure idée des exigences et du flux de données, travaillez sur la conception de la base de données. il y a beaucoup de règles à suivre mais l'une des meilleures est de suivre les règles de normalisation (oui je suis un gars DB pourquoi?)

Maintenant, vous avez quelques pages de construction - exécutez vos tests. avez-vous un problème? Oui, maintenant regarde ce que c'est. Le service de page ou le db tire-t-il? Mesurez puis choisissez un plan d'action.

8

La configuration idéale serait proche de this:

caching

En bref, nginx est un serveur web/avant-proxy rapide et léger avec un module unique qui nous allons il récupérer les données directement à partir memcached « s Mémoire RAM, sans toucher le disque, ou toute application web dynamique. Bien sûr, si l'URL de la requête n'était pas déjà mise en cache (ou si elle a expiré), la requête continue comme d'habitude vers la webapp. La partie géniale est que lorsque la webapp a généré la réponse, une copie de celle-ci va à memcached, prête à être réutilisée.

Tout cela est parfaitement applicable non seulement aux pages Web, mais aussi aux requêtes/réponses AJAX. Dans l'article, les serveurs «arrière» sont http, et parlent spécifiquement de mongrel. Ce serait encore mieux si le dos était FastCGI et autre (plus rapide?) Cadre; mais c'est beaucoup moins critique, puisque l'équipe nginx/memcached absorbe la plus grande partie de la charge.

Notez que si votre schéma d'URL pour le trafic AJAX est bien conçu (REST est meilleur, IMHO), vous pouvez mettre la plupart des DB droit dans memcached, et tout POST (qui passera à l'application) peut mettre à jour préventivement le cache.

3

Sur la question de DB, je dirais que PostgreSQL évolue mieux et a une meilleure intégrité des données que MySQL. Pour un petit site MySQL peut être plus rapide, mais d'après ce que j'ai entendu dire, il ralentit de manière significative à mesure que la taille de la base de données augmente. (Note: Je n'ai jamais utilisé MySQL pour une base de données volumineuse, vous devriez donc avoir une seconde opinion sur son évolutivité:) Mais PostgreSQL évolue très bien et serait un bon choix pour un site très fréquenté.

+0

up a voté, merci, je pense que je vais aller avec python, postgresql – daniels

2

j'aller avec nginx + php + xcache + postgresql

Questions connexes