L'analyse vous alerte lorsque le paramètre TotalMemoryLimit configuré pour l'instance SSAS dépasse le seuil configuré, ce qui crée un risque relatif à l'allocation de mémoire physique nécessaire pour que le système d'exploitation exécute des fonctions nécessaires de base, soit au moins 2 Go.
L’analyse envoie une alerte lorsque le paramètre TotalMemoryLimit configuré pour l’instance SSAS dépasse le seuil configuré, ce qui crée un risque relatif à l’allocation de la mémoire physique requise par le système d’exploitation pour exécuter les fonctions de base nécessaires. De plus, la configuration ne prend pas en compte la consommation potentielle par des processus autres que l’instance spécifique analysée, qui doit également être prise en compte par l’administrateur pour l’ajustement des paramètres de TotalMemoryLimit, après avoir examiné avec attention le Guide des performances multidimensionnelles SSAS.
Le paramètre TotalMemoryLimit doit offrir, au minimum, suffisamment de place pour que le système d'exploitation puisse exécuter les fonctions nécessaires basiques de gestion de mémoire, ainsi que d'interaction avec les pilotes et le matériel. Si le SE ne dispose pas de suffisamment de mémoire disponible pour ces fonctions essentielles, cela peut entraîner une instabilité ou une défaillance du système. De ce fait, le paramètre doit être configuré en dessous de 100 %, afin de garantir que ces fonctions disposent de suffisamment de mémoire physique. S'il est défini comme trop élevé, cette analyse vous alertera pour vous prévenir de ce problème.
La configuration par défaut pour SSAS est de 80 de TotalMemoryLimit, soit 80 % de mémoire physique disponible sur le serveur. Si d'autres grands consommateurs de mémoire (par exemple le moteur de base de données relationnelle SQL Server) sont présents, cela doit être pris en compte et les paramètres de limite de mémoire abaissés en conséquence. Si ce paramètre est trop élevé, le SE peut manquer de mémoire physique, ce qui entraîne une grande quantité de fichiers d'échange et des performances inefficaces sur le serveur.
Si un nombre spécifique d'octets est nécessaire, toute valeur supérieure à 100 est interprétée comme un nombre d'octets de mémoire physique.
Remarque : Contrairement au moteur de base de données relationnelle SQL Server, qui prend en charge une limite dure de mémoire maximale, TotalMemoryLimit du moteur SSAS fonctionne quelque peu différemment. TotalMemoryLimit correspond à la limite à partir de laquelle le serveur commencera à tenter de libérer de la mémoire agressivemment, aussi rapidement que possible. De même, LowMemoryLimit correspond à la limite à laquelle le serveur commencera à tenter de libérer de la mémoire du cache SSAS “de manière non agressive”, en tentant de réduire l'impact de toute session ou requête déjà en cours. Lorque TotalMemoryLimit est atteint, les performances du serveur peuvent être touchées, étant donné que le serveur libère de la mémoire du cache de manière très agressive. Le serveur prend également en charge un paramètre HardMemoryLimit – à partir duquel le serveur commencera à mettre fin à des sessions de manière arbitraire afin de tenter de libérer de la mémoire. Cela peut entrainer des défaillances pour certains utilisateurs, c'est pour cela que TotalMemoryLimit n'est pas mis en place en tant que limite dure, étant donné que certaines requêtes ou travaux peuvent par nature être très gourmands en mémoire et le moteur OLAP fera de son mieux pour les alimenter, dans les limites configurées.
Ce problème peut être résolu par l'une des actions suivantes :
Abaisser TotalMemoryLimit sous le seuil configuré.
Ajouter de la mémoire physique sur le serveur afin de faire passer le paramètre TotalMemoryLimit, s'il est exprimé sous forme de pourcentage de mémoire physique disponible totale, sous le seuil exprimé en Go.
Abaisser le seuil configuré afin d'éviter l'alerte.
Désactiver l'analyse entièrement si l'utilisation de mémoire n'est pas un problème sur le serveur.
Considérations liées à la configuration et au dimensionnement de la mémoire dans SQL Server 2008
Documentation TechNet pour les propriétés de mémoire Analysis Services
Configuration des 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 | Vrai |
Génère des alertes | Définit si le workflow génère une alerte | Vrai |
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 (Go) | L'analyse vous alerte lorsque le paramètre TotalMemoryLimit configuré pour l'instance SSAS dépasse le seuil configuré, ce qui crée un risque relatif à l'allocation de mémoire physique nécessaire pour que le système d'exploitation exécute des fonctions nécessaires de base, soit au moins 2 Go. | 2 |
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.TotalMemoryConfiguration | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration" 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.TotalMemoryConfiguration" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration.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="NotConfigured" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Configured" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>2</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>