2010 Do SharePoint: Melhorar o desempenho de 2010 do SharePoint com o EDR

Armazenar BLOBs fora do banco de dados pode aumentar o desempenho do SharePoint 2010.

Iqbal Khan

SharePoint tornou-se uma plataforma extremamente popular de portal. Ele oferece um grande número de aplicativos para colaboração entre grupos de empresas diferentes, ou até mesmo entre diferentes empresas. Gerenciamento de processos, gerenciamento de documentos e outros aplicativos principais são a parte da matriz do SharePoint dos recursos.

Mas a popularidade do SharePoint tem também seu aspecto negativo. À medida que mais pessoas usá-lo, pode haver principais de desempenho e escalabilidade gargalos porque o SharePoint faz um uso intenso do banco de dados do SQL Server para tudo. Isso pode incluir dados estruturados ou documentos proveniente do Microsoft Word, Excel, PowerPoint e Adobe Acrobat. Todos esses documentos são provenientes do banco de dados.

Problemas de desempenho

Há dois problemas potenciais associados ao SharePoint 2010. Um: Bancos de dados podem crescer excepcionalmente grandes devido a todos os dados binários grande BLOB (objeto). Dois: Lendo e gravando BLOBs, bem como outros dados relacionais, poderá diminuir o desempenho do SQL Server porque ele não é o lugar ideal para armazenar BLOBs.

Bancos de dados relacionais são projetados para manipular dados relacionais estruturados. Sua arquitetura é que direcionado.  A Microsoft adicionou suporte para BLOBs, mas não é a situação ideal. Por outro lado, o armazenamento de arquivos foi projetado para armazenar arquivos, que são, basicamente, fluxos de dados ou BLOBs.

2010 Do SharePoint é muito centrado em documentos com os arquivos do Word, Excel, PDF e PowerPoint. Grande número de documentos grandes rapidamente torna o banco de dados maiores do que é prático. Como resultado, o desempenho do SharePoint pode levar um acerto. A Figura 1 mostra os problemas de desempenho associados ao banco de dados do SQL Server e BLOBs.

A Figura 1 banco de dados do SQL Server lotadas lento SharePoint 2010.

Isso pode se tornar mais séria ao adicionar mais usuários e os documentos do SharePoint. Se você tiver dezenas de milhares de documentos armazenados no banco de dados, o banco de dados torna-se sobrecarregado e há muitos dos documentos que precise ir e para trás entre a Web farm do SharePoint e o banco de dados SQL.

Conforme o tamanho do banco de dados cresce excepcionalmente grande, isso contribui significativamente para sluggishness do banco de dados.  Se a dados do SharePoint foram estruturados de dados relacionais, pode ser indexada com inteligência e adequadamente tratado pelo SQL Server.

Tamanho total dos dados BLOB pode expandir rapidamente e crescimento maior do que o tamanho total dos metadados do documento e outros dados de estrutura no banco de dados. É útil mover dados BLOB ao banco de dados do SQL Server e, em um armazenamento separado. Que ocorre porque o BLOB de dados podem consumir muito espaço em arquivo e usa os recursos do servidor são otimizados para padrões de acesso a banco de dados.

Movendo BLOBs fora do banco de dados

No Microsoft Office SharePoint Server (MOSS) 2007, a Microsoft forneceu um mecanismo chamado de armazenamento externo de BLOB ou EBS. A arquitetura de plug-in do EBS ajudou a fornecedores terceirizados instalar um módulo do EBS para interceptar o tráfego de banco de dados do SharePoint e redirecionar todo o tráfego BLOB em um armazenamento separado de BLOB. EBS funciona bem e lida com esse problema muito eficaz.

EBS permite que você migre BLOBs ao banco de dados, mantê-los no armazenamento do sistema de arquivos, uma rede de área de armazenamento (SAN) ou um armazenamento conectado à rede (NAS). Esses sistemas de armazenamento foram bem adequados para armazenar BLOBs, pois esses são todos os documentos, Excel, Word, PDF, esses tipos de coisas — que uma organização típica cria e compartilhamentos através de seus usuários.

No entanto, você não pode usar diretamente EBS porque nenhum provedor EBS é fornecido com o MOSS 2007. Outra desvantagem, EBS não for 100 por cento arquitetonicamente .net, mas ainda baseado na antiga interface COM. Nesse caso, você deve contar com um fornecedor de terceiros do EBS. Sem o auxílio de um módulo de terceiros, IT não é possível usar o EBS. Um módulo de terceiros deve também se encarregar de problemas, como limpeza BLOB. Quando um BLOB é excluído, o SharePoint nunca pergunta o módulo para excluir o BLOB. Ele apenas deixará de referir-se a ele.

