Big Memory or Project Capitola

Одним из грядущих «бутылочных» горлышек гипервизоров называют оперативную память. Это связано с несколькими причинами:

  • кризис производства полупроводников 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:

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 не перестает нас удивлять, продолжая держать пальму первенства технологического лидера в серверной виртуализации.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *