/ / Asp.net Performance e-commerce - asp.net, e-commerce

Asp.net Performance de commerce électronique - asp.net, commerce électronique

Je développe un projet de commerce électronique sur Asp.Net 3.5 avec C #. J'utilise une structure à 3 niveaux (Data + Business + UI) pour accéder aux données de la base de données (Msql 2005).

Il y a des procédures stockées et tout ce qui se passe d'eux (méthodes CRUD)

Il y a un problème de performance ici, le projet fonctionne si lentement. Je ne pouvais trouver aucun problème dans le modèle de transaction.

En outre, le projet s'exécute sur un hébergement partagé à l'étranger. Le serveur de base de données et le serveur Web s'exécutent sur des machines différentes. Le serveur de base de données contient près de 1 000 bases de données.

Comment puis-je tester et apprendre où est le problème?

Réponses:

5 pour la réponse № 1

Comme il y a plus de 1000 bases de données partagéesressources Je prendrais un coup qui pourrait être votre problème ... Si vous vous connectez à votre base de données et qu'il faut 5 secondes pour exécuter une requête simple, vous pouvez deviner le problème.

Je voudrais ajouter une fonctionnalité de chronomètre sur un"page de test" qui s'exécute sur votre serveur Web. Cela devrait vous donner les informations de base pour voir s'il y a un "goulot d'étranglement" dans l'attente de la base de données pour retourner votre requête. Si vous l'avez fait aussi loin, je pense que ce serait votre serveur Web.

Votre dernière option serait de mettre en place un simplemachine à faible spécification avec DB et serveur Web sur elle et juste tester. En fonction de la quantité de trafic que votre site reçoit, vous devriez être capable de vous faire une idée assez précise de son temps de réponse.

Des outils tels que YSlow peut également être d'une certaine aide, mais ceux-ci sont généralement utilisés plus pour le réglage fin.


1 pour la réponse № 2

Puisque vous utilisez un service d'hébergement partagé, je suppose que c'est là que réside votre problème. Vous êtes en concurrence pour les ressources de serveur avec tous les autres sites Web et bases de données sur ces serveurs.

Pour être sûr, je mettrais en place un environnement localqui imite votre environnement de production. Effectuez ensuite des tests de résistance standard pour voir comment cela fonctionne. S'il fonctionne comme prévu, c'est probablement votre solution d'hébergement.

Avec les solutions d'hébergement partagé, vous en avez vraiment pour votre argent. Si c'est un système qui nécessite beaucoup plus de rapidité, vous devriez envisager une solution d'hébergement dédiée.


1 pour la réponse № 3

Je vous suggère de jeter un coup d'oeil à Tracing:

http://davidhayden.com/blog/dave/archive/2005/07/17/2396.aspx

Cela vous permet de voir une trace de pile (la dernière image de l'article) et de localiser vos goulots d'étranglement de performances.


0 pour la réponse № 4

Une solution rapide que j'ai développée pour conserver les journaux deles performances sur mon application web peuvent vous aider ici. J'ai un serveur Web et un serveur de base de données exécutant une application au son similaire. J'ai écrit un service Web qui exécute une procédure stockée "benchmarking" et renvoie le temps d'exécution. J'ai écrit une application win qui s'exécute sur mon serveur de développement qui appelle le service Web, lui transmet le nom de la procédure stockée à exécuter et la durée de la requête. L'application win écrit les données dans un fichier journal et s'exécute toutes les 10 minutes en tant que tâche planifiée. Les cloches et les sifflets supplémentaires incluent les e-mails automatiques envoyés aux membres de l'équipe lorsque les performances dépassent le seuil spécifié 3 fois de suite, ne parviennent pas à se connecter et récupèrent leurs performances normales après une période lente.

Cela fournit une indication générale de la façon dont unL'expérience de l'utilisateur sur le site Web sera à tout moment et sert d'avertissement à l'équipe. Ce n'est pas exactement la meilleure solution, mais je l'ai écrite il y a plusieurs mois et j'ai utilisé les données créées pour le dépannage. objectifs à plusieurs reprises.