Question

Pour un site Web comme Reddit avec beaucoup de votes positifs / négatifs et beaucoup de commentaires par sujet, que dois-je choisir?

Lighttpd / Php ou Lighttpd / CherryPy / Genshi / SQLAlchemy?

et pour la base de données, qu'est-ce qui ferait mieux / serait le plus rapide MySQL (4.1 ou 5?) ou PostgreSQL?

Était-ce utile?

La solution

Je ne peux pas parler de la question MySQL / PostgreSQL car mon expérience de recherche avec Postgres est limitée, mais mon projet de recherche Masters portait sur les sites Web haute performance avec CherryPy, et je ne pense pas que vous serez déçu si vous l'utilisiez. CherryPy pour votre site. Il peut facilement s’adapter à des milliers d’utilisateurs simultanés sur du matériel standard.

Bien sûr, on pourrait en dire autant de PHP, et je ne connais pas de référence raisonnable comparant les performances de PHP et CherryPy. Mais si vous vous demandiez si CherryPy pouvait gérer un site à fort trafic avec un grand nombre de demandes à la seconde, la réponse est définitivement oui.

Autres conseils

La configuration idéale serait proche de ceci :

mise en cache

En bref, le nginx est un serveur Web / serveur frontal rapide et léger doté d'un module unique Il récupère les données directement à partir de la mémoire RAM de memcached , sans toucher le disque, ni aucune application Web dynamique. Bien entendu, si l'URL de la demande n'était pas déjà mise en cache (ou si elle a expiré), la demande est transmise à l'application Web comme d'habitude. La partie génie est que lorsque la webapp a généré la réponse, une copie de celle-ci est envoyée à memcached, prête à être réutilisée.

Tout cela est parfaitement applicable non seulement aux pages Web, mais également aux requêtes / réponses AJAX.

dans l'article, les serveurs "de retour" sont http et parlent spécifiquement de métis. Ce serait encore mieux si l'arrière était FastCGI et un autre framework (plus rapide?); mais c’est beaucoup moins critique, car 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 préférable, à mon humble avis), vous pouvez mettre la majeure partie de la base de données dans memcached, et tout POST (qui passera à l'application) peut mettre à jour le cache.

En ce qui concerne la base de données, je dirais que PostgreSQL évolue mieux et a une meilleure intégrité des données que MySQL. Pour un petit site, MySQL est peut-être plus rapide, mais d'après ce que j'ai entendu dire, cela ralentit considérablement avec l'augmentation de la taille de la base de données. ( Remarque: je n'ai jamais utilisé MySQL pour une base de données volumineuse, vous devriez donc probablement obtenir un deuxième avis sur son évolutivité. ). Mais PostgreSQL évolue bien, et serait un bon choix pour un trafic important. site.

Va ??avoir besoin de plus de données. Jeff a publié quelques articles sur les mêmes problèmes. La solution consistait à attendre que vous rencontriez un problème de performances.

pour commencer - qui héberge et de quoi dispose-t-il? Quelles sont vos compétences en interne? Allez-vous embaucher une firme externe? Que recommandent-ils? nouveau projet avec une équipe disposée à apprendre un nouveau cadre?

La deuxième chose à faire est de faire des maquettes - comment l’interface va-t-elle fonctionner? Quelles données faut-il charger et conserver? L'idée est de limiter votre trafic entre le Web et la base de données. par exemple. pas de pages bavardes avec beaucoup de requêtes. etc.

Une fois que vous avez une meilleure idée des besoins et du flux de données, travaillez ensuite sur la conception de la base de données. il y a beaucoup de règles à suivre, mais l’un des meilleurs est de suivre les règles de normalisation (oui, je suis un type, pourquoi?)

Vous avez maintenant quelques pages à construire - lancez vos tests. Avez-vous un problème? Oui, maintenant regarde ce que c'est. Page servant ou db tire? Mesurer, puis choisir un plan d'action.

Je voudrais aller avec nginx + php + xcache + postgresql

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top