2010-09-01 3 views
4

J'ai un problème de performances de production sur lequel je suis perplexe. J'espère que quelqu'un a vu quelque chose de similaire ou au moins a quelques techniques de dépannage.Variation de performances lors de l'utilisation de GetDirectories

Je gère une application Web asp.net héritée qui récupère des fichiers à partir d'un lecteur réseau partagé. Un dossier particulier [nous l'appellerons FOLDERA] que j'ai choisi de dépanner contient environ 300 Mo de fichiers et plusieurs sous-dossiers. FOLDERA est considéré comme grand pour cette application. Depuis récemment, les utilisateurs ont des performances plus lentes lors de la récupération de fichiers à partir de FOLDERA sur un partage de réseau de production. J'ai réduit le code à la méthode GetDirectories dans l'application asp.net.

RootDir.GetDirectories("*", SearchOption.AllDirectories);

Dans la production, la lecture Foldera prend environ 8-10 secondes. Avant la dégradation récente des performances, il était d'environ 1 seconde. Dans l'environnement de test, cela prend 1 à 2 secondes avec la même quantité de données. Ma théorie est un problème de réseau parce que le même week-end que les utilisateurs ont remarqué des problèmes était le même week-end réseau et les mises à niveau de matériel ont eu lieu. Cependant, je ne sais pas comment déterminer ou prouver cela aux ingénieurs de réseau.

J'apprécierais des idées sur ce qui pourrait se passer.

+0

Je pensais que je fournirais une mise à jour puisque ce problème a été résolu. C'était un problème de réseautage. Apparemment, le problème était un décalage de duplex. La non-concordance de duplex est une situation dans laquelle le commutateur fonctionne en mode duplex intégral et le périphérique connecté fonctionne en semi-duplex ou inversement. Le résultat d'une discordance de duplex est une performance extrêmement lente, une connectivité intermittente et une perte de connexion. IT a mis le commutateur sur Full 100 et a forcé la carte à 100 Full. Les temps de réponse ont chuté de façon spectaculaire. –

Répondre

0

Je l'ai utilisé exactement la même méthode sur un grand répertoire partagé pour extraire et indexer plusieurs milliers de fichiers PDF (~ 80000, la taille n'a pas d'importance) sans problèmes de performance (1-2 secondes)

Vous

pourrait essayer de comparer les IO du partage de fichiers entre les environnements de développement et de production avec un programme externe pour prouver votre théorie, en éliminant tout défaut logiciel et en transmettant le problème au personnel de l'infrastructure. De l'autre côté, vous pouvez facilement mettre en cache ces informations avec CacheDependency côté serveur, en fonction de l'architecture de l'application. Cela permettrait d'optimiser radicalement les performances s'il s'agit d'une fonctionnalité de base.

+0

Merci, hmf! Vous avez fourni quelques bonnes idées. –

Questions connexes