Diagnostiquer les causes de requêtes de longue durée dans IIS 7.0

Nous exécutons une application Web ASP.NET sur IIS 7.0, Windows Server 2008 R2, avec SQL Server 2008 R2 pour DB.

Le week-end, lorsque le trafic est élevé, la longueur de la queue requirejse dans les servers IIS augmente (jusqu'à 800 requêtes), puis diminue, chaque minute environ.

Je peux voir que les servers traitent certaines requêtes qui, selon la vue 'Demandes courantes' dans le Gestionnaire des services Internet (IIS), sont en cours d'exécution (la durée de la valeur écasting est de 20 à 50 secondes).

Ces requests ne sont pas nécessairement des requêtes lourdes, en fait, je ne comprends pas pourquoi elles prennent tant de time.

Peut-être parce que le client ferme la connection de son côté?

Merci, Shlomi

One Solution collect form web for “Diagnostiquer les causes de requêtes de longue durée dans IIS 7.0”

Il semble que ce soit le problème commun avec le regroupement des connections et de nombreuses connections ouvertes. Sur votre DAL, vous devriez avoir quelque chose comme ça (peu importe si c'est mssql ou mysql):

(Je suppose que vous utilisez DataReader)

/// <summary> /// Selects a single record from the Media table. /// </summary> public virtual Media Select(int mediaID) { SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@MediaID", mediaID) }; using (SqlDataReader dataReader = SqlClientUtility.ExecuteReader(connectionSsortingngName, CommandType.StoredProcedure, "MediaSelect", parameters)) { if (dataReader.Read()) { return MakeMedia(dataReader); } else { return null; } } } 

en utilisant la garantie que SqlDataReader sera correctement éliminé. Ce n'est qu'un exemple de base, mais généralement, vous devriez avoir (vous pouvez avoir) une class commune pour toutes les opérations DAL qui fournissent des assistants de connection et qui implémente IDisposable. Je recommand d'avoir une class de base dont dérivent toutes les classs DAL.

Si DAL n'est pas le problème, je reorderais de creuser plus profondément sur la database en utilisant SQL Server Profiler pour évaluer les exécutions de requêtes.

Vous pouvez également utiliser SQL Server Monitor pour vérifier les time d'exécution moyens et les connections non fermées. Si votre DAL a un problème, vous verrez beaucoup de connections en attente / en attente.

  • Impossible de diffuser des médias sur le réseau
  • Logiciel de bureau à distance avec faible latence
  • La latence du site et les mauvais packages tcp
  • ELB - Haute latence lors de l'équilibrage entre zones
  • Différence entre taskset et cpuset
  • Latence sur un petit système client / server Linux NFS4
  • Les changements dans les enregistrements SPF prennent-ils du temps à se propager?
  • Combien de latence le raid 5 ajoute-t-il aux transferts?
  • tcpdump udp latence de capture de données
  • ESXi - Quelle pourrait être la cause d'une forte latence d'écriture sur un magasin de données local?
  • Comment désactiver MSI sur le pilote tg3?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.