Ce moniteur émet un avertissement lorsque l'espace disque disponible pour le conteneur de groupe de fichiers de données à mémoire optimisée est inférieur au paramètre de seuil d'avertissement, exprimé sous forme de pourcentage de la somme de la taille du conteneur de groupe de fichiers de données à mémoire optimisée et de l'espace disque libre. Le moniteur émet un état critique lorsque l'espace disponible est inférieur au seuil critique.
Ce moniteur émet un avertissement lorsque l'espace disque disponible pour le conteneur de groupe de fichiers de données à mémoire optimisée est inférieur au paramètre de seuil d'avertissement, exprimé sous forme de pourcentage de la somme de la taille du conteneur de groupe de fichiers de données à mémoire optimisée et de l'espace disque libre. Le moniteur émet un état critique lorsque l'espace disponible est inférieur au seuil critique.
Le dossier des conteneurs de groupes de fichiers de données à mémoire optimisée croît généralement au fur et à mesure de l’ajout de données au sein des tables de données à mémoire optimisée. Les administrateurs doivent donc surveiller s'il reste suffisamment d’espace dans l’emplacement de stockage pour le dossier des conteneurs.
Quand l'espace disponible devient insuffisant sur le disque où est configuré l'emplacement du stockage de base de données, des erreurs peuvent se produire qui empêchent le traitement des données, retardent les requêtes de l'utilisateur ou affectent d'autres applications qui partagent le même espace disque alloué.
Le stockage est alloué en tant que partie intégrante d'opérations DML sur les tables à mémoire optimisée durables. Vous devez configurer le stockage pour atteindre jusqu’à 4 fois la taille des données à mémoire optimisée des tables à mémoire optimisée durables. Si vous avez configuré le stockage de manière adéquate, mais que l’espace de stockage libre reste faible, il est possible que les IOPS prises en charge par les conteneurs ne puissent pas prendre en charge la demande de la charge de travail. Il est généralement recommandé que les conteneurs prennent en charge 3 fois les IOPS du taux de génération de données afin de constituer la population initiale des fichiers de données/delta et pour l’opération de fusion automatique nécessitant la lecture des fichiers de données/delta sources, puis de les fusionner en une CFP cible.
La solution pour un espace disque disponible faible dépend des causes principales, qui doivent être analysées chaque fois que ce problème apparaît. Le problème peut être soulagé par une des nombreuses approches possibles :
Diminuez la quantité de données stockées dans les tables de données à mémoire optimisée.
Supprimez les données consommant de l’espace disque sur le même lecteur que le dossier des conteneurs de groupes de fichiers de données à mémoire optimisée.
Ajoutez un autre conteneur au groupe de fichiers de données à mémoire optimisée.
Augmentez la taille du lecteur logique sur lequel le dossier des conteneurs de groupes de fichiers de données à mémoire optimisée est stocké avec le gestionnaire de disque.
Copiez le dossier des conteneurs de groupes de fichiers de données à mémoire optimisée dans son intégralité vers un nouveau lecteur comprenant plus d’espace libre.
Modifier les seuils selon vos besoins afin qu'ils conviennent à la charge de travail et aux conditions attendues dans l'environnement.
Désactiver l'analyse entièrement si l'espace disque n'est pas un problème pour l'instance.
Nom | Description | Valeur par défaut |
Priorité d'alerte | Définit la priorité de l'alerte. | Normale |
Gravité d'alerte | Définit la gravité de l'alerte. | Erreur |
Taille maximale des fichiers Azure (Mo) | Taille maximale du fichier de données stocké dans Stockage Blob Azure. Le workflow considère cette valeur comme une capacité de stockage maximale pour chaque fichier. | 1048576 |
Seuil critique | Le moniteur passe à l’état Critique si la valeur tombe sous ce seuil. | 10 |
Activé | Active ou désactive le flux de travail. | Oui |
Génère des alertes | Définit si le flux de travail génère une alerte. | Oui |
Intervalle (en secondes) | Intervalle régulier (en secondes) auquel exécuter le flux de travail. | 900 |
Heure de synchronisation | Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise. |
|
Délai d'expiration (secondes) | Spécifie la durée pendant laquelle le flux de travail est autorisé à s’exécuter avant d’être fermé et marqué comme ayant échoué. | 300 |
Délai d’attente pour la connexion de base de données (secondes) | Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée. | 15 |
Seuil d'avertissement | Le moniteur passe à l’état Avertissement si la valeur tombe sous ce seuil. | 20 |
Target | Microsoft.SQLServer.Windows.Container | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Windows.MonitorType.Container.FreeSpacePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Container" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Container.FreeSpacePercent" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter3>
<AlertParameter4>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='DiskTotalSizeMB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='AllocatedSizeMB']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Critical" MonitorTypeStateID="ContainerFreeSpaceCritical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="ContainerFreeSpaceWarning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="ContainerFreeSpaceSuccess" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<FileName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</FileName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<CriticalThreshold>10</CriticalThreshold>
<WarningThreshold>20</WarningThreshold>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>