Este documento presenta una guía para optimizar SharePoint para grandes volúmenes de información. Explica los componentes clave de SharePoint y SQL Server, y recomienda arquitecturas para implementaciones pequeñas, medianas y grandes. También ofrece consejos sobre buenas prácticas para el frente y el back-end, e introduce la tecnología Remote BLOB Storage (RBS) para almacenar archivos binarios grandes de forma remota.
2. Eladio Rincón y Daniel Seara
SolidQ Global SL
http://blogs.solidq.com/ElRinconDelDBA
http://blogs.solidq.com/sharepoint
@daniel_seara y @erincon
SQL
Server
SharePoint
Server
3. Agenda
• Introducción
• Componentes de SharePoint
• Arquitecturas
• Retos del Binomio SharePoint – SQL Server
• Buenas practicas del Front-End
• Buenas practicas del Back-End
• Introducción y Caso Práctico de RBS
• Conclusiones
3
4. Componentes de SharePoint 2013
-
Servidores Web – Front-End
-
NLB configurado aparte
-
Servidores de Aplicaciones
-
Request Management *
Distributed Cache *
Office Web App en servidor separado
Search + components
-
Servidor(es) de BD – Back-End
-
Separación de Roles
-
Comunicaciones entre Servidores
-
Latencia <1ms al 99,9%
Ancho de banda >1 gigabit por segundo
4
5. Arquitectura Tipo-Small
Un servidor
• Rol de Frontal Web
• Rol de Servidor de Aplicaciones
Un servidor
• Office Web
Applications
• Rol de Servidor de BD
5
6. Arquitectura Tipo-Medium
Caso Real de Granja Mediana
- Usuarios = 4000
- #Documentos >= 1M
- Total GB = 300 GB
Front-End
Balanceo de carga
Servidor de Aplicaciones
- Search: Crawl, Index
- Excel, Visio, Metadatos,
…
Back-End
Cluster de SQL Server
6
7. Arquitectura Tipo-Large
4 Servidores Frontales
en Balanceo de Carga
32 GB RAM, 2 Quad @ 2,33,
HW NLB, 300GB
4 Servidor de
Aplicaciones
64GB, 4 six core @ 2,4, HW
NLB, 300GB, 1 Gigabit
BackEnd – Cluster de
SQL Server
32 GB, 4 quad @2.4, (1.25 TB
* 7), SQL Data (4), Logs (1),
TempBD (1), Backup (1)
- MSFT: Intranet
Empresarial
de Colaboración
-
Usr = 90.000/día
RPS = 700
RPD= 19.000.000
#Items: 23 M
7
8. Y en mi caso, ¿Qué arquitectura debería
usar?
Capacity Planning
1.
Usuarios Concurrentes
2.
Peticiones por Segundo (RPS)
3.
Peticiones por Día (RPD)
4.
Usuarios Activos por Día
5.
Distribución de la Carga de Trabajo
8
11. Back-End: Buenas Prácticas
Crear las Bases de Datos en SQL Server
• El asistente usa model como plantilla
• 1 Mb de tamaño inicial
• Crecimiento en segmentos de a 1 Mb
• Base de datos de configuración de la granja
• 60 Mb
• 20%
• Base de Datos de Administración Central
• 120 Mb
• 20%
• Base de datos de contenido
• Depende del estimado inicial
• No debiera ser menor a la de Administración Central
19. Latencias en Servidor ¿RBS?
Mucho contenido y grande
• >= 1MB
Muchos lectores
• Gestión Memoria
Pocos cambios
• En archivos candidatos
Límites de recursos
• Memoria, CPU, Disco
19
20. ¿Qué es RBS?
Local FILESTREAM
Application
SQL Server
Application
Database
RBS Client
Library
RBS Aux
Resources
Provider
Library
BLOB Store
(File Group
And tables)
20
21. ¿Qué es RBS?
Remote FILESTREAM
Application
RBS Client
Library
Provider
Library
SQL Server
Application
Database
RBS Aux
Resources
BLOB Store
Database
BLOB Store
(File Group and tables)
***** a través de terceros *****
21
22. Cuando no usar RBS para SharePoint
Reducción de espacio
Bases de datos más grande
Mejores Backups
Mejores lecturas < 1MB
Sin mantenimiento
22
26. Conclusiones
• Evaluar Métricas lo más temprano posible
• Reacciona con tus posibilidades
• Realista y anticipa Necesidades
• Seguimiento y Evaluación Continua
• Gestión adecuada de Infraestructura
• SQL DBA + SPS Admin + Recursos
26
WorkingwithResquest Management: http://blogs.technet.com/b/speschka/archive/2012/09/14/working-with-request-manager-in-sharepoint-2013.aspx¿Qué es Request Management? http://blogs.technet.com/b/hablamoss/archive/2013/03/13/sps-2013-request-management-m-243-dulo-principal-y-terminolog-237-a.aspxSP2013 Topologias.http://zoom.it/t7G3#fullSP2013 Ejemplo de MS: http://zoom.it/AgjL#fullExplica Distributed Cache: http://zoom.it/t7G3#fullConexión entre ServidoresSoportadasgranjas con servidores en distintos Data Center, siempreque:Latencia sea <1ms al 99,9%Velocidad de ancho de banda sea comomínimo 1 gigabit porsegundo
Optimizar el servidor de desarrollo: http://www.spdeveloper.co.in/sharepoint2013/optimizing-the-configuration-of-development-farm.aspxApropiado para:Entornos de desarrollo y pruebasEntornos con menos de 100 usuariosConsejos:Limitar el uso de memoria de los servicios de búsqueda (noderunner)Limitar el uso de memoria de CachéDistribuidaLimitar la creación de Aplicaciones Web (w3wp)
Aquí hay dos opciones, o bien hacer lo que la mayoría de consultores de SharePoint, es decir, fijarnos en las recomendaciones que da Microsoft para entornos similares y por seguridad, incrementar algo los recursos hardware o bien estudiar los distintos casos reales que están funcionando bien similares al nuestro. Ajustarnos a esos parámetros iniciales y hacer un seguimiento de los recursos, contadores de rendimiento, etc. En las dos slides siguientes veremos dos casos reales de implementación de granja mediana y grande.
Enterprise intranet collaborationenvironmenttechnical case study (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ff758650.aspx
Realizar un estudio de características de nuestro sistemaCapacityPlanningUsuarios ConcurrentesPeticiones por Segundo (RPS)Peticiones por Día (RPD)Usuarios Activos por DíaDistribución de la Carga de Trabajo
BLOB Cache: consiste en habilitar una caché a nivel de WFE donde se almacenan los archivos tipo blob (grandes), los cuales en lugar de ir a pedirse al SQL Server, son proporcionados directamente por el servidor web. Ideal para entornos de balanceo de carga donde se realizan muchas peticiones de lectura.Para configurarlo, hay que hacerlo a nivel de web.config de cada servidor web:We need to change the web.config to enable the BLOB cache. Find the BlobCache tag on the configuration/SharePoint node on the web.config. Here is an example of a configured Blob Cache:<BlobCache location=”C:\BlobCache\14″ path=”\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$” maxSize=”10″ enabled=”true” max-age=”36000″ />The location attribute defines where SharePoint is going to save the cached files.The path attribute represents a regex defining the file extensions to be cached.The maxSize attribute defines the maximum size of the cache in Giga bytes.The enabled attribute defines if the cache is enabled.The max-age attribute defines the maximum time in seconds the browsers can cache the files locally and avoid making requests for these file to the server. This setting affect how the users’ browser cache the files defined on the path attribute.Más info: http://rajinihasan.blogspot.com.es/2011/02/sharepoint-blobcache-explained.htmlObject CacheCaché que se encarga de hacer el cacheo de objetos SharePoint, tales como listas, bibliotecas, sitesettings y page layouts, etc..Más info: http://technet.microsoft.com/en-us/library/cc261797.aspxOutPut CacheEs una caché de HTML evita el tener que mandar a renderizar le contenido a SharePoint, simplemente sirve el HTML cacheado. Ideal para entornos de publicación con muchas Request Per Second.Caché configuration: http://myspworld.wordpress.com/2012/05/09/sharepoint-2010-cache-configuration/Kerberos: http://windows-scripting.org/2010/11/01/sharepoint-performance-tuning/
Configuracion de memoria: SQL Max Memory = TotalPhyMem - (NumOfSQLThreads * ThreadStackSize) - (1GB * CEILING(NumOfCores/4))NumOfSQLThreads = 256 + (NumOfProcessors*- 4) * 8 ThreadStackSize = 2MB on x64 or 4 MB on 64-bit (IA64) (* IfNumOfProcessors > 4, else 0)Validar que el collation por defecto en la instancia es: Latin1_General_CI_AS_KS_WSEl grado máximo de paralelismo en la instancia de SQL Server debe estar configurado a 1
Separación de archivos por naturaleza: separar datos y logs fundamentalmenteTambién separar datos de tempdb
Ubicación de archivos normalmente para Archivos de datos: crearlos de igual tamaño vigilar su crecimiento teóricamente SQL Server distribuye de forma homogeneraAlmacenamiento de archivosDependeMultiples ArchivosCuanto antesDificil reorganizerNúmero de FilegroupsSólouno
Por defecto todo sucede en un único coreUtilizando ResourceGovernor se puede “sobre-escribir” el valor por defectoRecomendación: utilizar ResourceGovernor para que las tareas de mantenimiento se ejecuten bajo un usuario concreto que tiene habilitados múltiples cores para esas operaciones.Las operaciones DBCC por defecto en SQL Server se realizan multi-coreAl estar el grado de paralelismo a 1 se harán con 1 sólo coreEs deseable hacerlo multi-core.Si por casualidad tiene otra isntalacion SQL Server que necesita deshabilitar paralelismo para dbcccheckdb: trace flag 2528
http://technet.microsoft.com/en-us/library/ee748649.aspxMost optimal use of RBSBecause RBS is a solution created for a specific set of conditions, there is an optimal use of RBS in which the benefits outweigh the costs. The optimal environment for using RBS is an environment where the following is true:You want to store fewer large BLOBs (256 KB or larger) for read-intensive or read-only access.The resources on the computer that is running SQL Server might become a performance bottleneck.The expense of high-cost drive space is greater than the expense of increased IT operations complexity that might be introduced by using RBS.Least optimal use of RBSRBS is not a good solution for all environments. The costs will outweigh the benefits in some circumstances. The least optimal environment for using RBS would be an environment where the following is true:You want to store many small BLOBs (256 KB or less) for write-intensive access.The resources on the computer that is running SQL Server are not a performance bottleneck.The expense of increased IT operations complexity that might be introduced by using RBS is greater than high-cost drive space.
Cuando las lecturas son de menos de 1MB (hay literatura que indica <256Kb) no existen mejorasSi el % de accesos a estos documentos no es alto, no sirve para muchoLos backups siguen siendo necesarios porque el Filestream está incluido en los backups
Cuando las lecturas son de menos de 1MB (hay literatura que indica <256Kb) no existen mejorasSi el % de accesos a estos documentos no es alto, no sirve para muchoLos backups siguen siendo necesarios porque el Filestream está incluido en los backups
Cuando las lecturas son de menos de 1MB (hay literatura que indica <256Kb) no existen mejorasSi el % de accesos a estos documentos no es alto, no sirve para muchoLos backups siguen siendo necesarios porque el Filestream está incluido en los backups