El monitor genera una advertencia cuando las asignaciones de memoria por parte de la instancia de SSAS superan el Umbral de advertencia configurado, expresado como un porcentaje del valor de TotalMemoryLimit para la instancia de SSAS. El monitor emite una alerta crítica cuando dichas asignaciones superan el Umbral crítico configurado.
El monitor genera una advertencia cuando las asignaciones de memoria por parte de la instancia de SSAS superan el Umbral de advertencia configurado, expresado como un porcentaje del valor de TotalMemoryLimit para la instancia de SSAS. El monitor emite una alerta crítica cuando dichas asignaciones superan el Umbral crítico configurado.
En algunos casos, SSAS puede acercarse o superar el valor de configuración de TotalMemoryLimit. En algunos casos, una única operación requiere un consumo de memoria superior al límite y, a pesar de los esfuerzos del servidor por liberar memoria de otras tareas menos inmediatas, puede que, en algunas ocasiones, las asignaciones superen necesariamente los límites configurados. De lo contrario, se producirían errores en las operaciones.
Esto puede pasar al procesar grandes dimensiones o datos de hechos, especialmente si existen atributos con tipos de datos que consumen grandes cantidades de espacio (por ejemplo, cadenas largas, datos binarios, etc.) o si la dimensión contiene una gran cantidad de miembros. Además, las consultas que se ejecutan en el servidor pueden cubrir espacios muy grandes, especialmente si se unen varias dimensiones entre sí o si se necesitan cálculos significativos para generar resultados para celdas que no haya agregado previamente un administrador previsor o que, simplemente, no se puedan agregar con antelación.
Cuando se superan los límites de memoria de un servidor, los administradores pueden usar diferentes enfoques para solucionar el problema. Después de considerar la actividad subyacente que provoca el consumo de memoria, los requisitos de carga de trabajo del servidor, los recursos disponibles y otros factores, así como de revisar y considerar la Guía sobre rendimiento multidimensional de SSAS en detalle o consultar con el servicio de asistencia técnica de Microsoft, según sea necesario, se puede usar cualquiera de estos enfoques para resolver el problema:
Identifique las sesiones responsables de las asignaciones de memoria más significativas y finalícelas manualmente.
Identifique las sesiones responsables de las asignaciones de memoria más significativas y soluciónelas individualmente para volver a programar trabajos de procesamiento o informes, realizar una asignación previa con consultas de preparación de caché en los momentos de bajo consumo o diseñar agregaciones específicas por adelantado que se generen durante el procesamiento y, de este modo, reduzcan el consumo posterior de memoria de las consultas de usuario.
Aumente la memoria física del equipo host.
Reduzca el consumo de memoria de otros procesos del equipo host, como instancias del motor de base de datos relacional de SQL Server u otras instancias de SSAS.
Aumente el valor de TotalMemoryLimit o los umbrales configurados para la alerta para evitar la condición.
Deshabilite el monitor completamente si el uso de memoria no constituye un problema en el servidor.
Documentación de TechNet para las propiedades de memoria de Analysis Services
Configurar las propiedades del servidor en Analysis Services
Guía sobre rendimiento multidimensional de SSAS
Nombre | Descripción | Valor predeterminado |
Umbral crítico (%) | El estado cambia a Crítico si el uso de memoria de Analysis Services (%) supera el umbral. | 95 |
Habilitado | Habilita o deshabilita el flujo de trabajo | True |
Genera alertas | Define si el flujo de trabajo genera una alerta | True |
Intervalo (segundos) | Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo. | 900 |
Hora de sincronización | Hora de sincronización especificada en un formato de 24 horas. Se puede omitir. | 4 |
Umbral de advertencia (%) | El estado cambia a Advertencia si el uso de memoria de Analysis Services (%) supera el umbral pero no el Umbral crítico (%). |
|
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryLimitHighGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='MemoryLeavesForOsGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='UsedPhysicalMemoryGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryLimitLowGB']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='MemoryLimitLowPercent']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='MemoryLimitHighPercent']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Above" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Between" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Below" HealthState="Success"/>
</OperationalStates>
<Configuration>
<WarningThreshold>80</WarningThreshold>
<CriticalThreshold>95</CriticalThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>