Armazenamento em cache no Office SharePoint Server 2007
Atualizado em: 2009-04-23
Neste artigo:
Cache de saída
Cache de objetos
Cache baseado em disco para BLOBs
O Microsoft Office SharePoint Server 2007 vem com avançados recursos de cache para maximizar o desempenho dos sites. Este artigo descreve os diferentes tipos de cache disponíveis e como otimizar o cache para seus requisitos específicos de implantação.
A seguinte tabela mostra os tipos de cache disponíveis e onde cada um deles é implementado.
Use este tipo de cache… | No… | Observações |
---|---|---|
Cache de saída e perfis de cache |
Nível de página individual |
Ideal para sites intensamente acessados que não precisam apresentar novos conteúdos frequentemente. |
Cache de objetos |
Controle individual de Web Parts, controle de campo e de nível de conteúdo |
Inclui cache de consulta entre listas e cache de navegação |
Cache baseado em disco para objetos binários grandes (BLOBs) |
Nível de blob individual |
Oferece suporte a .gif, .jpg, .js, CSS e outra imagem, som e arquivos de codificação armazenados como BLOBs |
Cache de saída
O Office SharePoint Server 2007 usa tecnologia de cache de saída nativa para ASP.NET 2.0 para gerenciar quando e como o conteúdo da página é oferecido. Quando o cache de saída é corretamente usado, pode diminuir significativamente o tempo de resposta e a taxa de transferência do usuário.
Se um site for habilitado com ASP.NET, a marcação HTML gerada em tempo de execução por cada página da Web é armazenada em cache pelo cache de saída ASP.NET, com base no perfil de cache especificado. Em um site muito acessado, o cache de páginas frequentemente acessadas por até um minuto por vez pode resultar em ganhos substanciais de taxa de transferência. Enquanto uma página é armazenada em cache pelo cache de saída, as solicitações subsequentes para essa página feitas pelos usuários com permissões semelhantes são atendidas no cache de saída sem a execução do código ou do controle criador na duração especificada do cache.
Dica
O cache de saída só pode ser usado em um site ou conjunto de sites se o recurso Infraestrutura de Publicação do Office SharePoint Server tiver sido ativado para o conjunto de sites e o recurso Infraestrutura de Publicação do Office SharePoint Server tiver sido ativado para o site. Se você habilitar e configurar o cache de saída do conjunto de sites clicando em Cache de saída do conjunto de sites na página Configurações do Site do conjunto de sites e clicando em Cache de saída do site na página Configurações do Site dos sites. Se o recurso Infraestrutura de Publicação do Office SharePoint Server não tiver sido ativado para o conjunto de sites e o recurso Infraestrutura de Publicação do Office SharePoint Server não tiver sido ativado para o site, os links Cache de saída do conjunto de sites e Cache de saída do site não aparecerão nas páginas Configurações do Site e você não poderá habilitar ou configurar o cache de saída.
Para obter mais informações sobre como habilitar o cache de saída, consulte a página sobre caches de saída e perfis de cache (https://go.microsoft.com/fwlink/?linkid=78928\&clcid=0x416).
Considerações sobre cache de saída
Antes de optar por usar o cache de saída para melhorar o desempenho do processamento de páginas e itens de página, considere as vantagens e limitações da implementação de um cache de saída.
Os benefícios incluem:
O cache de saída é ideal para sites que não exigem atualização de conteúdo a cada minuto. Nesse ambiente, a saída armazenada em cache pode ser mostrada aos diferentes usuários sem acessar o banco de dados ou executar novamente o código ou os controles que inicialmente criaram a marcação HTML da página da Web.
O cache de saída pode ser usado para usuários anônimos e autenticados, mas é mais eficaz quando o acesso é anônimo. Portanto, habilite o acesso de usuários anônimos sempre que apropriado e viável para o site, total ou parcialmente.
As limitações incluem:
O cache de saída usa memória adicional para armazenar em cache a marcação HTML para cada página armazenada em cache. Não se esqueça de instalar suficiente memória física, para evitar a paginação do sistema ou outros problemas de memória.
Quando usado com dois ou mais servidores Web, o cache de saída pode afetar a consistência. Você pode configurar um perfil de cache para não verificar atualizações de cada solicitação e, por exemplo, configurar o perfil para ignorar alterações de versão da página da Web no cache de saída até 60 segundos após a atualização da página original . Se você tiver dois servidores Web na sua topologia e dependendo do balanceador de carga usado para rotear a solicitação do usuário, um leitor pode ver conteúdo inconsistente se a página for processada por um servidor e, em seguida, uma solicitação subsequente for roteada para um segundo servidor dentro desse período de 60 segundos. Se a verificação de alterações for habilitada no perfil do cache, reduzirá a eficiência do cache de saída.
Se o cache de saída for habilitado para usuários com permissão de gravação para um conjunto de sites, eles talvez não vejam os dados mais atualizados nas páginas da Web desse conjunto de sites até que as páginas armazenadas no cache de saída tenham expirado. Normalmente, isso não afeta diretamente o conteúdo em uma página da Web que o usuário esteja alterando ou exibindo no momento, mas pode afetar dados acumulados de uma lista ou biblioteca. — por exemplo, dados apresentados de uma Web Part de biblioteca de documentos. Portanto, você só deve habilitar o cache de saída para usuários com permissões de Leitura se quiser ter certeza de que os usuários com permissões de gravação podem exibir todas as informações atuais.
Comportamento do cache de saída
Você pode especificar o comportamento do cache de saída nos seguinte níveis:
Conjunto de sites
Site
Layout de página
O administrador de um determinado farm, conjunto de sites ou site pode otimizar o comportamento do cache para o nível no qual ele tenha privilégios administrativos aplicando diferentes perfis de cache. Por exemplo, a home page do seu site pode ser acessada com mais frequência, e você pode usar um layout de página exclusivo para a home page, para poder aplicar um perfil especial de cache a esse layout de página exclusivo e substituir o comportamento do cache de todo o conjunto de sites. Por outro lado, você pode configurar o perfil de cache do layout de página com maior duração do cache. Isso permite otimizar a pontualidade dos dados para a home page onde você pode permitir a compensação entre desempenho e pontualidade. Para as outras páginas no sistema, você pode usar outro perfil com menor duração de cache.
Cache de resultados de pesquisa
Em um ambiente que empregue autenticação do usuário, você nunca deve armazenar em cache resultados de pesquisas. Isso pode permitir a divulgação de informações com privilégios para usuários não autorizados. Uma consulta de pesquisa filtra o conjunto de resultados para apresentar apenas as informações disponíveis para o atual usuário. No entanto, quando você armazena em cache resultados da pesquisa, o código que filtra o conjunto de resultados é ignorado. Portanto, usuários não autorizados podem exibir resultados aos quais não deveriam ter acesso. Em um ambiente anônimo, ao contrário, isso não é problema, pois todos os resultados da pesquisa resultam de solicitações não autenticadas.
Se você tiver cache de saída habilitado no conjunto de sites, pode desativar o layout da página de resultado da pesquisa realizando o seguinte procedimento:
Desativar o layout da página de resultados da pesquisa
No site de nível superior do conjunto de sites, no menu Ações de Site, aponte para Definições do Site e clique em Modificar Todas as Definições do Site.
Na página Configurações do Site, na seção Administração do Conjunto de Sites, clique em Cache de saída do conjunto de sites.
Na páginaConfigurações do Cache de Saída do Conjunto de Sites, marque a caixa de seleção Layouts de Página podem usar outro perfil de cache de saída e clique em OK.
Na página Definições do Site, na seção Galerias, clique em Páginas mestras e layouts de páginas.
Na página Galeria de Páginas Mestras, aponte para SearchResults.aspx, clique na seta exibida, clique em Editar Propriedades no menu exibido e em OK na caixa de diálogo exibida.
Na página Galeria de Páginas Mestras: SearchResults, na lista Perfil de Cache Autenticado, clique em Desabilitado e em OK.
Na página Galeria de Páginas Mestras, aponte para SearchResults.aspx, clique na seta exibida e em Check-in no menu exibido.
Na página Check-in, selecione Versão principal (publicar) e clique em OK. Os resultados da pesquisa que usam esse layout de página específico não serão mais armazenados em cache.
Limite de bytes particular do ASP.NET
Se o cache de saída estiver habilitado, talvez você queira estender o limite padrão do ASP.NET 2.0 em bytes particulares. Esse limite instrui o ASP.NET sobre quando deve ocorrer a liberação do seu cache de saída. A liberação prematura causará uma degradação de desempenho desnecessária. Para obter mais informações, consulte a página sobre Elemento de cache para o armazenamento em cache (Esquema de configurações do ASP.NET) (https://go.microsoft.com/fwlink/?linkid=78934\&clcid=0x416).
Versões de páginas armazenadas em cache
Determinadas páginas da Web podem apresentar versões ligeiramente diferentes com base nos usuários ou em outras lógicas corporativas. Você pode estender o cache de saída usando a API programável com suporte para acomodar a necessidade de armazenar em cache os itens de outra forma. Para obter mais informações, consulte a página sobre como estender o cache usando o manipulador de eventos VaryByCustom (https://go.microsoft.com/fwlink/?linkid=78935\&clcid=0x416).
Cache de saída e RSS feeds da Web Part de Consulta de Conteúdo
A Web Part de Consulta de Conteúdo oferece a opção de fornecer RSS feeds dos resultados exibidos. Esse RSS feed é gerado por uma página .aspx no servidor, que produz o XML do RSS feed com base nos mesmos resultados exibidos pela Web Part de Consulta de Conteúdo.
Como os clientes RSS frequentemente solicitam um RSS feed do servidor periodicamente, como, por exemplo, a cada 30 minutos, é importante que a geração do RSS feed tenha bom desempenho. Portanto, a página .aspx do RSS feed implementa o cache de saída. Na origem do arquivo .aspx, você verá a seguinte linha:
<%@ OutputCache Duration="300" VaryByParam="xsl;web;page;wp" VaryByCustom="rights;feedresults"%>
Isso significa que, por padrão, o sistema armazena em cache RSS feeds de Consulta de Conteúdo por cinco minutos (300 segundos), armazena em cache versões exclusivas dos RSS feeds para cada Web Part de Consulta de Conteúdos diferente e armazena em cache versões exclusivas dos RSS feeds para usuários com diferentes permissões e resultados de feed.
Se quiser personalizar este cache de saída, você pode criar sua própria página .aspx de feed que implementa a mesma lógica, mas tem outras configurações de cache de saída. Em seguida, as Web Parts de Consulta de Conteúdo podem fazer referência à sua página .aspx de feed no lugar da página padrão.
Além disso, você pode desabilitar todo o site do Centro de Pesquisa para desabilitar o cache de saída, se tiver nesse site outras páginas confidenciais com o mesmo problema de segurança potencial. Para desabilitar o cache de saída para o site do Centro de Pesquisa, execute o seguinte procedimento:
Desativar o cache de saída para o site do Centro de Pesquisa
No site de nível superior do conjunto de sites, no menu Ações de Site, aponte para Definições do Site e clique em Modificar Todas as Definições do Site.
Na página Configurações do Site, na seção Administração do Conjunto de Sites, clique em Cache de saída do conjunto de sites.
Na página Configurações do Cache de Saída do Conjunto de Sites, na seção Política do Cache de Saída de Página, marque a caixa de seleção Os sites de publicação podem usar um perfil de cache de saída de página diferente e clique em OK.
Na barra de navegação superior, clique na guia Pesquisar.
Na home page do site do Centro de Pesquisa, no menu Ações de Site, aponte para Configurações do Site e clique em Modificar Todas as Configurações do Site.
Na página Configurações do Site do site do Centro de Pesquisa, na seção Administração do Site, clique em Cache de saída do site
Na página Configurações do Cache de Saída do Site de Publicação, na seção Perfil de Cache Autenticado, selecione o botão de opção Herdar o perfil “Desabilitado”.
Você pode, opcionalmente, verificar a caixa de seleção Aplicar estas definições a todos os subsites se desejar desabilitar o cache de saída autenticado para todos os subsites.
Cache de objetos
O Office SharePoint Server 2007 oferece suporte ao cache de determinados itens de página, como dados de navegação e dados acessados através de consultas entre listas. O cache de itens de página reduz a necessidade de recuperar dados de campo do banco de dados sempre que uma página é processada. O sistema de cache também armazena em cache dados de campo completos para uma página, excluindo aqueles relativos a quaisquer controles de Web Part na página.
Ajuste do cache de objetos
Por padrão, o tamanho do cache de objetos é definido em 100 MB por conjunto de sites, mas você pode modificar essa configuração em cada conjunto de sites para ajustar as características do site. É possível usar um conjunto de contadores de desempenho para ajustar o tamanho do cache de objetos. O nome do objeto contador de desempenho é Objeto de Cache de Publicação do SharePoint. Você pode definir o tamanho do cache de objetos com base na taxa de ocorrências do cache e na alteração nos contadores de descarte de objetos. Leve em consideração os seguintes itens ao definir este limite:
Comece com um valor baixo (como 200 MB) e monitore a proporção de ocorrências do cache e o contador de descarte de objetos. A proporção de ocorrências acima de 90% e uma taxa baixa de descarte de objetos são geralmente bons sinais de que o tamanho atual está adequado. No entanto, você também deve medir o tempo de resposta do usuário para as principais operações, para ajustar essa configuração.
Se você definir um tamanho muito grande, pode perder uma quantidade valiosa de memória para outros caches, como o cache de saída do ASP.NET, caso seja usado. Certas Web Parts, como a de Consulta de Conteúdo, armazenam suas folhas de estilo XSLT no cache de saída. Se o tamanho do cache de objetos for muito grande, o ASP.NET pode liberar memória do cache de saída para obter espaço. A utilização da CPU pode aumentar após a liberação. Isso é especialmente importante em sistemas executados em um OS de 32 bits, pois cada processo do trabalhador é limitado a um espaço de memória de aplicativo de 2 GB. Se você definir este limite como um valor muito alto, o processo de trabalho do IIS (w3wp) pode ficar sem memória.
Cache de consulta entre listas
O cache de objetos também é usado para armazenar itens recuperados como parte de consultas entre listas. Essas consultas agregam itens provenientes de várias listas e sites do seu conjunto de sites. O uso mais comum dessas consultas é na Web Part de Consulta de Conteúdo. Cada uso da consulta entre listas requer uma viagem de ida e volta do servidor de banco de dados. Usando um cache de objetos, você pode reduzir bastante o número de viagens de ida e volta necessárias ao atendimento das consultas entre listas, aprimorando assim o desempenho de recursos tais como a Web Part de Consulta de Conteúdo que apresenta os resultados de consulta entre listas.
Verificando se há atualizações
Você pode configurar o cache de consulta entre listas para verificar se há atualizações e, condicionalmente, atualizar o cache das duas maneiras a seguir:
Verificando se houve alterações no conjunto de sites. Se não houver alterações, serão usados os resultados armazenados em cache.
Aguardando durante um período, durante o qual os resultados armazenados em cache serão usados e após o qual será emitida uma consulta para atualizar o cache.
A primeira configuração é útil em casos em que há alterações frequentes do conteúdo no conjunto de sites exibido pela consulta entre listas, nos quais é importante que a consulta exiba as informações mais recentes. Um exemplo desse caso é um site de portal de intranet divisional que exibe uma consulta entre listas dos documentos mais recentes do site. Neste site, muitos usuários colaboram e pode ser importante ver os últimos documentos que eles publicaram.
A segunda configuração é útil em casos em que não há alterações frequentes do conteúdo no conjunto de sites, nos quais não é tão importante que a consulta entre listas exiba informações atualizadas. Um exemplo deste caso é um site público da Internet, que exibe uma consulta entre listas das páginas dos artigos mais recentes publicadas no site. Neste site, a maioria dos usuários é anônima, ou usuários autenticados com permissões somente para leitura. Nesse caso, alguns minutos de demora para abrir os últimos artigos não representam algo crítico.
Você pode configurar o cache de consulta entre listas executando o seguinte procedimento.
Configurar o cache de consulta entre listas
Na home page do site, no menu Ações de Site, aponte para Configurações do Site e clique em Modificar Todas as Configurações do Site.
Na página Configurações do Site, na seção Administração do Conjunto de Sites, clique em Cache de objetos do conjunto de sites.
Na seção Alterações do Cache de Consulta entre Listas, selecione o botão de opção apropriado, dependendo de como você deseja que o cache de consulta entre listas seja atualizado. Se você selecionar a opção Use o resultado em cache de uma consulta entre listas durante esta quantidade de segundos, digite um valor na caixa de texto que representa o número de segundos que o cache aguardará até que seja atualizado.
Clique em OK para salvar suas alterações.
Número de itens a recuperar
A configuração do Multiplicador de Resultados da Consulta entre Listas controla o número de itens recuperados e armazenados em cache. Como as consultas entre listas podem recuperar itens de vários usuários com diferentes permissões, é importante recuperar itens suficientes da consulta para que todos os usuários vejam os itens corretos. Para certificar-se de que todos os usuários vejam os itens corretos nos resultados da consulta, depois de uma filtragem de segurança, o cache da consulta entre listas exibe mais resultados do que foi solicitado. Essa configuração requer um número inteiro que especifique o múltiplo do número de itens que o cache da consulta entre listas deve recuperar.
Definir o multiplicador como um valor maior recupera mais itens e consome mais memória. Um valor maior é apropriado em um site onde muitos usuários têm permissões exclusivas em diferentes listas e itens.
Definir o multiplicador como um valor menor recupera menos itens e consome menos memória. Um valor menor é apropriado em um site onde os usuários têm a mesma segurança, como usuários anônimos em um site.
Configurar o multiplicador de resultados da consulta entre listas
Na home page do site, no menu Ações de Site, aponte para Configurações do Site e clique em Modificar Todas as Configurações do Site.
Na página Configurações do Site, na seção Administração do Conjunto de Sites, clique em Cache de objetos do conjunto de sites.
Na caixa Multiplicador da consulta entre listas, digite um número para especificar o múltiplo de itens que a consulta entre listas recupera.
Clique em OK para salvar suas alterações.
Cache baseado em disco para BLOBs
O cache baseado em disco controla o armazenamento em cache de objetos binários grandes (BLOBs), como arquivos de imagem, som, vídeo e fragmentos de código. Ele reduz a necessidade de viagens de ida e volta do banco de dados para acessar os BLOBs. Os BLOBs são recuperados no banco de dados uma vez e armazenados nos servidores Web. Outras solicitações são atendidas no cache baseado em disco e cortadas com base na segurança.
Considerações
Você pode configurar o tamanho de cache baseado em disco para cada aplicativo Web. O mínimo é 1 GB, e você pode aumentar esse tamanho em múltiplos de gigabytes. Verifique se há suficiente espaço em disco para o seu aplicativo.
Há várias configurações que você pode definir no cache baseado em disco. Em particular, observe as duas configurações a seguir:
Max-age especifica o tempo máximo em segundos que o navegador cliente armazena em cache BLOBs baixados no computador cliente. Se os itens baixados não tiverem expirado desde o último download, não serão novamente solicitados até que o cache expire. O atributo Max-age é definido por padrão como 86400 segundos (isto é, 24 horas), mas você pode defini-lo como um período zero ou maior. Quanto maior esse valor, mais tempo o navegador levará para obter os itens atualizados.
Path especifica na forma de uma expressão regular quais arquivos estão armazenados em cache com base na extensão do arquivo. Por padrão, a extensão de arquivo inclui gif, jpg, png, css e js. Se você tiver tipos de arquivos especiais com referência em suas páginas da Web, deve adicionar as extensões ao cache.
O cache baseado em disco aplica-se apenas aos itens de uma biblioteca de documentos. Se você armazenar recursos fora de uma biblioteca de documentos, como uma pasta sob um site, esses itens não serão gerenciados pelo cache baseado em disco, mesmo que você o habilite para todo o aplicativo Web. Isso é importante se você quiser controlar a configuração do atributo max-age dos recursos de BLOB baixados no navegador cliente. Por padrão, o atributo max-age de todos os itens armazenados no Office SharePoint Server é definido como zero.