Performances désastreuses sur vos Serveurs SharePoint ?

40 ou 50 secondes pour charger une page SharePoint relativement épurée sur un de vos postes client ? Et ce phénomène est d'autant plus étrange si votre page SharePoint ne contient aucun code custom, et que vous êtes le seul à y accéder. Alors que tout se passait bien sur un environnement virtuel, ce phénomène m'est arrivé lors du passage sur les serveurs de production... tous flambant neufs et largement dimensionnés.

un peu plus de détails sur le problème

Une requête depuis un poste client nécessite de 40 à 50 secondes avant d'afficher la page. Les éléments affichés sur la page correspondent tout à fait à ce qui était prévu. Lorsque le client raffraîchi la page, la requête aboutit nettement plus rapidement, en moins de 2 secondes lors de mes tests. Et si le cache IE est vidé, la requête prends à nouveau entre 40 et 50 secondes. Bref, lorsque les données sont en cache côté client, tout va bien, autrement c'est le drame ! ("almost" copyright Gat)

En regardant en détail à l'aide de HttpWatch, il apparaît que l'appel au WebResource.axd est très différent avec et sans le cache côté client.

Détail de la requête : Appel au WebResource.axd lorsque les donnés sont en cache

Cette capture illustre un cas ou tout va bien. La ressource est obtenue en moins d'une seconde. Mais lorsque le cache est vidé, l'appel au WebResource.axd prends bel et bien plus de 40 secondes.

Dans quel cas le problème se produit-il ?

Le problème provient des networks adapters et du TCP Chimney Offload. Qu'est ce que le TCP Chimney Offload ? Vous trouverez cette définition sur le site du Technet :

"TCP Chimney Offload (allègement de la pile TCP). TCP Chimney Offload transfère de façon automatique le traitement du trafic TCP (Transmission Control Protocol) avec état à un adaptateur réseau spécialisé qui met en œuvre un « moteur de déchargement TCP » (TOE – TCP Offload Engine). Pour les connexions à longue durée de vie mettant en œuvre des paquets de grande taille, comme les connexions avec un serveur de fichiers, de stockage ou de sauvegarde, ou pour d'autres applications sollicitant fortement le réseau, TCP Chimney Offload réduit largement la charge du processeur en délégant à l’adaptateur réseau le traitement des paquets du réseau, y compris la fragmentation et le réassemblage des paquets. En utilisant TCP Chimney Offload, vous allégez le processeur qui peut se concentrer à d’autres tâches comme permettre davantage de sessions utilisateurs ou traiter les requêtes des applications en réduisant la latence."

Pour de plus amples informations sur le TCP Chimney Offloading, je vous invite à consulter ce white paper : http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/TCP_Chimney.doc

Bref, le TCP Chimney Offload permet d'optimiser le traitement lié au traffic réseau. Cette fonctionnalité fait son apparition sous Windows Server 2003 avec le SP2.

Ce problème de performance ne concerne que les serveurs frontaux SharePoint sous Windows Server 2003 SP2... mais pas tous ! C'est là qu'interviennent les network adapters. En effet, le TCP Chimney Offloading n'est pas géré de la même façon selon les interfaces réseau. Dans mon cas, le problème s'est produit avec des serveurs HP.

Comment résoudre le problème ?

Sur le principe, il suffit de désactiver le TCP Offloading. Techniquement, il y a plusieurs façons de procéder :

  • En executant la commande netsh int ip set chimney disabled

         Cette commande vous permettra de tester le comportement de vos serveurs une fois le TCP Offloading désactivé. en cas de problème, relancez la commande en remplaçant ll paramètre disabled par enabled, ou redémarrez votre serveur.

  • En modifiant la base de registre. Accédez à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters et fixez la valeur de EnableTCPChimney à 0. Redémarrez ensuite votre serveur. Je vous conseille d'utiliser cette solution une fois le comportement validé avec la solution précédente.
  • En appliquant la KB Microsoft 948496 : http://support.microsoft.com/kb/948496/en-us. Il vous faudra ensuite redémarrer vos serveurs. Attention cependant, cette KB désactive également le RSS (Receive Side Scaling) Offloading.
  • En vérifiant la disponibilité d'une nouvelle version de vos pilotes d'interface réseau, corrigeant le problème.

Conclusion

Une fois le TCP Chimney Offloading désactivé, les requêtes client sur des sites SharePoint redeviennent tout à fait normales, même lorsque le cache du navigateur est vidé. Ce problème reste néanmoins très spécifique. S'il ne se produit pas sur votre plateforme, ne désactivez pas le TCP Chimney Offloading.


Comme d'habitude, merci à Julien Chomarat (avec qui j'ai découvert ce problème).

Publié samedi 22 mars 2008 10:36 par Gribouillon
Classé sous , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: Performances désastreuses sur vos Serveurs SharePoint ? @ dimanche 23 mars 2008 16:54

Très bon à savoir, surtout avec les livrées de nouvelles machines pour la mise en place de nouvelles fermes.

Fabrice

ROMELARD Fabrice


Les 10 derniers blogs postés

- [TechDays2012] Oui j’y serai! par Blog de Jérémy Jeanson le il y a 13 heures et 1 minutes

- TFS Integration Tools – Suivi des synchronisations avec Reporting Services par Vivien Fabing le 02-05-2012, 17:46

- CSS Content State Selectors (Personnal Draft) par Le blog de FremyCompany le 02-04-2012, 15:38

- MBA : Pourquoi faire et comment le choisir ? par Blog Technique de Romelard Fabrice le 02-03-2012, 14:22

- Y'a des erreurs qui peuvent rendre le développeur violent par Aleks's Blog le 02-02-2012, 16:33

- [Hyper-V 3] Présentation des commandlets PowerShell par Blog de SPBrouillet (Pierrick BROUILLET) le 01-31-2012, 16:01

- IIS7 – Compression GZIP par Atteint de JavaScriptite Aiguë [Cyril Durand] le 01-31-2012, 15:52

- SharePoint 15 Technical Preview Managed Object Model Software Development Kit par Matthew le 01-31-2012, 12:34

- Office 15 Technical Preview - Open specification Update par Matthew le 01-31-2012, 10:14

- TFS Integration Tools – Installation par Vivien Fabing le 01-31-2012, 00:06