lunes, 9 de enero de 2017

Job de Papelera de Reciclaje puede provocar caida de un sitio en SharePoint

Este caso nos tuvo casí un mes en la búsqueda de la causa del problema.



El problema:

La colección de sitios principal y primaria de SharePoint reportaba caídas aleatorias en las mañanas entre las 6 y 7 de la mañana.  Esto no sucedia a diario y la forma de corregir el problema era que el usuario reiniciaba tanto el servidor de SQL Server como el Front-End.

El Error:

01/06/2017 06:12:40.46  w3wp.exe (0x05C8)                        0x1624 SharePoint Foundation          Database                       fa45 High     System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.     at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)     at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)     at System.Data.SqlClient.SqlConnection.Open()     at Microsoft.SharePoint.Utilities.SqlSession.OpenConnection() cc94ec34-1e2f-46d3-a524-1aa20ebf64e4
ConnectionString: 'Data Source=SQL_ALIAS_NAME;Initial Catalog=WSS_Content_xxxxx;Integrated Security=True;Enlist=False;Asynchronous Processing=False;Connect Timeout=15'

El Escenario:
Versión de SharePoint Server: 2010
Edición de SharePoint Server: Enterprise
Versión de actualización de Producto: 14.0.6109.5002 (SP1 + Cu Agosto 2012)
Versión Sistema Operativo: Windows 2008 R2 Enterprise SP1 (Fuera de Soporte)
Versión de SQL Server: SQL Server 2008 R2 SP1 (Fuera de Soporte)
Cantidad de Servidores 3:  1 Servidor Front-End/App Server  2 Servidores SQL Server
Configuración de Servidores:


Front End (Fisico)
16 GB RAM
2 procesdores
2 Discos (1 hd 200 Gb, 2 hd 150 Gb)
BackEnd 1 (Fisico)
16 GB RAM
2 procesdores
2 Discos (1 hd 200 Gb, 2 hd 2 Tb)
BackEnd 2 (Virtual)
2 procesdores
2 Discos (1 hd 200 Gb, 2 hd 300 Gb)
Tamaño de base de datos de contenido  principal (1.4 TB)

La causa:
SharePoint Server 2010 en adelante tiene un proceso de limpieza de la papelera de reciclaje de cada base de datos de contenido llamada Recycle Bin (Podemos encontrar en la sección de monitoreo ) Job Definitions.  Este proceso intentaba eliminar una biblioteca de 500 Gb que fue eliminada hace un mes y el tiempo definido para ejecutar este proceso 5 horas no era suficiente para eliminarla, por lo que mantenia ocupada la conexión o bien realizaba intentos fallidos hasta que agotaba las conexiones disponibles en el pool de conexiones hacia la base de datos y esto provocaba el error.



Se logró ubicar el problema, cuando en vez de iniciar los servidores y luego de reportados se empezo a validar lo siguiente:

1) Que Los recursos de los servidores de la granja estuviesen a bajo del 80% de uso y así estaban por debajo.
2) Que el servicio del IIS estuivese corriendo y no tuviese ningún sitio abajo (y estaba corriendo sin reportar problemas de hecho el central administration funcionaba)
3) Que el servicio de SQL Server de los dos servidores de SQL Server estuvise funcionando y corriendo ( efectivamente funcionaban correctamente)
4) Que el sitio estuviese accesible (aquí fallaba y daba un error 500 servicio no disponible)
5) Validó los jobs que estaban en ejecución y allí se encontró el Recyclebin ejecutandose 3 horas antes y estaba al 50%.
6) Se validó el contenido de la papelera de reciclaje y en segunda fase tenie una biblioteca de 500 GB.

La Solución Alterna:
Se deshabilitó el job de limpieza de la papelera de reciclaje para la aplicación web que contiene esta bilbioteca que no logra eliminar.



La Solución Definitiva:
La granja se planificó migrar a un ambiente virtual el cual tiene mucho mas capacidad de procesamiento y en donde este proceso de limpiza si finalizá con éxito y más rápido.  Además de distribuir el contendio de tal forma que se reduzca el tamaño de la base de datos de contenido principal depurando el contenido o moviendolo a una nueva base de datos esto trea consiguo mayor esfuerzo administrativo para el contenido pero lo hace más manejable.

Lección aprendida:
Configurar la depuración de la papelera en un porcentaje menor evitará que permita almacenar 500 GB en la segunda fase.  Distribuir el contenido y hacer un plan de gobierno es una práctica poco adoptada pero muy necesaria para evitar estos problemas a largo plazo.  Monitorear los servicios de la papelera que demoren mas de una hora para validar sus efectos en dicha demora.  También la programación del job de la papelera debe contemplarse su ejecución manual cuando el contenido es arriba de 200 GB y la capacidad de los servidores de la granja actual.

SharePointHardLesson,

Juan Manuel Herrera Ocheita




No hay comentarios.: