Tenemos una base de datos OLTP activa de 40 GB en SQL Server 2014 SP1. Se encuentra que las consultas son lentas con IO_Completion espera, la longitud de la cola de disco aumenta a 900 y SQL Server deja de responder. Lo que probamos:
Reinicie la instancia y con un minuto comienza a comportarse de la misma manera.
Después del segundo reinicio, cambiamos el tamaño inicial de cada archivo de datos tempdb (se crean 16 archivos de datos) y comienza a funcionar correctamente.
Nota: Estamos usando variables de tabla para conjuntos de resultados intermedios. Estos conjuntos de resultados son muy pequeños.
Sucedió dos veces en un mes. Cada vez que agrego un poco de espacio manualmente a los archivos de datos, comienza a funcionar normalmente. Lo más interesante es que la misma configuración (mismo hardware, misma carpeta y configuración de archivos, misma carga de trabajo) que tenemos en SQL Server 2008 R2 y SQL Server 2012 está funcionando bien.
Ayúdenos a encontrar una solución permanente.
El tamaño inicial de todos los archivos de datos es de 1000 MB, el actual es de 1500 MB cada uno. Todos son idénticos El crecimiento automático es de 100 MB para cada uno. Antes de esto, enfrentábamos la disputa de páginas PFS y GAM y aumentamos a 16 y el problema se resolvió. Ambas marcas de seguimiento 1117 y 1118 están habilitadas. 24 núcleos en 2 nodos NUMA. Todos los archivos de datos están en el mismo volumen. Disco simple, sin SAN.
La instancia está en una máquina física. Las consultas con Variables de tabla y las consultas con Hash Joins suelen generar esperas IO_Completion.
La respuesta detallada de wBob nos empujó a buscar más en detalle. ¿Cómo lo perdimos antes?
El usuario canceló el crecimiento automático del archivo 'templog' en la base de datos 'tempdb' o se agotó el tiempo de espera después de 7704 milisegundos. Use ALTER DATABASE para establecer un valor de FILEGROWTH más pequeño para este archivo o para establecer explícitamente un nuevo tamaño de archivo.
Esto lo encontramos en el registro cuando se produce este tipo de problema. Estamos moviendo TempDB para separar el disco rápido.