Использование кэша чтения CSV в памяти
Область применения: Azure Stack HCI, версии 22H2 и 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Внимание
Azure Stack HCI теперь является частью Azure Local. Выполняется переименование документации по продукту. Однако старые версии Azure Stack HCI, например 22H2, будут продолжать ссылаться на Azure Stack HCI и не отражают изменение имени. Подробнее.
В этом разделе описывается, как использовать системную память для повышения производительности Azure Stack HCI и Windows Server путем кэширования частых операций чтения. Записи нельзя кэшировать в памяти.
Azure Stack HCI и Windows Server совместимы с кэшем чтения общего тома кластера (CSV). Использование системной памяти для кэширования операций чтения может повысить производительность приложений, таких как Hyper-V, которая использует неуправляемый ввод-вывод для доступа к файлам VHD или VHDX. (Неподдерженные операции ввода-вывода — это любые операции, которые не кэшируются диспетчером кэша Windows.)
Так как кэш в памяти является локальным сервером, он улучшает локальность данных. Последние операции чтения кэшируются в памяти на том же узле, где выполняется виртуальная машина, уменьшая частоту операций чтения по сети. Это приводит к снижению задержки и повышению производительности хранилища.
Обратите внимание, что кэш чтения в памяти CSV отличается от кэша пула носителей.
Общие вопросы планирования
Кэш чтения в памяти наиболее эффективен для рабочих нагрузок с интенсивным чтением, таких как инфраструктура виртуальных рабочих столов (VDI). И наоборот, если рабочая нагрузка крайне трудоемкая для записи, кэш может привести к большей нагрузке, чем значение, и его следует отключить.
Вы можете использовать до 80 % общей физической памяти для кэша чтения в памяти CSV. Будьте осторожны, чтобы оставить достаточно памяти для виртуальных машин!
Примечание.
Некоторые средства микробнчмаркинга, такие как DISKSPD и vm Fleet , могут привести к худшим результатам с включенным кэшем чтения в памяти CSV, чем без него. По умолчанию виртуальный парк виртуальных машин создает один 10 ГиБ VHDX на виртуальную машину — примерно 1 ТиБ для 100 виртуальных машин, а затем выполняет равномерно случайные операции чтения и записи в них. В отличие от реальных рабочих нагрузок, операции чтения не соответствуют каким-либо прогнозируемым или повторяющимся шаблонам, поэтому кэш в памяти не является эффективным и просто несет издержки.
Настройка кэша чтения в памяти
Кэш чтения в памяти CSV доступен в Azure Stack HCI, Windows Server 2019 и Windows Server 2016 с теми же функциями. В Azure Stack HCI и Windows Server 2019 он включен по умолчанию с 1 гибибайтом (GiB). В Windows Server 2016 он отключен по умолчанию.
Версия ОС | Размер кэша CSV по умолчанию |
---|---|
Azure Stack HCI | 1 ГиБ |
Windows Server 2019 | 1 ГиБ |
Windows Server 2016 | 0 (отключено) |
Настройка кэша с помощью Windows Admin Center
Чтобы настроить кэш с помощью Windows Admin Center, сделайте следующее:
- В Windows Admin Center подключитесь к кластеру и выберите "Параметры " в области "Сервис " слева.
- Выберите кэш в памяти в разделе "Хранилище " на панели "Параметры ".
- В правой области флажок включает или отключает кэш, а также можно указать максимальный объем памяти на сервер, выделенный для кэша.
- Затем нажмите кнопку Сохранить.
Настройка кэша с помощью PowerShell
Чтобы узнать, сколько памяти выделено с помощью PowerShell, выполните следующую команду от имени администратора:
(Get-Cluster).BlockCacheSize
Возвращаемое значение — в mebibytes (MiB) на сервер. Например, 1024
представляет 1 ГиБ.
Чтобы изменить объем выделенной памяти, измените это значение с помощью PowerShell. Например, чтобы выделить 2 ГиБ на сервер, выполните следующую команду:
(Get-Cluster).BlockCacheSize = 2048
Чтобы изменения вступили в силу немедленно, приостанавливайте и возобновляйте тома CSV или перемещайте их между серверами. Например, используйте этот фрагмент PowerShell для перемещения каждого CSV-файла на другой узел сервера и снова:
Get-ClusterSharedVolume | ForEach {
$Owner = $_.OwnerNode
$_ | Move-ClusterSharedVolume
$_ | Move-ClusterSharedVolume -Node $Owner
}
Следующие шаги
Дополнительные сведения см. также: