La surveillance vous alerte quand le paramètre Limite totale de la mémoire configuré pour l'instance SSAS dépasse le seuil configuré. En effet, cela risque d'entraîner l'allocation de la mémoire physique nécessaire aux fonctions essentielles du système d'exploitation, c'est-à-dire au moins 2 Go.
La surveillance vous alerte quand le paramètre Limite totale de la mémoire configuré pour l'instance SSAS dépasse le seuil configuré. En effet, cela risque d'entraîner l'allocation de la mémoire physique nécessaire aux fonctions essentielles du système d'exploitation. De plus, la configuration ne prend pas en compte la consommation potentielle de mémoire par d'autres processus que ceux de l'instance spécifique surveillée, ce que l'administrateur doit également prendre en compte pour l'ajustement du paramètre Limite totale de la mémoire, après avoir examiné avec attention le Guide des performances multidimensionnelles SSAS.
Au minimum, le paramètre Limite totale de la mémoire doit offrir suffisamment d'espace au système d'exploitation pour lui permettre d'exécuter les fonctions essentielles de gestion de mémoire, et d'interagir avec les pilotes et le matériel. Si le système d'exploitation n'a pas suffisamment de mémoire disponible pour ces fonctions essentielles, cela peut entraîner une instabilité ou une défaillance du système. Ainsi, le paramètre doit être configuré en dessous de 100 %, pour garantir que ces fonctions disposent de suffisamment de mémoire physique. S'il est défini à un niveau trop élevé, cette surveillance vous alerte pour attirer votre attention sur le problème.
La configuration par défaut de SSAS est de 80 pour le paramètre Limite totale de la mémoire, soit 80 % de la 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 doivent être abaissés en conséquence. Si ce paramètre est trop élevé, le système d'exploitation peut manquer de mémoire physique, ce qui entraîne une grande quantité de pagination sur le disque et de mauvaises performances 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 : Remarque : Contrairement au moteur de base de données relationnelle SQL Server, qui prend en charge une limite inconditionnelle de la mémoire maximale, le paramètre Limite totale de la mémoire du moteur SSAS fonctionne un peu différemment. Le paramètre Limite totale de la mémoire correspond à la limite à partir de laquelle le serveur tente d'effacer la mémoire de manière agressive, aussi rapidement que possible. De même, le paramètre Limite de mémoire inférieure correspond à la limite à partir de laquelle le serveur tente d'effacer la mémoire du cache SSAS « de manière non agressive », en tentant de réduire l'impact des sessions ou des requêtes en cours d'exécution. Quand la limite totale de la mémoire est atteinte, les performances du serveur peuvent être affectées, car celui-ci efface la mémoire du cache de manière très agressive. Le serveur prend également en charge le paramètre Limite de mémoire inconditionnelle, à savoir le point à partir duquel le serveur met fin aux sessions de manière arbitraire en tentant de libérer la mémoire. Cela peut entrainer des défaillances pour certains utilisateurs, c'est pourquoi la limite totale de la mémoire n'est pas mise en place en tant que limite inconditionnelle, car certaines requêtes ou certains travaux sont par nature très gourmands en mémoire. Le moteur OLAP fait de son mieux pour les traiter dans les limites de sa configuration.
Ce problème peut être résolu par l'une des actions suivantes :
Réduisez le paramètre Limite totale de la mémoire sous le seuil configuré.
Ajoutez de la mémoire physique sur le serveur pour faire passer le paramètre Limite totale de la mémoire, s'il est exprimé sous forme de pourcentage de mémoire physique disponible totale, sous le seuil exprimé en Go.
Réduisez le seuil configuré pour éviter l'alerte.
Désactivez entièrement la surveillance, 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
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 (Go) | La surveillance vous alerte quand le paramètre Limite totale de la mémoire configuré pour le système d'exploitation dépasse le seuil configuré. En effet, cela risque d'entraîner l'allocation de la mémoire physique nécessaire aux fonctions essentielles du système d'exploitation, c'est-à-dire au moins 2 Go. | 2 |
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.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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>