La surveillance vous alerte si un processus du moteur de base de données relationnelle est en cours d'exécution sur le serveur, et si le paramètre de configuration Limite totale de la mémoire pour l'instance SSAS est plus élevé que le seuil spécifié. Cela permet de garantir que le processus serveur SQL Server dispose de suffisamment de mémoire.
Le paramètre de configuration Limite totale de la mémoire de SQL Server Analysis Services doit être réglé de manière adéquate, pour gérer les allocations de mémoire d'autres processus sur l'ordinateur.
Le moteur de base de données relationnelle SQL Server est un excellent exemple d'un processus commun qui consomme des ressources mémoire sur un ordinateur qui exécute également SSAS. Dans ces circonstances, cela peut entraîner une concurrence d'accès à la mémoire physique par deux consommateurs importants de la même ressource fixe. Il est important que les deux services de base de données soient configurés pour partager suffisamment de mémoire physique et effectuer les fonctions nécessaires. Si la configuration du paramètre Limite totale de la mémoire SSAS est à un niveau trop élevé, SSAS risque de consommer trop de mémoire, ce qui peut entraîner une insuffisance de la mémoire physique, du fait de la concurrence avec le moteur de base de données relationnelle (ou avec d'autres processus à forte consommation de mémoire). Le paramètre Limite totale de la mémoire doit être configuré à un niveau suffisamment bas pour permettre la consommation de mémoire configurée de SQL Server, ainsi qu'une marge de consommation de mémoire pour le système d'exploitation et les autres processus habituels, essentiels pour un ordinateur.
En cas de conflits de configuration de la mémoire, les ressources et les demandes des utilisateurs et des processus doivent être prises en compte par l'administrateur. La configuration de tous les processus pertinents doit ensuite être ajustée de manière adéquate. Le scénario le plus usuel pour ce type de problème sur un serveur de base de données Microsoft provient d'instances SSAS et du moteur de base de données relationnelle SQL Server. Heureusement, les deux services ont des paramètres de configuration que vous pouvez ajuster selon vos besoins. Il n'existe pas de valeur universelle concernant le paramètre Limite totale de la mémoire pour SSAS ou le paramètre de limite de mémoire maximale pour le moteur de base de données relationnelle SQL. Le seuil de cette alerte peut donc être ajusté par l'administrateur pour tenir compte de chaque environnement spécifique. Dans ce genre de situation, le problème peut être résolu via l'une des approches possibles suivantes :
Ajuster le paramètre de limite maximale de mémoire des instances SQL Server pour réduire la consommation de ces processus.
Abaissez le niveau du paramètre de configuration Limite totale de la mémoire des instances SSAS pour réduire la consommation du ou des processus concernés.
Augmentez la quantité de mémoire disponible sur le serveur.
Ajuster le seuil d'alerte.
Désactivez l'alerte pour les cas où l'administrateur ne la considère pas comme nécessaire.
Documentation TechNet pour les propriétés de mémoire Analysis Services
Configurer les propriétés du serveur dans Analysis Services
Guide des performances multidimensionnelles SSAS
Nom | Description | Valeur par défaut |
Activé | Active ou désactive le workflow | Oui |
Génère des alertes | Définit si le workflow génère une alerte | Oui |
Intervalle en secondes | L'intervalle de temps récurrent en secondes pendant lequel le workflow est exécuté. | 604800 |
Heure de synchronisation | L'heure de synchronisation spécifiée dans un format de 24 heures. Peut être omise. |
|
Seuil d'avertissement (en %) | L'état d'intégrité change si un processus du moteur de base de données relationnelle SQL Server est en cours d'exécution sur le serveur, et si le paramètre de configuration Limite totale de la mémoire de l'instance SSAS dépasse le seuil. | 40 |
Délai d'attente (secondes) | Spécifie la durée pendant laquelle le workflow est autorisé à être exécuté avant d'être fermé et marqué comme un échec. | 300 |
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | ConfigurationHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</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="Warning" MonitorTypeStateID="ConfigurationConflict" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="NoConfigurationConflict" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>40</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>