2010 SharePoint : Améliorer les performances de 2010 SharePoint avec RBS

Stockage des objets BLOB à l'extérieur de la base de données pour peut élever les performances de SharePoint 2010.

Iqbal Khan

SharePoint est devenu une plate-forme de portail très populaire. Il fournit un grand nombre d'applications de collaboration entre les groupes d'entreprise différents ou même entre différentes entreprises. Gestion de processus, de gestion des documents et d'autres applications principales font toutes partie du tableau de SharePoint de fonctionnalités.

Mais la popularité de SharePoint a également son inconvénient. Comme plus de personnes l'utiliser, il peut être importante des performances et l'évolutivité des goulots d'étranglement car SharePoint permet une utilisation intensive de la base de données SQL Server pour toutes les tâches. Il peut s'agir de données structurées ou des documents en provenance de Microsoft Word, Excel, PowerPoint et Adobe Acrobat. Tous ces documents proviennent de la base de données.

Problèmes de performances

Il n'y a deux problèmes potentiels liés à 2010 SharePoint. Une: Bases de données peuvent devenir très volumineux en raison de toutes les données d'objet binaire volumineux (BLOB). Deux : Lecture et écriture du BLOB, ainsi que d'autres données relationnelles, peuvent ralentir les performances de SQL Server, car il n'est pas le lieu idéal pour stocker des objets BLOB.

Bases de données relationnelles sont conçues pour gérer les données relationnelles structurées. Leur architecture est axé sur qui.  Microsoft a ajouté la prise en charge de BLOB, mais il n'est pas la situation idéale. En revanche, le stockage de fichiers est conçu pour stocker les fichiers qui sont en fait des flux de données ou des BLOBs de données.

SharePoint 2010 est largement orientés documents avec des fichiers Word, Excel, PDF et PowerPoint. Ce grand nombre de documents volumineux rapidement rend la base de données plus grande que possible. Par conséquent, les performances de SharePoint peut prendre un accès. La figure 1 présente les problèmes de performances liés à la base de données SQL Server et le BLOB.

La figure 1- base encombré de SQL Server ralentit SharePoint 2010.

Cela peut devenir plus aggravé lorsque vous ajoutez des utilisateurs et des documents pour SharePoint. Si vous avez des dizaines de milliers de documents stockés dans la base de données, la base de données devient surchargé et il n'y a un grand nombre de documents qui ont besoin pour aller en arrière entre la batterie de serveurs Web de SharePoint et de la base de données SQL.

Comme la taille de la base de données s'accroît anormalement élevée, il contribue considérablement à sluggishness de base de données.  Si ces données de SharePoint n'a été structurées de données relationnelles, il peut être indexée intelligemment et correctement gérées par SQL Server.

Taille totale des données BLOB pouvez développer rapidement et dépasser la taille totale des métadonnées du document et d'autres données de structure dans la base de données. Il est utile de déplacer des données BLOB de la base de données SQL Server et dans un stockage séparé. Dans la mesure où les données BLOB peuvent consommer une grande quantité d'espace de fichier et utilise des ressources du serveur qui sont optimisées pour les modèles d'accès de base de données.

Déplacement d'objets BLOB de la base de données

Dans Microsoft Office SharePoint Server (MOSS) 2007, Microsoft a fourni un mécanisme appelé stockage BLOB externe ou EBS. L'architecture de plug-in EBS a permis des fournisseurs tiers d'installer un module EBS à intercepter le trafic de base de données de SharePoint et rediriger tout le trafic BLOB vers un stockage séparé des objets BLOB. EBS fonctionne correctement et il gère ce problème de façon très efficace.

EBS vous permet de migrer des BLOBs de la base de données, de les conserver dans le fichier système de stockage, un réseau de zone de stockage (SAN) ou un stockage connecté au réseau (NAS). Ces systèmes de stockage ont été bien adaptées pour le stockage des BLOBs, car il s'agit de tous les documents : Excel, Word, PDF, ces types d'éléments, qui crée une organisation typique et qui partage ses utilisateurs.

Toutefois, vous ne pouvez pas utiliser directement EBS car aucun fournisseur EBS n'est livré avec MOSS 2007. Un autre inconvénient, EBS n'est pas 100 pour cent point de vue architectural .NET, mais encore selon l'ancienne interface de COM. Dans ce cas, vous devez compter sur un fournisseur tiers de EBS. Sans l'aide d'un module de tierce-partie informatique ne peut pas utiliser EBS. Un module de tierce-partie doit également prendre en charge des problèmes tels que nettoyage BLOB. Lors de la suppression d'un BLOB, SharePoint vous demande jamais le module à supprimer l'objet BLOB. Il s'arrête juste faisant référence à celui-ci.

