2009-10-11 2 views
1

Je suis nouveau dans le développement web au niveau de la production, donc désolé si cela est évident. Mon site a un potentiel d'augmentation soudaine des utilisateurs (permanents) et je me demande ce qui se passe si un trop grand nombre d'utilisateurs s'inscrivent dans un court laps de temps, ce qui ralentit le fonctionnement du site. Puisque le développement prend du temps, est-ce que ce serait juste d'ajouter plus de boîtes au serveur, ou est-ce que le site doit être supprimé pour améliorer le code? MerciQue se passe-t-il lorsqu'un site en direct a trop d'utilisateurs?

+0

Merci à tous pour les réponses. Je ne peux en marquer qu'une comme réponse, mais toutes les réponses ont été utiles. Merci! – keyboardP

Répondre

6

Ne vous inquiétez pas, même les sites très populaires passent par là. Bien coder est toujours un plus, mais parfois même cela ne suffit pas. Twitter étant un exemple idéal, ils ont commencé leur message sur Ruby, mais ils ont dû déménager à Scala à mesure qu'ils devenaient de plus en plus populaires. Puisque vous dites que vous êtes nouveau, puis-je vous suggérer de vous familiariser avec les requêtes de mise en cache et la mise en cache du contenu statique? En savoir plus sur les bonnes pratiques d'indexation sur le serveur SQL devrait également être utile pour faire face à un afflux important d'utilisateurs.

+1

C'est un bon conseil. en termes de mise en cache, vous devriez regarder memcache. –

+1

Ehcache et JBoss sont d'autres options viables. –

2

Les deux, mais l'amélioration du code serait le premier à cibler. L'écriture d'un code qui sera à l'échelle vous aidera le plus. Vous pouvez lancer plus de serveurs dans les coulisses, mais vous devriez le faire moins avec du code bien conçu qui a été conçu pour l'évolutivité.

2

Dépend des technologies que vous utilisez et de la façon dont le code que vous écrivez est écrit.

Depuis que vous avez étiqueté sql-server, en ce qui concerne les bases de données en général, vous êtes limité par vos stratégies de verrouillage et votre architecture de réplication. Comment vous concevez votre base de données et la mettez en production a un grand impact. Les choses qui doivent se produire de toute manière en série sont des goulots d'étranglement. Vérifiez vos plans d'exécution, surveillez et gérez vos index, et répliquez et distribuez vos systèmes si vous le pouvez. La meilleure façon de comprendre les limites de l'évolutivité est de tester la charge et de définir correctement l'AQ.

Si vous ne le faites pas correctement, vos utilisateurs sont sûrs d'être mécontents lorsque vous commencez à 503 ou à vous déconnecter. :-)

+0

J'utilise Linq to SQL et SQL Server 2005.J'essaie de rendre mon projet aussi évolutif que possible, mais être nouveau dans ce domaine le rend délicat. Quelle est la meilleure façon d'effectuer des tests de charge, sur le plan logiciel? Merci – keyboardP

+0

Linq to SQL ne rend pas facile de dire ce qui se passe tout le temps. Une approche en couches est bonne ici. Livres entiers sur le sujet. Vous pouvez automatiser votre interface utilisateur pour tester les choses à un niveau élevé. Si vous écrivez votre code de base de données dans une couche de gestion, écrivez des tests unitaires sur ce code et lancez des threads pour invoquer des éléments simultanément. Vérifiez également le SQL que vous générez avec Linq-to-SQL et analysez le plan d'exécution de cette requête pour voir tous vos verrous et voir si vous avez besoin d'index pour vous débarrasser de toute analyse complète. –

1

Si le site est développé de telle sorte que vous puissiez avoir plusieurs serveurs/couches d'accès aux données, l'évolutivité ne devrait pas poser de problème.

Créez l'application de manière à pouvoir effectuer un chargement au besoin et conserver un code aussi flexible que possible.

Mais d'expérience passée. Réglage de la performance une fois que c'est nécessaire. Ecrivez du code facilement compréhensible et maintenable, et corrigez les problèmes de performance au fur et à mesure que cela se produit.

1

Le meilleur conseil que je peux donner est de tester votre application et votre serveur avant de mettre en ligne, alors vous pouvez voir quand vous risquez d'avoir des problèmes et comment ils pourraient être.

C'est une chose de dire "ça ira lentement" mais une fois que vous avez dépassé un certain point, votre application peut planter ou donner aux utilisateurs une erreur de 500 pages.

Testez avec des outils de scripts automatiques pour souligner le site et simuler les inscriptions et les utilisateurs aléatoires visitant des pages aléatoires.

Si vous avez SSL assurez-vous que vos outils simulent beaucoup de différentes connexions SSL plutôt que de différentes requêtes HTTP (authentifications SSL prennent des ressources supplémentaires)

Questions connexes