This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

SharePoint 2010: Técnicas para minimizar los tiempos de carga!

Cuando se crean soluciones, WCM o no, en SharePoint 2010, uno de los factores a mirar en detalle es el rendimiento de carga de las páginas de publicación y/o otras páginas que pudiesen formar parte de la solución. Para asegurar un buen rendimiento de carga de las páginas hay varias técnicas que se pueden aplicar como por ejemplo:

  • A nivel de configuración de los servidores que forman parte de la granja:
    • Usar la compresión de IIS para optimizar el uso del ancho de banda disponible de forma que no se penalice el acceso a través de dispositivos móviles a nuestros sitios, haya unos buenos tiempos de respuesta, etc. IIS proporciona compresión para archivos estáticos, respuestas dinámicas de aplicación o ambos.
  • A nivel de instalación de la plataforma, configurarla para que los directorios de trabajo de SharePoint se ubiquen en discos dedicados de manera que se evite que SharePoint tenga que “luchar” con el sistema operativo a la hora de escribir en disco.
  • A nivel de configuración de la granja:
    • Centralizar en una ubicación la generación de los logs de IIS relativa a sitios de SharePoint.
    • Habilitar cacheado en distintos niveles:
    • Frontales Web (cacheado en cliente).
    • Servidores de base de datos (reducir el número de round trips al servidor).
    • Cache de salida (Output cache), propia de sitios de publishing y que se configura a nivel de colección de sitios.
    • Cacheado en disco usando BLOB cache.
    • Cacheado de objetos.
  • A la hora de configurar los distintos niveles de caché comentados:
    • Blob cache que se habilita a nivel de Web.Config de manera que se aplica a todas las colecciones de sitios y sitios definidos en la Web Application cuyo Web.Config hemos configurado. Esta caché se almacena directamente en los discos de los frontales web, de manera que la primera vez que se hace una petición a una página los archivos de caché se copian desde la BD a los discos de manera que a partir de ese momento las nuevas peticiones de la página van contra la caché. Por defecto está caché está deshabilitada.
    • Page Output cache que se puede configurar a través de la interfaz de usuario como se ha comentado para sitios de publishing. Esta cache almacena el renderizado de una página y las diferentes versiones de la página cacheada en base a los permisos e los usuarios que solicitan en la página. Esta cache se puede configurar en los siguientes niveles: colección de sitios, sitio y layou de página. De nuevo, por defecto está deshabilitada.
    • Object cache que reduce la cantidad de tráfico entre frontales web y servidores de BD almacenando objetos como listas, bibliotecas, y otros en memoria (memoria de los frontales web). Esta caché se puede configurar a nivel de aplicación web o de colección de sitios
  • A nivel de configuración de servicios y aplicaciones web, tener en cuenta la documentación de SW boundaries limits de SharePoint 2010 en cuanto a:
    • Minimizar el número de Application Pools necesarias.
    • Crear Applications Pools dedicados para personalizaciones.
    • Realizar un planning y dimensionado adecuado del crecimiento de la BD de contenidos de una cierta aplicación web para prever la creación de nuevas BDs de contenido si es necesario.
  • Comprimir los archivos JavaScript que se utilicen. Para ello, podemos utilizar cualquier compresor que tenemos en línea y que elimina espacios en blanco y retornos de carro de manera que dichos archivos pesen lo menos posible. Un ejemplo de compresor en línea es el siguiente: http://javascriptcompressor.com/.
  • De la misma forma, comprimir todos aquellos archivos que se puedan comprimir como páginas HTML u hojas de estilo.
  • Combinar archivos JavaScript o CSSs en pocos archivos (a más archivos, más se penaliza el rendimiento). La siguiente figura muestra una serie de guías para garantizar que este tipo de elementos no afecten a la carga de página:

image

  • Otras posibilidades relacionadas con la carga de archivos son las siguientes:
    • Usar CDN para la carga de ciertas librerías JavaScript como puede ser la de jQuery.
    • Eliminar comentarios en archivos JavaScript y CSS que ocupan espacio innecesario.
    • Deshabilitar el ViewState de nuestros controles siempre que sea posible.
    • Usar técnicas de Lazy Loading de contentidos.
    • Eliminar la carga de ciertos archivos JavaScript para usuarios anónimos. Por ejemplo, los usuarios anónimos no van a usar la Ribbon de SharePoint 2010 por lo que no sería necesaria la carga de SP.Ribbon.js.
  • A nivel de desarrollo, seguir buenas prácticas para evitar que todo ensamblado que despleguemos en SharePoint tenga zonas de código muerto o fugas de memoria. Para el primer caso, necesitaremos emplear técnicas de “Code Analysis” que nos permitan detectar dichas zonas de código muerto. Para el segundo caso, usaremos herramientas conocidas como SPDisposeCheck que se integra con Visual Studio y nos permite utilizar buenas prácticas en desarrollo para SharePoint 2010.

Por supuesto, aparte de todas las opciones anteriores que implican un trabajo más o menos manual para asegurar un buen rendimiento de nuestros de nuestros despliegues y solucione SharePoint, tenemos la posibilidad de usar productos de terceros que por ejemplo se encarguen de comprimir los archivos JavaScript, HTML o CSS que forman parte de nuestra solución. Finalmente os dejo una serie de referencias de interés sobre estos temas:

Técnicas para reducir la carga de páginas de SharePoint:

Técnicas a nivel de desarrollo para asegurar un buen rendimiento:

Published 15/4/2012 19:34 por Juan Carlos González Martín

Comparte este post:

Comentarios

# re: SharePoint 2010: Técnicas para minimizar los tiempos de carga!@ Tuesday, April 17, 2012 11:25 AM

JC, excelente post. Obligada lectura!!

Muchas gracias.

Luis Mañez

# SharePoint 2010: Resumen de posts (XXX)!@ Tuesday, May 1, 2012 11:36 AM

Como siempre , después del recopilatorio de enlaces interesantes sobre SharePoint 2010 os dejo el resumen

Blog del CIIN