Almacenamiento en caché en Office SharePoint Server 2007

En este artículo:

  • Almacenamiento en memoria caché de resultados

  • Almacenamiento en memoria caché de objetos

  • Almacenamiento en memoria caché basada en disco de BLOB

Microsoft Office SharePoint Server 2007 incluye capacidades avanzadas de almacenamiento en memoria caché para maximizar el rendimiento de los sitios web. En este artículo se describen los distintos tipos de almacenamiento en memoria caché que hay disponibles y cómo optimizar el almacenamiento en memoria caché para los requisitos de implementación específicos.

En la tabla siguiente se muestran los tipos de almacenamiento en memoria caché disponibles y dónde se implementan.

Use este tipo de almacenamiento en memoria caché… En… Notas

Almacenamiento en memoria caché de resultados y perfiles de memoria caché

Nivel de página individual

Ideal para sitios web con mucho tráfico que no necesiten presentar nuevo contenido con frecuencia.

Almacenamiento en memoria caché de objetos

Nivel de control de elemento web individual, control de campo y contenido

Incluye almacenamiento en memoria caché de consultas en todas las listas y almacenamiento en memoria caché de navegación.

Almacenamiento en memoria caché basada en disco para objetos binarios grandes (BLOB)

Nivel de BLOB individual

Admite archivos .gif, .jpg, .js, .css y otros archivos de imagen, sonido y código almacenados como BLOB.

Almacenamiento en memoria caché de resultados

Office SharePoint Server 2007 usa una tecnología de almacenamiento en memoria caché de resultados nativa de ASP.NET 2.0 para administrar cuándo y cómo se proporciona el contenido de las páginas. Cuando el almacenamiento en memoria caché de resultados se usa correctamente, puede mejorar considerablemente el rendimiento y el tiempo de respuesta del usuario.

Si un sitio está habilitado con ASP.NET, el código HTML generado en tiempo de ejecución por cada página web se almacena en la memoria caché de resultados de ASP.NET en función del perfil de memoria caché especificado. En un sitio web que recibe muchas visitas, almacenar en memoria caché las páginas más visitadas para incluso un minuto cada vez puede tener como resultado mejoras considerables en el rendimiento. Mientras una página se almacena en la memoria caché de resultados, las siguientes solicitudes de esa página que hagan usuarios con permisos similares se proporcionan desde la memoria caché de resultados sin ejecutar el código o el control que lo creó para la duración especificada de la memoria caché.

Nota

El almacenamiento en memoria caché de resultados sólo se puede usar en un sitio o colección de sitios si la característica Infraestructura de publicación de Office SharePoint Server se ha activado para la colección de sitios y la característica Publicación de Office SharePoint Server se ha activado para el sitio. Para habilitar y configurar el almacenamiento en memoria caché de resultados para la colección de sitios, haga clic en Caché de resultados de la colección de sitios en la página Configuración del sitio para la colección de sitios, y haciendo clic en Caché de resultados de sitio en la página Configuración del sitio para los sitios. Si la característica Infraestructura de publicación de Office SharePoint Server no se ha activado para la colección de sitios y la característica Publicación de Office SharePoint Server no se ha activado para el sitio, los vínculos Caché de resultados de la colección de sitios y Caché de resultados de sitio no aparecen en las páginas Configuración del sitio y no puede habilitar ni configurar el almacenamiento en memoria caché de resultados.

   

