Nuestra aplicación empresarial utiliza SQL Server para el almacenamiento de datos y es principalmente un sistema OLTP. Sin embargo, un componente importante de nuestra aplicación genera una carga de trabajo OLAP significativa.
Nuestra latencia de escritura en tempdb es de aproximadamente 100 ms. Esta tendencia se mantiene con el tiempo y ALLOW_SNAPSHOT_ISOLATION
se apaga . Estamos solucionando este problema preocupante y lo único interesante que hemos encontrado hasta ahora es que hay un número significativo de derrames hash y sort en tempdb. Suponemos que esto proviene de nuestra carga de trabajo OLAP.
Pregunta
¿Qué frecuencia de derrames es preocupante? ¿Alguna? ¿Cuántos derrames / segundo? Nuestros datos preliminares indican que tenemos alrededor de 2 derrames de hash por segundo y 25 derrames de clasificación por minuto.
¿Es posible que esta frecuencia de derrames pueda ser el principal culpable de nuestra latencia de escritura de alta tempdb?
Otra información
Estamos utilizando varios archivos para tempdb según lo recomendado por número de núcleos. Los archivos tempdb están en una SAN RAID 1 + 0 (con SSD de alto rendimiento) pero ese es el mismo dispositivo que los datos principales de la base de datos y los archivos de registro. Los archivos tempdb tienen un tamaño lo suficientemente grande que crecen con poca frecuencia. No estamos utilizando las marcas de seguimiento 1117 u 1118. Otra variable es que esta configuración se comparte para varias bases de datos diferentes que experimentan una carga media a alta.
Nuestra latencia de escritura de 100 ms es mucho mayor que los rangos aceptables para la latencia de escritura tempdb que hemos encontrado en MSDN, SQL Skills y otros sitios. Sin embargo, la latencia de escritura para nuestras otras bases de datos es buena (menos de 10 ms). Según otras estadísticas, parece que estamos usando tempdb en gran medida, particularmente para objetos internos. Así que estamos cavando para tratar de descubrir por qué nuestra aplicación está usando objetos internos tan fuertemente.
Tenemos problemas reales de rendimiento en nuestra plataforma que se manifiestan de diferentes maneras. Hemos estado monitoreando los contadores de rendimiento, observando las vistas de DM y analizando el comportamiento de nuestra aplicación para tratar de profundizar en las características de uso de recursos de nuestro sistema. Estamos enfocados en los derrames en este momento, ya que hemos leído que los derrames tienen un impacto negativo drástico porque se realizan en el disco en lugar de en la memoria. Y parece que tenemos una gran cantidad de derrames, pero quería obtener información sobre lo que la gente considera "alto".
fuente