web-dev-qa-db-fra.com

Comment les grands sites évoluent-ils et optimisent-ils le trafic?

Comment des sites comme Facebook et Twitter optimisent-ils leurs sites pour un trafic massif? En plus de dépenser beaucoup d'argent pour obtenir les meilleurs serveurs, qu'est-ce qui peut être optimisé dans votre code pour gérer un trafic important?

J'ai lu des informations sur la mise en cache de vos pages au format HTML statique, mais cela n'est pas pratique pour les sites de réseaux sociaux où les pages sont constamment mises à jour.

7
PeterBZ

Les sites volumineux tels que Google, Facebook et Twitter n'obtiennent pas nécessairement les "meilleurs" serveurs, car ils ne gèrent pas un petit nombre de serveurs très puissants, mais un nombre considérable de serveurs plus petits et moins chers. Ils s'attendent à ce que le matériel meure et soit remplacé et le code le permet.

Quelques éléments typiques des sites à grande échelle:

  • Ils n'utilisent pas de bases de données SQL comme MySQL. Au lieu de cela, ils ont des magasins à valeur clé comme HBase ou Cassandra. MySQL et d'autres bases de données SQL sont trop lents lorsque le nombre de demandes est énorme.
  • Ils cachent autant que possible. Mise en cache HTML comme vous le dites. Les données de l'utilisateur sont stockées en mémoire à l'aide d'éléments tels que memcached.
  • Certains sites, comme Reddit, pré-cache des pages avant même qu'un utilisateur ne l'ait demandé.
  • Pré-calculez autant que possible, les sites ont tendance à définir des éléments tels que le nombre de vos amis (ou autre) et le cachent également - un peu possible est effectué de manière dynamique.

http://highscalability.com/ est un excellent site pour en savoir plus à ce sujet.

10
Steve Claridge

Le déchargement du trafic de base de données via sharding est probablement l'un des meilleurs moyens de redimensionner un site à fort trafic.

Réduire le temps de chargement des pages en compressant les fichiers de ressources à l’aide de gzip et en combinant plusieurs fichiers de ressources en un seul afin de réduire le nombre de demandes que le navigateur doit faire est également une optimisation intéressante.

3
Jacob Relkin

Je pensais mentionner HipHop pour PHP , ce qui transforme PHP en C++ et a été développé par Facebook . Facebook a travaillé sur APC aussi, je crois.

3
Andy