Para obtener más información acerca de cómo habilitar el almacenamiento en memoria caché de resultados, vea el artículo Almacenamiento en caché de resultados y perfiles de caché (https://go.microsoft.com/fwlink/?linkid=78928&clcid=0xC0A).

Consideraciones sobre el almacenamiento en memoria caché de resultados

Antes de decidir si se usará el almacenamiento en memoria caché de resultados para mejorar el rendimiento de la página y la representación de elementos de páginas, tenga en cuenta las ventajas y limitaciones de implementar el almacenamiento en memoria caché de resultados.

Éstas son algunas de las ventajas:

  • El almacenamiento en memoria caché de resultados es ideal para sitios web que no requieren actualizaciones de contenido cada minuto. En este entorno, los resultados almacenados en la memoria caché se pueden mostrar a los distintos usuarios sin tener acceso a la base de datos o volver a ejecutar el código o los controles que crearon inicialmente el código HTML de la página web.

  • El almacenamiento en memoria caché de resultados se puede usar para usuarios anónimos y autenticados, pero es más eficaz cuando el acceso es anónimo. Por lo tanto, habilite el acceso de usuario anónimo siempre que sea adecuado y factible para todo un sitio web o una parte de él.

Éstas son algunas de las limitaciones:

  • El almacenamiento en memoria caché de resultados consume memoria adicional para almacenar el código HTML para cada página almacenada en memoria caché. Asegúrese de instalar suficiente cantidad de memoria física para evitar problemas de paginación del sistema u otros problemas de memoria.

  • Cuando se usa con dos o más servidores web, el almacenamiento en memoria caché de resultados puede afectar a la coherencia. Puede configurar un perfil de memoria caché para que no compruebe si hay actualizaciones con cada solicitud y, por ejemplo, indicar que se pasen por alto los cambios realizados en la versión de la página web en la memoria caché de resultados hasta que transcurran 60 segundos desde que se actualice la página original. Si tiene dos servidores cliente web en la topología, y en función del equilibrador de carga usado para enrutar la solicitud del usuario, un lector podría ver incoherencias si la página es representada por un servidor y, a continuación, la siguiente solicitud se enruta al segundo servidor antes de que pasen 60 segundos. Si la comprobación de cambios está habilitada en el perfil de almacenamiento en memoria caché, se reducirá la eficacia del almacenamiento en memoria caché de resultados.

  • Si el almacenamiento en memoria caché de resultados está habilitado para los usuarios con permiso de escritura para una colección de sitios, es posible que estos usuarios no puedan ver los datos más actualizados en las páginas web en esa colección de sitios hasta que las páginas almacenadas en la memoria caché de resultados hayan expirado. Normalmente, esto no afecta directamente al contenido de una página web que el usuario esté actualmente cambiando o viendo, pero puede afectar a los datos acumulativos de una lista o una biblioteca como, por ejemplo, a los datos presentados desde el elemento web de una biblioteca de documentos. Por lo tanto, debe habilitar el almacenamiento en memoria caché de resultados únicamente para usuarios con permisos de solo lectura si desea estar seguro de que los usuarios con permisos de escritura pueden ver toda la información actual.

Comportamiento del almacenamiento en memoria caché de resultados

Puede especificar el comportamiento del almacenamiento en memoria caché de resultados en los niveles siguientes:

  • Colección de sitios

  • Sitio

  • Diseño de página

Un administrador de una granja de servidores, una colección de sitios o un sitio determinados puede optimizar el comportamiento del almacenamiento en memoria caché para el nivel para el que tiene privilegios administrativos si aplica diferentes perfiles de memoria caché. Por ejemplo, es posible tener acceso a la página principal de su sitio más a menudo y se puede usar un diseño de página exclusivo para la página principal, por lo que puede aplicar un perfil de caché especial a ese diseño único de página y reemplazar el comportamiento del almacenamiento en memoria caché de toda la colección de sitios. Por el contrario, puede configurar el perfil de memoria caché del diseño de la página con una mayor duración del almacenamiento en memoria caché. Esto permite optimizar la relevancia de los datos de la página principal donde puede permitirse la desventaja del rendimiento frente a la relevancia. Para las otras páginas del sistema, puede usar un perfil de caché diferente con una duración del almacenamiento en memoria caché más corta.

Almacenamiento en memoria caché de resultados de búsqueda

En un entorno que use la autenticación de usuario, nunca se deben almacenar en memoria caché los resultados de las búsquedas. Si lo hace, puede permitir que se revele información privilegiada a los usuarios no autorizados. Una consulta de búsqueda filtra su conjunto de resultados para mostrar sólo la información disponible para el usuario actual. Sin embargo, cuando almacena en la memoria caché los resultados de la búsqueda, el código que filtra el conjunto de resultados se omite y, por lo tanto, puede provocar que los usuarios no autorizados vean resultados a los que no deberían tener acceso. En un entorno anónimo, esto no constituye un problema porque todos los resultados de la búsqueda son resultados de solicitudes no autenticadas.

Si tiene habilitado el almacenamiento en memoria caché de resultados en la colección de sitios, puede deshabilitar el diseño de la página de resultados de búsqueda si lleva a cabo el procedimiento siguiente:

Deshabilitación del diseño de página de resultados de búsqueda

  1. En el sitio de nivel superior de la colección de sitios, haga clic en Acciones del sitio, seleccione Configuración del sitio y, a continuación, haga clic en Modificar toda la configuración del sitio.

  2. En la sección Administración de la colección de sitios de la página Configuración del sitio, haga clic en Caché de resultados de la colección de sitios.

  3. En la página Configuración de la caché de resultados de la colección de sitios, active la casilla Los diseños de página pueden utilizar un perfil de caché de resultados de página diferente y, a continuación, haga clic en Aceptar.

  4. En la página Configuración del sitio, en la sección Galerías, haga clic en Páginas maestras y diseños de página.

  5. En la página Galería de páginas maestras, seleccione SearchResults.aspx, haga clic en la flecha que aparece, haga clic en Editar propiedades en el menú que aparece y, a continuación, haga clic en Aceptar en el cuadro de diálogo que aparece.

  6. En la página Galería de páginas maestras: SearchResults, en la lista Perfil de caché autenticado, haga clic en Deshabilitado y, a continuación, haga clic en Aceptar.

  7. En la página Galería de páginas maestras, seleccione SearchResults.aspx, haga clic en la flecha que aparece y, a continuación, haga clic en Proteger en el menú que aparece.

  8. En la página Proteger, seleccione Versión principal (publicar) y, a continuación, haga clic en Aceptar . Los resultados de la búsqueda que usen ese diseño de página en particular ya no se almacenarán en la memoria caché.

Límite de bytes privados de ASP.NET

Si está habilitado el almacenamiento en memoria caché de resultados, puede que desee ampliar el límite predeterminado de ASP.NET 2.0 de bytes privados. Este límite indica a ASP.NET cuándo debe vaciar su memoria caché de resultados. Un vaciado antes de tiempo provoca una reducción del rendimiento innecesaria. Para obtener más información, vea el tema relativo al elemento caché para el almacenamiento en caché (esquema de configuración de ASP.NET) (https://go.microsoft.com/fwlink/?linkid=78934&clcid=0xC0A).

Versiones de páginas almacenadas en memoria caché

Ciertas páginas web pueden mostrar versiones ligeramente diferentes basadas en los usuarios o en otra lógica empresarial. Puede ampliar el almacenamiento en memoria caché de resultados mediante el uso de la API programable compatible para satisfacer la necesidad de almacenar en memoria caché los elementos de una manera diferente. Para obtener más información, vea el tema relativo al Procedimiento para ampliar el almacenamiento en caché mediante el controlador de eventos VaryByCustom (https://go.microsoft.com/fwlink/?linkid=78935&clcid=0xC0A).

Almacenamiento en memoria caché de resultados y fuentes RSS del elemento web Consulta de contenido

El elemento web Consulta de contenido ofrece la opción de proporcionar fuentes RSS de los resultados que muestra. Esta fuente RSS es generada por una página .aspx en el servidor, que genera el código XML de la fuente RSS en función de los mismos resultados que muestra el elemento web Consulta de contenido.

Puesto que los clientes RSS a menudo solicitan una fuente RSS del servidor de forma periódica, por ejemplo cada 30 minutos, es importante que la generación de la fuente RSS tenga un rendimiento adecuado. Por tanto, la página .aspx de la fuente RSS implementa el almacenamiento en memoria caché de resultados. En el origen del archivo .aspx, verá la siguiente línea:

<%@ OutputCache Duration="300" VaryByParam="xsl;web;page;wp" VaryByCustom="rights;feedresults"%>

Esto significa que, de manera predeterminada, el sistema almacena las fuentes RSS de consultas de contenido en memoria caché durante cinco minutos (300 segundos), almacena en memoria caché versiones únicas de las fuentes RSS para cada elemento web Consulta de contenido y almacena en memoria caché versiones únicas de las fuentes RSS para usuarios con permisos y resultados de fuentes distintos.

Si desea personalizar este almacenamiento en memoria caché de resultados, puede crear su propia página .aspx de fuentes que implemente la misma lógica, pero que tenga una configuración diferente de la memoria caché de resultados. A continuación, los elementos web Consulta de contenido pueden hacer referencia a la página .aspx de fuentes personalizada en lugar de a la página predeterminada.

Además, se puede deshabilitar el sitio del centro de búsqueda completo para deshabilitar la memoria caché de resultados si tiene otras páginas en ese sitio que son confidenciales y tienen el mismo problema de seguridad. Para deshabilitar la memoria caché de resultados para el sitio del centro de búsqueda, realice el siguiente procedimiento:

Deshabilitación de la memoria caché de resultados para el sitio del centro de búsqueda

  1. En el sitio de nivel superior de la colección de sitios, haga clic en Acciones del sitio, seleccione Configuración del sitio y, a continuación, haga clic en Modificar toda la configuración del sitio.

  2. En la sección Administración de la colección de sitios de la página Configuración del sitio, haga clic en Caché de resultados de la colección de sitios.

  3. En la página Configuración de la caché de resultados de la colección de sitio, en la sección Directiva de caché de resultados de página, active la casilla Los diseños de página pueden utilizar un perfil de caché de resultados de página diferente y, a continuación, haga clic en Aceptar.

  4. En la barra de navegación, haga clic en la ficha Buscar.

  5. En la página principal del centro de búsqueda, en el menú Acciones del sitio, seleccione Configuración del sitio y, a continuación, haga clic en Modificar toda la configuración del sitio.

  6. En la página Configuración del sitio del centro de búsqueda, en la sección Administración del sitio , haga clic en Caché de resultados de sitio

  7. En la página Configuración de la caché de resultados del sitio de publicación, en la sección Perfil de caché autenticado, seleccione el botón de opción Heredar el perfil “Deshabilitado”.

  8. Además, puede activar la casilla Aplicar esta configuración a todos los subsitios si desea deshabilitar la memoria caché de resultados autenticada para todos los subsitios.

Almacenamiento en memoria caché de objetos

Office SharePoint Server 2007 admite el almacenamiento en memoria caché de determinados elementos de página, como los datos de navegación y los datos obtenidos a través de consultas en todas las listas. El almacenamiento en memoria caché de elementos de página reduce la necesidad de recuperar los datos de campo de la base de datos cada vez que se representa una página. El sistema de almacenamiento en memoria caché también almacena en memoria caché datos de campo completo para una página, excepto los datos de los controles de elementos web en la página.

Optimización de la memoria caché de objetos

El tamaño del almacenamiento en memoria caché de objetos se establece en 100 MB por colección de sitios de forma predeterminada, pero esta configuración se puede modificar para cada colección de sitios y ajustar las características del sitio web. Puede usar un conjunto de contadores de rendimiento para optimizar el tamaño de la memoria caché de objetos. El nombre del objeto de contador de rendimiento es Objeto de caché de publicación de SharePoint. Según la proporción de aciertos de memoria caché y el cambio en los contadores de descarte de objetos, puede establecer el tamaño de la memoria caché de objetos según corresponda. Tenga en cuenta los siguientes elementos cuando configure este límite:

  • Comience con un valor bajo (como 200 MB) y supervise la proporción de aciertos de memoria caché y contador de descarte de objetos. Una proporción de más del 90% de aciertos y una tasa de descarte de objetos baja son generalmente un buen indicador de que el tamaño actual es suficientemente grande. Sin embargo, también debería medir el tiempo de respuesta del usuario en algunas operaciones clave para ajustar esta configuración.

  • Si establece un tamaño demasiado grande, puede malgastar una cantidad de memoria valiosa para las demás memorias caché, como la memoria caché de resultados de ASP.NET si se usa. Ciertos elementos web, como el elemento web Consulta de contenido, almacena su hoja de estilos XSLT en una memoria caché de resultados. Si el tamaño de la memoria caché de objetos que se establece es demasiado grande, ASP.NET puede vaciar la memoria caché de resultados para disponer de espacio. El uso de la CPU puede aumentar tras el vaciado, lo que resulta especialmente importante para los sistemas que ejecutan un sistema operativo de 32 bits, ya que cada proceso de trabajo está limitado a un espacio de memoria de aplicación de 2 GB. Si establece un límite de tamaño de la memoria caché de objetos demasiado grande, el proceso de trabajo de IIS (W3WP) se puede quedar sin memoria.

Almacenamiento en memoria caché de consultas en todas las listas

La memoria caché de objetos también se usa para almacenar en memoria caché elementos que se recuperan como parte de consultas en todas las listas. Estas consultas agregan elementos de varias listas y sitios de su colección de sitios. El uso más común de estas consultas se encuentra en el elemento web Consulta de contenido. Cada uso de la consulta en todas las listas requiere una acción de ida y vuelta al servidor de la base de datos. Mediante la memoria caché de objetos, puede reducir considerablemente el número de acciones de ida y vuelta necesarias para atender las consultas en todas las listas y, por lo tanto, mejorar el rendimiento de características, como el elemento web Consulta de contenido, que presentan resultados de consultas en todas las listas.

Comprobación de actualizaciones

Puede configurar la memoria caché de la consulta en todas las listas para buscar actualizaciones y actualizar de forma condicional la memoria caché de esta dos formas:

  • Al comprobar los cambios realizados en la colección de sitios. Si se han realizado cambios, se usan los resultados almacenados en memoria caché.

  • Esperando un período de tiempo, durante el cual se usarán los resultados almacenados en memoria caché y tras el cual se enviará una consulta para actualizar la memoria caché.

La primera opción es útil en casos donde se producen frecuentes cambios en el contenido de la colección de sitios que muestra la consulta en todas las listas y donde es importante que la consulta muestre la información más reciente. Un ejemplo de este caso es un sitio del portal de intranet de una división, que muestra una consulta en todas las listas de los documentos más recientes del sitio. En este sitio, muchos usuarios son colaboradores y puede ser importante ver los documentos más recientes que han publicado los usuarios.

La segunda opción es útil en casos donde no se producen cambios frecuentes en el contenido de la colección de sitios y donde es menos importante que la consulta en todas las listas muestre la información actualizada. Un ejemplo de este caso es un sitio de Internet público, que muestra una consulta en todas las listas de las páginas con los artículos más recientes que se han publicado en el sitio. En este sitio, la mayoría de los usuarios son usuarios anónimos o usuarios autenticados con derechos de solo lectura. En este caso, unos minutos de retraso para los artículos más recientes no es algo crítico.

Para configurar la memoria caché de consulta en todas las listas, puede realizar el siguiente procedimiento.

Configuración de la memoria caché de consulta en todas las listas

  1. En la página principal del sitio, en el menú Acciones del sitio, seleccione Configuración del sitio y, a continuación, haga clic en Modificar toda la configuración del sitio.

  2. En la sección Administración de la colección de sitios de la página Configuración del sitio, haga clic en Caché de objetos de la colección de sitios.

  3. En la sección Cambios en la caché de consulta en todas las listas, seleccione el botón de opción correspondiente en función de cómo desee actualizar la memoria caché de consultas en todas las listas. Si selecciona la opción Usar el resultado almacenado en caché de una consulta en todas las listas durante el siguiente número de segundos, escriba un valor en el cuadro de texto que represente el número de segundos que esperará la memoria caché antes de que se actualice.

  4. Haga clic en Aceptar para guardar los cambios.

Número de elementos que recuperar

La configuración de Multiplicador de resultados de consulta en todas las listas controla el número de elementos que se recuperan y que se almacenan en memoria caché. Debido a que las consultas en todas las listas pueden recuperar elementos para varios usuarios con distintos permisos, es importante recuperar suficientes elementos de la consulta de modo que todos los usuarios vean los elementos correctos. Para garantizar que todos los usuarios vean los elementos correctos en los resultados de la consulta tras los recortes de seguridad, la memoria caché de consulta en todas las listas debe extraer más resultados de los solicitados originalmente. Esta configuración requiere un entero que especifique el multiplicador del número de elementos que debería recuperar la memoria caché de consulta en todas las listas.

  • Establecer el multiplicador para un valor mayor recupera más elementos y consume más memoria. Un valor mayor es adecuado en un sitio web donde muchos usuarios tengan permisos únicos en diferentes listas y elementos.

  • Establecer el multiplicador para un valor menor recupera menos elementos y consume menos memoria. Un valor más pequeño es adecuado en un sitio web donde los usuarios tengan la misma seguridad, como los usuarios anónimos en un sitio de Internet.

Configuración del multiplicador de resultados de consulta en todas las listas

  1. En la página principal del sitio, en el menú Acciones del sitio, seleccione Configuración del sitio y, a continuación, haga clic en Modificar toda la configuración del sitio.

  2. En la sección Administración de la colección de sitios de la página Configuración del sitio, haga clic en Caché de objetos de la colección de sitios.

  3. En el cuadro Multiplicador de resultados de consulta en todas las listas, escriba un número para especificar el múltiplo de elementos que recupera la consulta en todas las listas.

  4. Haga clic en Aceptar para guardar los cambios.

Almacenamiento en memoria caché basada en disco de BLOB

Los controles de almacenamiento en memoria caché basada en disco controlan el almacenamiento en memoria caché para objetos binarios grandes (BLOB) como archivos de imagen, sonido y vídeo, así como fragmentos de código. El almacenamiento en memoria caché basada en disco reduce la necesidad de acciones de ida y vuelta a la base de datos para tener acceso a los BLOB. Los BLOB se recuperan de la base de datos una vez y se almacenan en los servidores web. Las solicitudes posteriores son atendidas desde la memoria caché basada en disco y restringidas en función de la seguridad.

Consideraciones

  • Puede configurar el tamaño de la memoria caché basada en disco para cada aplicación web. El valor mínimo es 1 GB y puede aumentarlo en múltiplos de gigabytes. Asegúrese de que hay suficiente espacio en disco para la aplicación.

  • Existen varios valores de configuración que se pueden establecer en la memoria caché basada en disco. En concreto, tenga en cuenta estas dos opciones:

    • Max-age especifica la cantidad máxima de tiempo en segundos que el explorador cliente almacena en memoria caché los BLOB descargados en el equipo cliente. Si los elementos descargados no han expirado desde la última descarga, no se vuelven a solicitar los mismos elementos hasta que expire la memoria caché. El atributo max-age se establece de forma predeterminada en 86400 segundos (es decir, 24 horas), pero se puede establecer en un período de tiempo de cero o mayor. Cuanto más tiempo establezca para este valor, más tiempo tardará el explorador en obtener los elementos actualizados.

    • Path especifica, en forma de expresión regular, qué archivos se almacenan en memoria caché en función de la extensión de archivo. De forma predeterminada, incluye las extensiones de archivo GIF, JPG, PNG, CSS y JS. Si tiene tipos de archivos especiales a los que hacen referencia sus páginas web, debe almacenarlos en la memoria caché.

  • El almacenamiento en memoria caché basada en disco sólo se aplica a los elementos de una biblioteca de documentos. Si almacena los recursos fuera de una biblioteca de documentos, como una carpeta debajo de un sitio, los elementos no son controlados por la memoria caché basada en disco aunque la habilite para toda la aplicación web. Esto es importante si desea controlar la configuración de max-age de los recursos BLOB descargados en el explorador cliente. De forma predeterminada, el valor de max-age para todos los elementos almacenados en Office SharePoint Server se establece en cero.