martes, 20 de diciembre de 2016

Optimizando SQL Server para Granjas de SharePoint

Ya han pasado 16 años de evolución de la plataforma de SharePoint y así como los seres humanos somos entre el 70% y 80% agua así SharePoint es 80% base de datos por lo menos, así que debemos de cuidar de este recurso  tan vital para SharePoint y debemos de empezar configurando SQL Server de forma optima para el funcionamiento de una Granja de SharePoint.



Aspectos Físicos
Desde su concepción debemos de cuidar cosas como:

1) Velocidad de Lectura y Escritura de los discos asignados SQL Server. Hoy en día estamos en un mundo virtual así que muy probablemente se asignen recurson de almacenamiento  de la SAN pero debemos de incliniarnos por tener los discos más veloces posibles para ellos, y no asumir que porque es una SAN ya es seguro que tiene discos veloces, hemos visto que SANs con pesimo rendimiento debido a los discos utilizados para este dispositivo de almacenamiento masivo.  Discos de estado solido sería la mejor apuesta en cuento a rendimiento.

3) Distribución de discos una buena practica es tener entre 5 y 7 Discos distribuídos de la siguiente forma:
         Disco 0 - Sistema Operativo   (2 veces la RAM de espacio libre + 1 Gb para Memoria Virtual)
         Disco 1 - Page File (Memoria Virtual)   (1.5 del total de la RAM)
         Disco 2 - Instalación de SQL Server y otro software como antivirus, firewall, etc) 
         Disco 3 - Bases de datos de Sistema de SQL Server (Master, TempDB, * )
         Disco 4 - Archivos de Datos de base de datos
         Disco 5 - Archivos de Logs de base de datos
         Disco 6 - Para uso temporal (Backups, copia de arhivos y otros usos)

* Para establecer el tamaño máximo de la base de datos tempdb requerido podemos utilizar un factor sencillo como el volumen total de bases de datos esperado por 5%  factor obtenido de experiencia de instalaciones que tenemos sobre SharePoint o algo mucho más complejo  pueden consutlar el siguiente enlace de Microsoft:
https://technet.microsoft.com/es-es/library/ms345368(v=sql.105).aspx  

2)  Virtualizar o físico aunque esto ya no debería ser un tema de discusión todavía hay personas que piensas que lo físico tiene mayor rendimiento que lo virtual y en nuestra experiencia las brechas son muy cerradas y el gran inconveniente de lo físico es su capacidad de crecimiento por lo que recomiendo siempre se vayan por una opción virtual y dejen el mito que Servidor de base de datos físico es una mejor apuesta.


Aspectos de Instalación
Una malisima práctica es Instalar todos las características disponibles de SQL Server para una instalación de SharePoint.  Esto no solo resta recursos inecesariamente sino que amplia la brecha de ataque malisioso o de puntos de falla de SQL Server y es a lo que menos queremos exponernos.

Las características mínimas recomendadas para SharePoint Standard son:

  Database Engine
  Full Text Search
  Connectivity Client Tools
  Management Studio Tools
  Reporting Services for SharePoint (Opcional, para versiones 2010 en adelante)

Para SharePoint Enterprise son:

Database Engine, Full Text Search, Client Connectivity and Management Tools, PowerPivot for SharePoint, SSRS SharePoint Integration, Analysis Services

No deberemos incluir cosas como SQL Server Integration Services, tampoco SDKs, Reporting Services Nativo, y el resto de características no mencionadas arriba, no las instale.

Aspectos de Configuración 
Para el  Motor de base de Datos de SQL Server Para SharePoint las propiedades que debemos de modificar y validar son:

https://technet.microsoft.com/en-us/library/hh292622.aspx

Memoria 

 Memoria del Servidor Máxima: 65% y 75% 
 Memoria del Servidor Mínima : 35% del Valor de la memoria Máxima

Procesadores
   Validar que esten hablitados todos los procesadores y que NO este habilitado Boost SQL Server Priority.  Microsoft no recomienda utilizarla y la eliminará en el futuro.
https://msdn.microsoft.com/en-us/library/ms188709.aspx

his feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

Configuración de base de datos
Default index fill factor 80.  Este valor es optimo para el crecimiento y reducir la fragmentación de los índices

https://msdn.microsoft.com/en-us/library/ms177459.aspx
https://technet.microsoft.com/en-us/library/cc262731(v=office.14).aspx


Opciones
Modelo de Recuperación Simple.   Solo si el negocio le solicita recuperar la ultima transacción de un desastre, no esta en alta disponibilidad su granaja  y tiene una disciplina de Backups Completos e incrementales se recomienda Full.  De lo contrario evitese lidiar con grandes arhivos Logs cambiandolo al modelo Simple y  luego haga un shrink al archivo log de base de datos.

Avanzado
Max Degree of Parallelism = 1.  Esto es para asegurar que un solo proceso de SQL Server sirve para cada solicitud.  https://msdn.microsoft.com/en-us/library/ms189094.aspx


Crecimiento de los archivos
Los archivos de base de datos deberemos colocarlos sin restricción con autocrecimiento pero en vez de un porcentaje asignele un valor en MB que puede ser entre 100 Mb y 2,000 MB dependiendo del volumen de los documentos que se suban a SharePoint o el volumen de transacciones.

Por ultimo un plan de mantenimiento de base de datos siempre es importante para mantener los datos a salvo y disponible eso será el próximo artículo que les escribiré amigos lectores.

Estas prácticas lo ayudaran a tener optimo el servidor de base de datos y funcionando de forma balanceada para garantizar la disponibilidad y buen funcionamiento de SQL Server para SharePoint.

SharePoint4Fun, 

Juan Manuel Herrera







No hay comentarios.: