2009-07-09 13 views
0

J'ai un site Web suspendu toutes les 5 ou 10 demandes. Quand cela fonctionne, cela fonctionne rapidement, mais si vous laissez le navigateur s'asseoir pendant quelques minutes puis cliquez sur un lien, il se bloque sans répondre. L'utilisateur doit pousser l'actualisation plusieurs fois dans le navigateur, puis il s'exécute rapidement. Je suis sous .NET 3.5, ASP.NET MVC 1.0 sur IIS 7.0 (Windows Server 2008). L'application Web se connecte à une base de données SQL Server 2005 s'exécutant localement sur la même instance. Le DB a environ 300 Megs de RAM et le reste est libre pour les demandes de Web je présume.Problème de performances des applications Web

Il est hébergé sur les serveurs cloud de GoGrid, et cette instance a 1 Go de RAM et 1 Core. Je me rends compte que ce n'est pas beaucoup, mais actuellement je suis le seul à utiliser le site, et je reçois toujours ces accrochages. Je sais que c'est une chose difficile à résoudre, mais j'espérais que quelqu'un pourrait me diriger dans la bonne direction en ce qui concerne les problèmes de configuration IIS possibles, ou ce que la «moyenne» matérielle moyenne utiliserait ces technologies pour 1000 utilisateurs , etc. Peut-être que pour un serveur web, le minimum que je devrais avoir est de 2 cœurs afin que, s'il est occupé, vous receviez toujours une réponse. Ou peut-être que les gens de slashdot ont raison et je suis un idiot pour utiliser la période de Windows, lol. Dans mon expérience cependant, c'est généralement mon erreur d'algorithme/configuration et pas la faute de la technologie sous-jacente.

Tous les aperçus sont appréciés.

+0

Il serait peut-être préférable de demander cela sur serverfault.com. – Ethan

+0

Idem à propos de la panne du serveur. On dirait que peut-être le «nuage» est la pagination sur le disque de la machine virtuelle sous laquelle le serveur fonctionne. – NotMe

+0

merci les gars, je vais demander là aussi. –

Répondre

0

Le site reçoit-il un trafic important? Si c'est le cas, je rechercherai des requêtes ou des requêtes mal optimisées en boucle.

Votre configuration semble correcte si le trafic global est relativement faible.

+0

pas encore de trafic, le site n'a pas été lancé. les requêtes sont rapides lorsqu'elles s'exécutent, mais parfois il n'y a pas de réponse du serveur pour la même requête. –

1

Quelles sont les variables disponibles? Pouvez-vous dire ce qui se passe lorsque l'utilisateur frappe le bouton pour la première fois? Est-ce que votre application voit cette demande, puis prend un certain temps pour la traiter, ou y a-t-il un retard, puis votre application démarre et fonctionne aussi rapidement que jamais? Ou est-ce que cette première demande vient juste d'être complètement perdue? Je pense qu'il y a une sorte de pagination, je crois que Windows a tendance à mettre les applications non récemment utilisées à l'écart et à les réintégrer. Est-ce que cela arrive à votre application? ou la DB, ou les deux? En tant qu'expérience - que se passe-t-il si vous avez une petite page "howAreYou" dans votre application. Est-ce que la plus petite quantité possible de travail, comme l'utilisation d'un compte à partir de la DB et l'affichage. Avoir un petit client de moniteur a frappé cette page chaque minute ou ainsi. Mesurer la performance au fil du temps. Des pointes? Cohérence? Est-ce que la présence même de l'activité maintient la présence de votre applicaition et empêche la pagination?

Une autre idée: comptez-vous sur la mise en cache? Avez-vous une sorte de vieillissement sur ce cache?

0

Pour de nombreuses connexions de base de données sans être libérées? Connexion d'un service/composant entraînant un dépassement de délai? Mauvaise publication de la ressource? Trafic réseau? Requêtes en boucle ou en logique de code?

1

Votre pool d'applications est peut-être en cours d'arrêt en raison de son inactivité. Il existe un paramètre Délai d'inactivité par pool, en minutes (sous Paramètres avancés - Modèle de processus). Il faudra un certain temps pour que l'application redémarre une fois qu'elle s'est éteinte.

Bien sûr, il pourrait s'agir de la virtualisation comme d'autres l'ont suggéré, mais cela vaut le coup.

+0

ya, c'est une bonne supposition. Mais je doute que c'est le coupable parce que le temps d'inactivité est fixé à 20 minutes, et le FormsAuthentication est fixé à 15 minutes, donc si le pool d'applications était inactif, l'utilisateur aurait déjà été démarré à l'écran de connexion. Ces blocages peuvent se produire très rapidement. Donc, si je clique sur les différents liens/filtres dans le menu dans un délai d'une minute, l'un de ces liens va juste se bloquer jusqu'à ce que l'utilisateur actualise le navigateur. –

Questions connexes