2009-03-22 7 views
0

Je pense que cette question n'a rien à voir avec la programmation en général, mais néanmoins les réponses pourraient intéresser d'autres développeurs web.Serveurs racine pour le développement web - quelle puissance est suffisante?

Je me demandais simplement comment estimer les exigences minimales pour avoir un site web rapide. Évidemment, il y a quelques faits qui doivent être considérés comme le nombre attendu de visiteurs, le nombre dérivé de clics par secondes et ainsi de suite ... Exécutant également des services comme des serveurs Web (Apache/lighttpd) ou des serveurs de courrier (Exim, sendmail,. ..) pourrait se retrouver dans des besoins différents. Peut-être connaissez-vous un bon site Web ou pouvez-vous donner des explications sur la façon d'estimer la configuration du serveur nécessaire à partir de telles informations?

Répondre

5

C'est sans doute plus d'art que de science. Ce qu'il faut retenir, c'est que comme beaucoup de choses en programmation et informatique, votre site sera aussi lent que le plus lent de la chaîne, ce qui signifie que vous aurez un goulot d'étranglement comme la bande passante, les serveurs Web, le disque I/O, mémoire, vos bases de données, votre pare-feu, etc qui limiteront la vitesse de votre site Web. L'optimisation et la croissance de votre site Web impliquera l'identification de ces problèmes au fur et à mesure que vous progresserez et que vous y répondrez. À un moment donné, vous devrez peut-être ajouter plus de RAM, à un autre, vous aurez peut-être besoin d'un autre processeur et ainsi de suite. À d'autres moments, l'ajout de plus de mémoire peut être inutile car la mémoire n'est pas votre problème. De même, l'absence d'une certaine ressource peut être masquée, comme le manque de mémoire peut être masqué par des E/S disque intensives car votre système échange constamment (défauts de page) mais les E/S de disque ne sont pas le problème.

Alors, que faites-vous? La première chose est que vous devez identifier (ou faire une estimation raisonnable) ce qu'un utilisateur typique fera et combien il le fera. Idéalement, vous serez en mesure de modéliser 100 ou 1000 ou les nombreux utilisateurs dont vous avez besoin avec un logiciel comme JMeter pour avoir une idée de la façon dont votre site évolue, combien de bande passante sera nécessaire et ainsi de suite. En modélisant 100, 500, 1000, 2000 utilisateurs, vous serez capable de voir à quel point votre site Web évolue linéairement. Vous pouvez constater que le support de 1000 utilisateurs nécessite 1 Go de RAM, mais 2000 nécessite 4 Go: c'est un exemple d'évolutivité non linéaire qui résout un problème que vous aurez mise à l'échelle de votre site Web. Et c'est le genre de chose à révéler par les tests de performance. Honnêtement, le matériel est si bon marché aujourd'hui que c'est rarement un problème sauf pour les sites les plus grands et les plus populaires (10k $ peut vous acheter 1 ou même 2 serveurs avec 16G de RAM et 4-8 cores chacun).L'hébergement partagé et VPS est une histoire différente car vous ne voulez généralement payer que la quantité de mémoire, de bande passante et d'espace disque dont vous avez besoin. Heureusement, ces types de solutions ont tendance à vous permettre de mettre à niveau assez facilement (au moins jusqu'à un certain point où vous devrez éventuellement vous consacrer à l'hébergement).

Vous pouvez effectuer des estimations erronées au début d'un projet en effectuant ce que l'on appelle une estimation "arrière de l'enveloppe". Exécutez les requêtes clés 100 fois et calculez combien de temps CPU ils nécessitent, tapez 100 fois sur une page simulée et calculez la bande passante générée, etc. Ces estimations grossières combinées à des suppositions sur la façon dont les utilisateurs utiliseront le site vous donneront une idée approximative de ce dont vous aurez besoin.

3

Vous avez déjà mentionné à propos du nombre d'utilisateurs, de serveurs, etc. Voici d'autres points à considérer.

  1. serveur en cluster si le trafic est élevé
  2. Emplacement physique du serveur: Trouver la cible d'audience pour votre site web et mieux que le serveur dans ce pays.
  3. Plan de reprise après sinistre. Avoir un site Web plus rapide est bon et avoir un processus de récupération plus rapide est également très bon.
  4. Choisissez la meilleure technologie et implémentez de nouvelles technologies comme AJAX et réduisez la demande de serveur là où c'est possible.

Va ajouter plus si quelque chose se lève.

Questions connexes