L'écriture de fournisseurs du module EBS doit avoir un BLOB le garbage collection ou la fonctionnalité de nettoyage BLOB qui recherche périodiquement tous les objets BLOB ne sont plus référencées par SharePoint. Elle les supprime ensuite dans la mesure où l'utilisateur a supprimé ces documents.

De même, si l'utilisateur met à jour un document, SharePoint met jamais réellement à jour l'objet BLOB existant. Il crée toujours un BLOB de nouveau, afin que l'objet BLOB plus ancien est toujours environ. La fonctionnalité de collection garbage du module EBS doit supprimer ces objets BLOB. EBS ne le travail de manière appropriée dans la mesure où il réellement améliore les performances de SharePoint tout à fait un peu en déplaçant les BLOBs de la base de données.

Entrez la RBS et de SQL Server 2008

Microsoft SQL Server 2008 offre une fonctionnalité de stockage du BLOB à distance (RBS) intégré. RBS permet aux utilisateurs de SQL Server de stocker toutes les BLOBs en dehors de la base de données. Microsoft fournit un fournisseur FILESTREAM intégré pour le système de fichiers régulière. Il a également publié de l'interface et les spécifications pour les sociétés third-party storage développer des fournisseurs de ce stockage spécial. Sociétés tels que Hitachi, EMC ou stockage même nuage comme Windows Azure ou du stockage du nuage Amazon, peut maintenant mettre en œuvre ou fournir l'implémentation de la RBS pour leurs propres systèmes de stockage.

Toutes ces fonctionnalités sont disponibles pour les utilisateurs de SQL Server 2008. SharePoint exploite également ce que vous puissiez configurer SharePoint 2010 à utiliser SQL Server 2008 en tant que sa base de données contenu. Pour utiliser la fonction de la RBS en 2010 SharePoint, vous devez être à l'aide de SQL Server 2008, même si SharePoint 2010 fonctionne avec SQL Server 2005, SQL Server 2005 n'a pas la fonctionnalité RBS.

Du point de vue de SharePoint, RBS fait exactement la même chose que EBS. Il s'agit d'un mécanisme pour stocker les BLOBs en dehors de la base de données. La seule différence est qu'avec EBS, des fournisseurs tiers devaient fournir les modules EBS. Avec la RBS, Microsoft a déjà un fournisseur de FILESTREAM.

Vous trouverez que la manière la plus pratique à utiliser le champ RBS dans SharePoint est par l'intermédiaire d'un produit tiers. Cette opération rend l'ensemble du processus très facile d'utilisation, complète et avec tous les éléments administrés via les outils GUI. Si vous n'aimez pas les logiciels de tierce-partie, vous pouvez configurer la RBS pour le stockage BLOB dans SQL Server 2008 et 2010 SharePoint.

RBS dans SQL Server 2008 dispose d'un processus de collection garbage intégré appelé intendant RBS, ce qui n'était pas il pour EBS. Intendant RBS est un processus séparé et il nettoie tous les objets non référencés BLOB, qui, avec EBS, le fournisseur tiers devait implémenter sur sa propre.

Cependant, du point de vue d'un utilisateur, RBS et EBS fournissent la même valeur à l'implémentation de fournisseur tiers. Si l'utilisateur ne souhaite pas utiliser un fournisseur tiers, RBS est la seule option. Si l'utilisateur final n'est pas une solution tierce pour prendre les BLOBs de la base de données, puis qui pourrait être de RBS ou de EBS.

EBS et RBS améliorer également les performances de SharePoint. La différence est que EBS s'appuie sur une interface COM héritée, alors que la RBS est une solution purement basés sur .NET. Du point de vue de la technologie, RBS répond aux .NET façon très satisfaisante. EBS dépend toujours une interface héritée.

Vous pouvez configurer SharePoint 2010 à utiliser le fournisseur de FILESTREAM RBS, qui est intégré à SQL Server 2008. Actuellement, qui est le seul fournisseur qui est fourni avec SQL Server 2008. À l'avenir, vous voyez d'autres fournisseurs RBS de tierce partie. Avec ces éléments, vous pouvez déplacer les BLOBs en cela à l'extérieur de stockage (voir la rubrique de la figure 2 ).

La figure 2 BLOBs retirés de SQL Server 2008 avec RBS

Déplacer les BLOBs en dehors de la base de données est un élément clé d'améliorer les performances de SharePoint et fabrication de votre base de données beaucoup plus facile à gérer. Toutefois, vous devez être conscient qu'il existe d'autres choses à faire si vous voulez améliorer les performances de SharePoint.

