Монитор создает предупреждение, когда объем доступного дискового пространства для контейнера файловой группы оптимизированных для памяти данных опускается ниже порогового значения предупреждения, выраженного в процентах от суммы размера контейнера файловой группы оптимизированных для памяти данных и свободного дискового пространства. Монитор создает критическое предупреждение, если доступное пространство опускается ниже критического порогового значения.
Монитор создает предупреждение, когда объем доступного дискового пространства для контейнера файловой группы оптимизированных для памяти данных опускается ниже порогового значения предупреждения, выраженного в процентах от суммы размера контейнера файловой группы оптимизированных для памяти данных и свободного дискового пространства. Монитор создает критическое предупреждение, если доступное пространство опускается ниже критического порогового значения.
Размер папки контейнера файловой группы оптимизированных для памяти данных обычно растет по мере добавления данных в оптимизированные для памяти таблицы. Поэтому администраторы должны следить за размером, чтобы в расположении папки контейнера оставалось достаточно свободного места.
Когда доступного места на диске, где настроено место хранения базы данных, становится слишком мало, могут возникать сбои, которые могут повлиять на успешную обработку данных, привести к задержке пользовательских запросов или повлиять на другие приложения, которым выделено то же дисковое пространство.
Хранилище выделяется в рамках операций DML для устойчивых таблиц, оптимизированных для памяти. Вам нужно настроить хранилище до четырехкратного размера оптимизированных для памяти данных для оптимизированных для памяти таблиц. Если вы правильно настроили хранилище, но свободного пространства все еще недостаточно, причина может быть в том, что уровень операций ввода-вывода в секунду, поддерживаемый контейнерами, не выдерживает рабочую нагрузку. Общая рекомендация для контейнеров — обеспечить поддержку трехкратного уровня операций ввода-вывода в секунду на скорости создания данных для учета начального заполнения файлов данных или разностных файлов и для автоматической операции слияния, которая должна считать исходные файлы данных или разностные файлы, а затем объединить их в целевую пару файлов контрольных точек.
Решение(я) в случае недостаточности доступного дискового пространства зависит от основной причины, которые должны быть исследованы в каждом случае, когда возникает эта проблема. Положение может быть облегчено с помощью любого из множества возможных подходов:
Уменьшите количество данных, хранящихся в таблицах, оптимизированных для памяти.
Удалите данные, занимающие дисковое пространство на том же диске, где размещена папка контейнера файловой группы оптимизированных для памяти данных.
Добавьте еще один контейнер в файловую группу данных, оптимизированных для памяти.
Увеличьте размер логического диска, где размещена папка контейнера файловой группы данных, оптимизированных для памяти, с помощью диспетчера дисков.
Полностью скопируйте папку контейнера файловой группы оптимизированных для памяти данных на новый диск с большим доступным пространством.
Измените пороговые значения соответствующим образом, чтобы удовлетворить ожидаемый объем нагрузки и условия в среде.
Полностью отключите монитор, если состояние дискового пространства не имеет значения для экземпляра.
Имя | Описание | Значение по умолчанию |
Приоритет предупреждения | Определение приоритета оповещений. | Обычный |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Максимальный размер файла Azure (МБ) | Максимальный размер файла данных в хранилище BLOB-объектов Azure. Рабочий процесс будет рассматривать это значение как максимальный объем хранения каждого файла. | 1048576 |
Критическое пороговое значение | Монитор изменит состояние на "Критическое", если значение опускается ниже этого порогового значения. | 10 |
Включено | Включает или отключает рабочий процесс. | Да |
Создает предупреждения | Определяет, создается ли предупреждение рабочим процессом. | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, в который следует запустить рабочий процесс. | 900 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Время ожидания (в секундах) | Указывает время, в течение которого может выполняться рабочий процесс, прежде чем он будет закрыт или завершится сбоем. | 300 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Порог "Предупреждение" | Монитор изменит состояние на "Предупреждение", если значение опускается ниже этого порогового значения. | 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>