A gravação de fornecedores do EBS módulo deve ter um recurso de limpeza do BLOB que periodicamente pesquisa todos os BLOBs não é mais referenciadas pelo SharePoint ou um BLOB de coleta de lixo. Em seguida, exclui-los porque o usuário tenha excluído os documentos.

Da mesma forma, se o usuário atualiza um documento, SharePoint, na verdade, nunca atualiza o BLOB existente. Ele sempre cria um BLOB de novo, para que o antigo BLOB ainda cerca. O recurso de coleta de lixo do módulo EBS deve remover os BLOBs. EBS faz o trabalho de forma apropriada em que ela realmente melhora o desempenho do SharePoint um pouco, movendo os BLOBs ao banco de dados.

Insira o SQL Server 2008 e EDR

Microsoft SQL Server 2008 tem um recurso interno do armazenamento remoto de BLOB (EDR). EDR permite que os usuários do SQL Server armazene todos os BLOBs fora do banco de dados. A Microsoft fornece um provedor incorporado do FILESTREAM para o sistema de ficheiros normais. Ele também publicou a interface e as especificações para empresas de armazenamento de terceiros desenvolver os provedores para este armazenamento especial. Agora, empresas como a EMC, Hitachi ou armazenamento de nuvem, mesmo como o Windows Azure ou armazenamento de nuvem da Amazon, pode implementar ou fornecer a implementação de EDR para seus próprios sistemas de armazenamento.

Todos esses recursos estão disponíveis para usuários do SQL Server 2008. SharePoint também toca para isso, portanto, você pode configurar o SharePoint 2010 para usar o SQL Server 2008 como seu banco de dados de conteúdo. Para usar o recurso de EDR 2010 do SharePoint, você precisa estar usando o SQL Server 2008, mesmo que o SharePoint 2010 funciona com o SQL Server 2005, SQL Server 2005 não possui o recurso de EDR.

Da perspectiva do SharePoint, EDR faz exatamente a mesma coisa do EBS. Ele é um mecanismo para armazenar BLOBs fora do banco de dados. A única diferença é que com EBS, fornecedores de terceiros tinham que fornecer os módulos do EBS. Com o EDR, a Microsoft já tem um provedor FILESTREAM.

Você descobrirá que a maneira mais conveniente usar EDR no SharePoint por meio de um produto de terceiros. Isso faz todo o processo extremamente fácil de usar, abrangente e tudo que administrado por meio de ferramentas de interface gráfica do usuário. Se Don gostar do software de terceiros, você pode configurar o EDR para o armazenamento BLOB dentro do SQL Server 2008 e o SharePoint 2010.

O EDR no SQL Server 2008 tem um processo de coleta de lixo interno chamado mantenedor EDR, que não estava lá para EBS. Mantenedor EDR é um processo separado e ele limpa todos os não referenciados BLOBs, que, com EBS, o fornecedor de terceiros tiveram para implementar em sua própria.

No entanto, da perspectiva do usuário, tanto o EDR EBS oferecem o mesmo valor com a implementação de terceiros. Se o usuário não quiser usar um fornecedor de terceiros, o EDR é a única opção. Se o usuário final não se importar uma solução de terceiros para assistir as BLOBs fora do banco de dados e, em seguida, que poderia ser EDR ou EBS.

Tanto o EBS EDR melhora o desempenho do SharePoint igualmente. A diferença é que EBS se baseia em uma interface COM legados, enquanto o EDR é uma solução puramente baseados em .net. Da perspectiva da tecnologia, EDR cabe em para .net muito bem. EBS ainda depende de uma interface legacy.

Você pode configurar o SharePoint 2010 para usar o provedor de FILESTREAM EDR que está incorporado ao SQL Server 2008. Atualmente, que é o único fornecedor que vem com o SQL Server 2008. No futuro, você verá outros provedores de terceiros EDR. Com elas, você pode mover os BLOBs em this fora de armazenamento (consulte do Figura 2).

A Figura 2 de BLOBs movido para fora do SQL Server 2008 com o EDR

A movimentação de BLOBs fora do banco de dados é um elemento-chave melhora o desempenho do SharePoint e fazer o seu banco de dados muito mais gerenciável. No entanto, você precisa estar ciente de que há outras coisas que você precisa fazer se você for para melhorar ainda mais o desempenho do SharePoint.

Lista de cache de BLOB e também aprimorar o desempenho

Depois que você Externalizar os BLOBs, armazenamento em cache BLOB de dados pode ainda mais e melhorar significativamente o desempenho de aplicativos do SharePoint. Isso é especialmente verdadeiro quando você usar um cache distribuído para BLOBs usados com freqüência em que as memórias de servidor Web front-end (WFE). Isso minimiza a viagens ao armazenamento BLOB. Dessa forma, você pode ler esses BLOBs rapidamente e acelerar o tempo de resposta de seu aplicativo do SharePoint.

Você também pode usar o armazenamento em cache para outros tipos de dados. Por exemplo, o SharePoint faz uso intensivo dos dados da lista, que você pode armazenar em cache. Armazenamento em cache os dados da lista é uma outra vantagem fornece cache na memória. Praticamente todo o conteúdo do SharePoint 2010 é mostrado através da lista. O SharePoint tem a fazer viagens de banco de dados sempre que ler a lista. Armazenando em cache as listas na memória do servidor WFE, você pode evitar idas incontáveis do banco de dados e melhorar o desempenho. Cache BLOBs de dados de lista pode aumentar significativamente os níveis de desempenho (consulte do Figura 3).

O armazenamento em cache na memória está ganhando força considerável nos espaços para o .net e Java. O cache deve ser executado em seus servidores WFE. Dependendo se você tem servidores de 32 ou 64 bits, pode alocar apenas 500 MB a 10 GB de memória ou de 5 GB, dependendo da quantidade de memória você tem disponíveis.

Esse cache é todos os dados que a WFE está lendo a partir do armazenamento BLOB ou do SQL Server, e é tudo transparente. Tudo o que é obtido automaticamente é mantido no cache. Na próxima vez que o SharePoint precisa os mesmos dados, seja ele o BLOB ou lista, ele será localizá-lo no cache distribuído. Isso significa que o cache, na verdade, se estende por vários servidores WFE.

Para instalações grandes, também é possível migrar o cache para um nível de armazenamento em cache dedicado. Sendo um cache distribuído ajuda a fiquem sincronizados em vários servidores. Portanto, se um documento for atualizado a partir de um servidor Web, os outros também saberá sobre ele. Armazenamento em cache o ajuda a tirar o desempenho para o próximo nível como o cache de memória é extremamente rápida.

A Figura 3 de mais dados em cache melhora o desempenho do SharePoint

Se o SharePoint é configurado para usar um processo do operador único em cada WFE, você pode manter o cache do processo do operador. No entanto, você precisa considerar o limite de tamanho de memória de processo do operador em uma plataforma de 32 bits — um processo do operador único não é possível ter mais de 1 GB. Se esse for o caso, você pode manter o cache em um processo separado.

Depois de BLOBs são exteriorizados e armazenamento em cache é implementado, você melhora o desempenho várias vezes porque que não são mais está fazendo as viagens de rede cara. Você não vai para o armazenamento do BLOB e você não vai do SQL Server para os dados da lista. Tudo o que está na memória do servidor WFE lá.

Avaliações de desempenho com um cache de proc mostram que o desempenho é pelo menos três a quatro vezes mais rápido porque os dados estão em sua própria memória de processo. Mesmo que esteja fora proc, comunicação entre processos na mesma caixa é muito mais rápida do que ao passar pela rede.

Embora certamente, você pode implementar seu próprio cache fazendo com que os desenvolvedores executam alguma programação, é melhor usar um cache distribuído de terceiros para evitar demorada e sujeito a erro de instalação.

Tire proveito do BLOB externalization com EDR do SQL Server 2008 e melhorar o desempenho do SharePoint 2010. Se você não está preparada para mover-se ao SQL Server 2008, mas ainda quiser Externalizar BLOBs, você pode fazê-lo ou usar uma opção de terceiros para mover BLOBs ao banco de dados por meio do EBS.

Iqbal Kahn

Iqbal Khan é a entusiasta presidente e a tecnologia de Alachisoft (alachisoft.com). Alachisoft fornece NCachePoint & NCache. NCachePoint é o melhor desempenho do SharePoint e o produto de escalabilidade do setor, e o NCache é um cache de .net distribuídos popular. Você pode entrar em iqbal@alachisoft.com de .

 

Conteúdo relacionado