BLOB et la mise en cache de la liste aussi améliorer les performances

Une fois que vous externaliser les BLOBs, la mise en cache des données BLOB peut plus et améliorer les performances de l'application SharePoint de manière significative. Ceci est particulièrement vrai lorsque vous utilisez un cache distribué des BLOBs fréquemment utilisés dans les mémoires de serveur Web front-end (WFE). Cette solution minimise les aller-retour vers le stockage BLOB. De cette manière, vous pouvez lire les BLOBs rapidement et accélérer le temps de réponse de votre application de SharePoint.

Vous pouvez également utiliser la mise en cache pour les autres types de données. Par exemple, SharePoint rend une utilisation importante de données de la liste, que vous pouvez mettre en cache. La mise en cache des données de votre liste est un autre avantage qui fournit du cache en mémoire. Pratiquement tous les éléments en 2010 SharePoint sont illustrée par le biais de la liste. SharePoint dispose effectuer des déplacements de la base de données chaque fois que de lire la liste. En mettant en cache de ces listes dans la mémoire du serveur WFE, vous évitez d'innombrables sorties de base de données et améliorez les performances. Mise en cache d'objets BLOB et les données de liste pour peut élever considérablement des niveaux de performances (voir la rubrique de la figure 3 ).

La mise en cache en mémoire gagne du terrain considérable dans .NET et de Java. Le cache doit s'exécuter sur vos serveurs WFE. Selon que vous avez des serveurs 32 bits ou 64 bits, il peut allouer moins de 500 Mo à 10 Go de mémoire ou de 5 Go, selon la quantité de mémoire que vous possédez disponibles.

Ce cache est toutes les données que lit la WFE, à partir du stockage BLOB ou à partir de SQL Server, et il est tout transparent. Tout ce qui est extrait automatiquement est conservé dans le cache. La prochaine fois que SharePoint nécessite les mêmes données qu'il s'agisse de l'objet BLOB ou une liste, il va le trouver dans le cache distribué. Cela signifie que le cache en réalité réparti sur plusieurs serveurs WFE.

Pour les grandes installations, vous pouvez également migrer le cache vers un niveau de mise en cache dédié. Qui est un cache distribué il aide à rester synchronisées sur plusieurs serveurs. Par conséquent, si un document est mis à jour à partir d'un serveur Web, les autres seront également connaître à ce sujet. La mise en cache vous permet de prendre des performances au niveau supérieur dans la mesure où le cache en mémoire est extrêmement rapide.

La figure 3 mise en cache de données améliore davantage les performances de SharePoint,

Si votre SharePoint est configuré pour utiliser un processus de travail de l'unique sur chaque WFE, vous pouvez conserver le cache dans le processus de travail. Toutefois, vous devez tenir compte de la limite de taille de la mémoire de processus de travail sur une plate-forme 32 bits, un processus de travail de l'unique ne peut pas avoir plus de 1 Go. Si tel est le cas, vous pouvez conserver le cache dans un processus séparé.

Une fois externalisés des BLOBs et la mise en cache est implémentée, vous améliorer les performances plusieurs fois parce que vous apportez ne sont plus des allers retours réseau coûteux. Vous n'allez pas au stockage des objets BLOB et que vous allez pas à SQL Server pour les données de liste. Tout ce qui est juste là dans la mémoire du serveur WFE.

Tests de performances avec un cache in-process affichent que les performances sont au moins trois à quatre fois plus rapide car les données sont dans la mémoire de votre propre processus. Même si elle est hors-proc, communication interprocessus sur la même boîte est beaucoup plus rapide que lors de la passer sur le réseau.

Pendant que vous pouvez certainement implémenter votre propre mise en cache en demandant à vos développeurs d'effectuer une programmation, il est préférable d'utiliser un cache distribué tiers afin d'éviter de fastidieuse et sujette aux erreur d'installation.

Tirer parti d'externalization BLOB avec SQL Server 2008 RBS et améliorer les performances de SharePoint 2010. Si vous n'êtes pas prêt à passer à SQL Server 2008, mais souhaitez externaliser BLOB, vous pouvez le faire vous-même ou utiliser une option de tierce partie pour déplacer des objets BLOB de la base de données via EBS.

Iqbal Kahn

Iqbal Khan est spécialiste de technologie et président de Alachisoft (alachisoft.com). Alachisoft fournit NCachePoint & NCache. NCachePoint est produit l'évolutivité et les principales performances de SharePoint du secteur et NCache est un cache distribuées .NET populaires. Vous pouvez le contacter à l'adresse iqbal@alachisoft.com.

 

Contenu associé