Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SharePoint Grib's Lair

Journal technique de Sébastien PICAMELOT

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).

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 :
Posted: samedi 22 mars 2008 10:36 par Gribouillon

Commentaires

ROMELARD Fabrice a dit :

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

Fabrice

# mars 23, 2008 16:54
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01