Utilizzo memoria

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

Il monitoraggio restituisce un avviso quando le allocazioni di memoria da parte dell'istanza di SSAS superano la soglia di avviso configurata, espressa come percentuale dell'impostazione Limite di memoria totale per l'istanza di SSAS. Il monitoraggio genera un avviso critico quando queste allocazioni superano la soglia critica configurata.

Knowledge Base article:

Riepilogo

Il monitoraggio restituisce un avviso quando le allocazioni di memoria da parte dell'istanza di SSAS superano la soglia di avviso configurata, espressa come percentuale dell'impostazione Limite di memoria totale per l'istanza di SSAS. Il monitoraggio genera un avviso critico quando queste allocazioni superano la soglia critica configurata.

Cause

In determinate circostanze SSAS può avvicinarsi o superare l'impostazione Limite di memoria totale. In alcuni casi, una singola operazione richiede una quantità di memoria al di sopra di tale limite e nonostante il server faccia tutto il possibile per cancellare memoria dalle altre attività meno immediate, talvolta le allocazioni possono superare inevitabilmente i limiti configurati, e pertanto sarà necessario forzare la non riuscita delle operazioni.

Tale condizione può verificarsi durante l'elaborazione di dimensioni grandi o di dati della tabella dei fatti, soprattutto se sono presenti attributi con tipi di dati che utilizzano grandi quantità di spazio, ed esempio stringhe lunghe, dati binari e così via, oppure se la dimensione contiene molti membri. Inoltre, le query eseguite nel server possono occupare grandi quantità di spazio, soprattutto se più dimensioni vengono unite con un cross join o se sono necessari calcoli significativi per derivare i risultati per le celle non aggregate precedentemente da un amministratore esperto o semplicemente che non è stato possibile aggregare in precedenza.

Soluzioni

Quando vengono superati i limiti di memoria per un server, ci sono diversi approcci che gli amministratori possono usare per risolvere il problema. Dopo aver analizzato l'attività sottostante che causa l'utilizzo di memoria, i requisiti per il carico di lavoro del server, le risorse disponibili e altri fattori nonché dopo aver esaminato e letto attentamente la Guida alle prestazioni multidimensionali di SSAS o aver consultato il supporto tecnico Microsoft, a seconda delle necessità, per risolvere il problema è possibile adottare uno degli approcci seguenti:

Risorse esterne

Documentazione TechNet per le proprietà della memoria di Analysis Services

Configurare le proprietà del server in Analysis Services

Guida alle prestazioni multidimensionali di SSAS

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Soglia critica (%)

Lo stato di integrità passa a Critico quando l'utilizzo di memoria (%) di Analysis Services supera la soglia.

95

Abilitato

Abilita o disabilita il flusso di lavoro

Genera avvisi

Definisce se il flusso di lavoro genera un avviso

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

900

Numero di campioni

Lo stato di integrità cambia se il numero di violazioni di soglia è superiore o uguale al numero minimo di violazioni.

4

Ora di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

300

Soglia avviso (%)

Lo stato di integrità passa ad Avviso quando l'utilizzo di memoria (%) di Analysis Services supera la soglia ma rimane comunque inferiore alla soglia critica (%).

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: utilizzo di memoria elevato
L'utilizzo corrente di memoria per SSAS ({3} GB) supera la soglia configurata, espressa come percentuale dell'impostazione Limite di memoria totale per l'istanza.
Memoria totale nel server: {2} GB
Utilizzo memoria totale: {5} GB
Memoria usata dai processi non SSAS: {4} GB
Memoria usata da SSAS: {3} GB
Limite di memoria SSAS minimo: {6} GB ({7}\%)
Limite di memoria SSAS massimo: {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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>