Espacio disponible de contenedor de grupos de archivos de datos con optimización para memoria

Microsoft.SQLServer.Linux.Monitor.Container.FreeSpacePercent (UnitMonitor)

El monitor proporciona una advertencia cuando el espacio disponible en disco para el contenedor del grupo de archivos de datos con optimización para memoria es inferior al valor del umbral de advertencia, expresado como porcentaje de la suma del tamaño del contenedor del grupo de archivos de datos con optimización para memoria más el espacio disponible en disco. El monitor notifica una alerta crítica cuando el espacio disponible es inferior al umbral crítico.

Knowledge Base article:

Resumen

El monitor proporciona una advertencia cuando el espacio disponible en disco para el contenedor del grupo de archivos de datos con optimización para memoria es inferior al valor del umbral de advertencia, expresado como porcentaje de la suma del tamaño del contenedor del grupo de archivos de datos con optimización para memoria más el espacio disponible en disco. El monitor notifica una alerta crítica cuando el espacio disponible es inferior al umbral crítico.

La carpeta del contenedor del grupo de archivos de datos con optimización para memoria normalmente crece con el tiempo a medida que se agregan más datos a las tablas de datos con optimización para memoria. Como tal, los administradores querrán supervisar para asegurarse de que queda espacio suficiente en la ubicación de almacenamiento para la carpeta del contenedor.

Causas

Cuando el espacio disponible en disco de la unidad donde está configurada la ubicación de almacenamiento de la base de datos es demasiado bajo, se pueden producir errores que impiden el procesamiento correcto de los datos, lo que retrasa las consultas del usuario o afecta a otras aplicaciones que comparten la misma asignación de espacio en disco.

El almacenamiento se asigna como parte de las operaciones DML en las tablas con optimización para memoria duradera. Hay que configurar el almacenamiento hasta el cuádruple del tamaño de los datos con optimización para memoria de las tablas con optimización para memoria duradera. Si ha configurado el almacenamiento correctamente, pero el espacio de almacenamiento libre sigue siendo bajo, puede que la E/S por segundo admitida por los contenedores no pueda admitir la demanda de la carga de trabajo. La recomendación general para los contenedores es admitir el triple de la E/S por segundo de la frecuencia de generación de datos para atender el rellenado de los archivos delta y de datos y para la operación de combinación automática que tiene que leer los archivos delta y de datos de origen y, después, combinarlos en un CFP de destino.

Resoluciones

Las soluciones para la escasez del espacio disponible de disco dependen de las causas raíz, que se deben investigar en cada caso cuando se produzca el problema. Existen muchos enfoques potenciales para paliar esta situación:

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de la alerta

Define la prioridad de alerta.

Normal

Gravedad de la alerta

Define la gravedad de alerta.

Error

Tamaño de archivo máximo de Azure (MB)

Tamaño máximo del archivo de datos almacenado en Azure BLOB Storage. El flujo de trabajo considerará este valor como capacidad de almacenamiento máxima para cada archivo.

1048576

Umbral crítico

El monitor cambiará al estado "Crítico" si el valor se sitúa por debajo de este umbral.

10

Habilitado

Habilita o deshabilita el flujo de trabajo.

Genera alertas.

Define si el flujo de trabajo genera una alerta.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

900

Hora de sincronización

Hora de sincronización especificada en un formato de 24 horas. Se puede omitir.

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

300

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Umbral de advertencia

El monitor cambiará al estado "Advertencia" si el valor se sitúa por debajo de este umbral.

20

Element properties:

TargetMicrosoft.SQLServer.Linux.Container
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.Container.FreeSpacePercent
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL en Linux: espacio disponible insuficiente para el contenedor de grupos de archivos de datos optimizados para memoria
Solo el {6} \% del espacio libre está disponible para el contenedor de grupos de archivos de datos con optimización para memoria "{0}". Este valor es inferior al umbral configurado para la alerta.
Servidor: {4}
Instancia de SQL Server: {3}
Base de datos: {2}
Grupo de archivos: {1}
Contenedor: {0}
Tamaño en disco: {5} MB
Espacio disponible en contenedor de grupo de archivos de datos con optimización para memoria: {7} MB ({6} \%)
Tamaño de contenedor de grupo de archivos de datos con optimización para memoria: {8} MB
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Container.FreeSpacePercent" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.Container" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Container.FreeSpacePercent" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Container.FreeSpacePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</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>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>