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