Одним из грядущих “бутылочных” горлышек гипервизоров называют оперативную память. Это связано с несколькими причинами:
- кризис производства полупроводников 2021;
- в предыдущую десятилетку было построено так много заводов по производству DRAM, что их владельцы были вынуждены демпинговать в борьбе за потребителя;
- оперативная память не успевает вслед за процессорами понижать техпроцесс, вследствие чего количество ОЗУ на сокет ограничено (например, 6 каналами и двумя DIMM-слотами на каждый в Xeon Skylake). Количество ОЗУ на ядро перестало расти в последние годы, а вскоре, возможно, начнет падать;
- немаловажным аспектом также является и цена за гигабайт – в стоимости современного сервера ОЗУ дороже всего остального вместе взятого.
Унылое настоящее
Одной из попыток решить проблему дороговизны ОЗУ был Intel’s Optane Persistent Memory.
Optan’ы предлагали на выбор два варианта:
1) ‘Memory Mode’, в котором ОЗУ (DRAM) выполнял роль кэша, а сами Optan’ы – роль памяти. Компания Lenovo выпустила документ LP1084, согласно которому производительность Optan’ов была не на высоте, по сравнению с DRAM.
Кстати говоря, в vSphere 7.0 Update3 подобные графики вы сможете рисовать прямо в vSphere Client – появились счетчики Memory Bandwith и Memory Latecy, где можно выбрать DRAM и PMEM!
2) Также присутствовал ‘App Direct Mode‘, при котором в ESXi появлялось NVDIMM-устройство.
А дальше ESXi либо позволял создать новое NVDIMM-устройство, если гостевая ОС поддерживала NVDIMM-устройства (vPMem), либо складывал виртуальный диск на хранилище поверх NVDIMM (vPMemDisk).
Бонусик от William Lam: для vSphere 6.7 вы можете “выделить” кусок DRAM в качестве тестов PMEM, указав его в процентном соотношении к объему DRAM:
1 |
esxcli system settings kernel set -s fakePmemPct -v 25 |
Перезагрузка хоста – и у вас есть тестовый PMEM. Не кладите туда продуктивные данные – они обязательно потеряются при перезагрузке!
Текущая реализация не очень помогает решить проблему дороговизны ОЗУ, поэтому на конференции VMworld 2021 показали ряд альтернативных решений:
- CXL Memory;
- Project Capitola!!!111
CXL
Одной из перспективных технологий сейчас является CXL. Это попытка разместить DRAM/NVDIMM (aka Intel’s Optane/PMem) не в DIMM-слоты, а подключить их через PCI-E Gen5. В CXL-“коммутаторы” можно вставлять как DRAM, так и NVDIMM. Обратите внимание на то, что в дальнейшем CXL позволит раздавать DRAM на несколько серверов 😉
Вот один из вариантов грядущего “тиринга” памяти по скорости доступа:
На картинке представлен стандартный сервер с NUMA-архитектурой.
- L4 – это DRAM, принадлежащая конкретному процессору;
- L4.5 – DRAM других процессоров либо DRAM, подключенная в PCIEv5;
Картинка намекает, что где-то там бродит софт по организации и оркестрации этих уровней.
Затем ребята из Lenovo показали демо-образец:
Это сервер, на одном сокете которого установлено 128ГБ ОЗУ, на втором – всего 16ГБ. Также через экспериментальный экспандер, втыкаемый вместо NVMe-диска, туда добавлено 128ГБ ОЗУ (CXL).
Вжух! На скриншоте можно лицезреть три NUMA-узла: первые два сокета и память с CXL-экспандера. Соответственно, vSphere обращается с ней как с традиционной Numa-Remote памятью и назначает ее только при исчерпании основной памяти.
Project Capitola
Другой многообещающей технологией сейчас является многоуровневое управление памятью на уровне кластера: свободные ресурсы CXL/NVDIMM (PMem) хоста раздаются между другими узлами кластера.
Пока доступна только такая картинка для затравки, однако в подвалах VMware были запытаны несколько десятков ВМ, вследствие чего на докладе MCL1453 с VMworld 2021 были показаны следующие скриншоты:
1) В сервер были установлены как DRAM, так и NVDIMM.
2) Было сказано, что есть некий планировщик, который размещает “холодные” блоки ОЗУ в PMem, тем самым высвобождая DRAM под “горячие” (синяя линия на графиках).
Были проведены тесты HammerDB и Java Server Enterprise Workload (было акцентировано, что Java прям “У-у-ух, какая!” Memory Intensive). Во время проведения обоих тестов счетчик Active Memory не превышал 50% от общего объема сконфигурированной памяти.
Как видите, даже при “вырывании” у ВМ порядка 50% ОЗУ и подмены ее на NVDimm не происходило катастрофического падения производительности, которое мы наблюдали в начале статьи при использовании Optane Memory Mode!
Конечно, это еще не использование свободных ресурсов с другого хоста, но начало уже положено.
Выводы
На текущий момент обе технологии (CXL/Capitola) носят гордое звание Preview и, вроде бы, недоступны даже для бета-тестирования.
С другой стороны, VMware не перестает нас удивлять, продолжая держать пальму первенства технологического лидера в серверной виртуализации.