O monitor relata um aviso quando o espaço em disco disponível para o contêiner do grupo de arquivos de dados com otimização de memória cai abaixo da configuração do Limite de Aviso, expresso como percentual da soma do tamanho do contêiner do grupo de arquivos de dados com otimização de memória mais o espaço livre em disco. O monitor reporta um alerta crítico quando o espaço livre cai abaixo do Limite Crítico.
O monitor relata um aviso quando o espaço em disco disponível para o contêiner do grupo de arquivos de dados com otimização de memória cai abaixo da configuração do Limite de Aviso, expresso como percentual da soma do tamanho do contêiner do grupo de arquivos de dados com otimização de memória mais o espaço livre em disco. O monitor reporta um alerta crítico quando o espaço livre cai abaixo do Limite Crítico.
A pasta do contêiner do grupo de arquivos de dados com otimização de memória geralmente cresce com o tempo conforme mais dados são adicionados nas tabelas com otimização de memória. Como tal, os administradores desejarão monitorar para garantir que exista espaço suficiente restante no local de armazenamento para a pasta do contêiner.
Quando o espaço em disco disponível na unidade em que o local de armazenamento do banco de dados está configurado se torna muito baixo, algumas falhas podem ocorrer impedindo o processamento de dados com êxito, atrasando as consultas do usuário ou afetando outros aplicativos que compartilham a mesma alocação do espaço em disco.
O armazenamento é alocado como parte das operações DML nas tabelas otimizadas de memória durável. Você precisa configurar o armazenamento até 4x do tamanho em memória das tabelas otimizadas de memória durável. Se você configurou o armazenamento corretamente, mas ainda está ficando com pouco espaço de armazenamento livre, é possível que o IOPS ao qual os contêineres dão suporte não seja capaz de dar conta da demanda da carga de trabalho. A recomendação geral para contêineres é dar suporte a 3x o IOPS da taxa de geração de dados para contagem da população inicial dos arquivos de dados/delta e para operação de mesclagem automática que precisa ler os arquivos delta/de dados de origem e mesclá-los em um CFP de destino.
A(s) resolução(ões) para o baixo espaço de disco disponível depende(m) da(s) causa(s) raiz, que deve(m) ser investigada(s) em cada ocorrência quando esse problema acontecer. A condição pode ser atenuada por qualquer uma das várias possíveis abordagens:
Diminua a quantidade de dados sendo armazenados em tabelas com otimização de memória.
Remova os dados consumindo espaço em disco na mesma unidade com a pasta do contêiner do grupo de arquivos de dados com otimização de memória.
Adicione outro contêiner ao Grupo de Arquivos de Dados com Otimização de Memória.
Aumente o tamanho da unidade lógica na qual a pasta do contêiner do grupo de arquivos de dados com otimização de memória está armazenada com o Gerenciador de Disco.
Copie toda a pasta do contêiner do grupo de arquivos de dados com otimização de memória para uma nova unidade com mais espaço livre.
Modifique os limites de acordo para se adequar a carga de trabalho esperada e condições no ambiente.
Desabilite totalmente o monitor se o espaço em disco não for um problema para a instância.
Nome | Descrição | Valor Padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | Erro |
Tamanho Máximo do Arquivo do Azure (MB) | O tamanho máximo do arquivo de dados armazenado no armazenamento de BLOBs do Azure. O fluxo de trabalho considerará esse valor como uma capacidade máxima de armazenamento para cada arquivo. | 1.048.576 |
Limite Crítico | O estado do monitor será alterado para 'Crítico' se o valor cair abaixo desse limite. | 10 |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Gera Alertas | Define se o fluxo de trabalho gera ou não um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho. | 900 |
Tempo de Sincronização | O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido. |
|
Tempo Limite (em segundos) | Especifica o tempo que o fluxo de trabalho pode para ser executado antes de ser fechado e marcado como falha. | 300 |
Tempo limite da conexão de banco de dados (segundos) | O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado. | 15 |
Limite de Aviso | O estado do monitor será alterado para 'Aviso' se o valor cair abaixo desse limite. | 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>