Uso de memoria

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage (UnitMonitor)

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.

Knowledge Base article:

Resumen

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.

Causas

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.

Soluciones

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:

Externo

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

Parámetros invalidables

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.

 

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 (%).

80

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: uso de memoria superior
El uso de memoria actual para SSAS ({3} GB) supera el umbral configurado, expresado como porcentaje del valor de TotalMemoryLimit para la instancia.
Memoria total del servidor: {2} GB
Uso total de memoria: {5} GB
Memoria que usan procesos independientes de SSAS: {4} GB
Memoria que usa SSAS: {3} GB
Límite inferior de memoria SSAS: {6} GB ({7} \%)
Límite superior de memoria SSAS: {0} GB ({8} \%)
RunAsDefault

Source Code:

<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>