Pavel
Привет! Хочу настроить flavor таким образом, что бы инстансы с shared ядрами разворачивались строго на одной NUMA-ноде. Добавляю параметр hw:numa_nodes=‘1’ во flavor, это начинает работать, но все инстансы создаются исключительно в NUMA 0. Не могу нигде найти как сделать что бы инстансы распределялись равномерно между нодами.
Судя по The N parameter is an index of guest NUMA nodes and may not correspond to host NUMA nodes. For example, on a platform with two NUMA nodes, the scheduler may opt to place guest NUMA node 0, as referenced in hw:numa_mem.0 on host NUMA node 1 and vice versa. Similarly, the integers used for FLAVOR-CORES are indexes of guest vCPUs and may not correspond to host CPUs. As such, this feature cannot be used to constrain instances to specific host CPUs or NUMA nodes. Это некий порядковый норме. А всем ВМ хватило места на всех узлах в пределах numa? Есть вариант что шедулер проходит сначала по нудевой нума всех хостов, потом по первой и т.д.
Oleg
numa_topology_filter включен?
🖖🏼Stas
numa_topology_filter включен?
Да. enabled_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter,AggregateImagePropertiesIsolation,NUMATopologyFilter
🖖🏼Stas
В общем вот https://access.redhat.com/solutions/5352111
🖖🏼Stas
За закрытой частью: Resolution • At the time if this writting, this feature request was tracked via RHBZ #1872845. • One possible workaround would be to set the numa_node=2 in the flavor properties or set hw:mem_page_size=small which would first allocate all RAM from NUMA0 and then fallback to NUMA1.
Ilya
Пропихиваю фикс, с трудом получается
🖖🏼Stas
Пропихиваю фикс, с трудом получается
С виду отлично решение. Исползуете в проде?
Ilya
С виду отлично решение. Исползуете в проде?
Нет пока. У нас острота немного спала, когда отключили сабнумы на хостах. Осталось по две ноды на хост. Ну и топологии ВМ с 4 нума нодами убрали. Поэтому фикс не применяли.
Ilya
С виду отлично решение. Исползуете в проде?
Если хочется применить - предлагаю первый патчсет взять - он наиболее маленький и не страшный. А дальше коры и птл начали просить универсального решения, опцию в конфиге - там уже серьёзнее стало
🖖🏼Stas
Нет пока. У нас острота немного спала, когда отключили сабнумы на хостах. Осталось по две ноды на хост. Ну и топологии ВМ с 4 нума нодами убрали. Поэтому фикс не применяли.
Вот мы сейчас в активном поиске лучшей схемы. Пока выбираем между выделенными нумами или вообще без привязки к NUMA. Кажется, что сабнумы лучше держать включёнными в любом случае, если flavor по количеству ядер позволяет.
🖖🏼Stas
А у вас какой опыт в этом?
Ilya
А память для нумы вы как настраивать собираетесь ?
Ilya
большие странички динамические или статические ?
🖖🏼Stas
А память для нумы вы как настраивать собираетесь ?
А как тут настроить особо не понятно. Придутся надеятся на равномерную заполняемость, но это только прод покажет.
Я и твой кот
Пропихиваю фикс, с трудом получается
Отлично получается. Вам выкатили рациональные требования, вы их практически все закрыли. Вы молодец.
Ilya
Ну если динамические, то не вижу препятствий, чтобы сабнумы включить и равномерно размазать.
Ilya
А вы в итоге почему решили откзаться от сабнум?
У нас статическая память, поэтому слишком много надо учитывать - контейнеры с опенстечными сервисами эту память не могут использовать. И слишком много плясок с бубном чтобы балансировать свободную память вне больших страниц для контейнеров, сервисов хостов и т.д.
Ilya
По производительности статические и динамические большие страницы могут быть эквивалентны , поэтому я бы статику не использовал без веских причин
Pavel
У нас ещё и проблемы были с тем, что одна нума нода (нулевая) усиленно забивалась, остальные были свободные, и виртуалка с 4 нума доменами запуститься уже не могла. Сервер выпадал из работы.
🖖🏼Stas
У нас статическая память, поэтому слишком много надо учитывать - контейнеры с опенстечными сервисами эту память не могут использовать. И слишком много плясок с бубном чтобы балансировать свободную память вне больших страниц для контейнеров, сервисов хостов и т.д.
Почитав этот гайд, я все больше скланяюсь к тому, что для shared vcpu варинты оптимизации по NUMA только связывают руки. Планировщик ядра отлично распределяет задачи по ядрам и старается запускать их на тех NUMA нодах, где лежат данные. В наших тестах есть не большой прирост от того, что VM лежат на одной ноде, но этот прирост в рамках погрешности и на своершенно пустых гипервизорах. Я не уверен, что такой же прирост сохранится, когда на хосте будет 50-100 ВМ с разным типом нагрузки.
Pavel
Два нума домена - лучше. Плюсов у субнумадоменов не так уж много.
Pavel
А при каких условиях у вас это было? То есть какие параметры использовались?
О чём именно вопрос? 4 нума домена (два проца, субнумы). Много виртуалок. Нагруженый гипер
Ilya
=4
Ilya
:)
Pavel
Угу
🖖🏼Stas
=4
Если =4, то не понимаю в чем может быть проблема, ВМ равномерно распределяется на 4 ноды. VCPU CPU Affinity ---------------------- 0 0-11,48-59 1 0-11,48-59 2 0-11,48-59 3 0-11,48-59 4 0-11,48-59 5 0-11,48-59 6 12-23,60-71 7 12-23,60-71 8 12-23,60-71 9 12-23,60-71 10 12-23,60-71 11 12-23,60-71 12 24-35,72-83 13 24-35,72-83 14 24-35,72-83 15 24-35,72-83 16 24-35,72-83 17 24-35,72-83 18 36-47,84-95 19 36-47,84-95 20 36-47,84-95 21 36-47,84-95 22 36-47,84-95 23 36-47,84-95
Pavel
Если только чётно 4 процов
Ilya
были маленькие вм с одной нодой и жирненькие - на 4 ноды. Маленькие забивали нулевую, а после этого жирненькие на хост не могли залезть
Pavel
Угу
🖖🏼Stas
были маленькие вм с одной нодой и жирненькие - на 4 ноды. Маленькие забивали нулевую, а после этого жирненькие на хост не могли залезть
А, точно, про маленькие не подумал. Спасибо за фикс. Пойду попробую на свою схему это применить и посмотреть что получится.
AcidMan
камрады! а подскажите плиззз, по поводу resize существующих инстансов через новый flavor. делаю через horizon, пишет, что всё ок, но по факту ничего не меняется. релиз стека - виктория
J
камрады! а подскажите плиззз, по поводу resize существующих инстансов через новый flavor. делаю через horizon, пишет, что всё ок, но по факту ничего не меняется. релиз стека - виктория
Посмотри логи nova-scheduler, разберись выбирает ли он хост для запуска ресайзнутого инстанса. Если окажется что хост выбирается, то посмотри логи nova-compute на выбранном гипервизоре и глянь что происходит там.
Andrey
Привет
всем привет, помогите разобраться, почему получаю ошибку Requested instance NUMA topology cannot fit the given host NUMA topology , у меня 64 проца, на 0 нуме 3 тачки влезают, а на 1 только 2, хотя свободные процы есть, инстансы по 10вцпу
Привет
NUMATopologyFilter фильтр говорит что тачка не подходит, но как он это высчитал?
Pavel
numastat -m что говорит? Есть место в доменах?
Pavel
А флейвор на сколько доменов? Там есть параметр hw:numa_nodes?
Pavel
Тогда не понятно, почему. Нужно логи смотреть. Врубай дебаг в нова кондакторе, и там гляди в логах.
Ilya
NUMATopologyFilter фильтр говорит что тачка не подходит, но как он это высчитал?
Фильтр довольно простецкий, судя по тому, что часть ВМок залетает на хост, то отлуп вам даёт эта часть: instance_topology = (hardware.numa_fit_instance_to_host( host_topology, requested_topology, limits=limits, pci_requests=pci_requests, pci_stats=host_state.pci_stats)) if not instance_topology: LOG.debug("%(host)s, %(node)s fails NUMA topology " "requirements. The instance does not fit on this " "host.", {'host': host_state.host, 'node': host_state.nodename}, instance_uuid=spec_obj.instance_uuid)
Ilya
Правда это мастер ветка новы
Привет
похоже, спасибо
Привет
Built sibling_sets: defaultdict(<class 'list'>, {1: [{23, 55}, {25, 57}, {29, 61}, {31}, {17, 49}, {33}], 2: [{23, 55}, {25, 57}, {29, 61}, {17, 49}]}) _pack_instance_onto_cores /usr/lib/python3.6/site-packages/nova/virt/hardware.py:752
Привет
а это куда он пытается припинить?
Привет
вощем фильтр нужно ковырять
Ilya
Угу, а точнее - hardware.numa_fit_instance_to_host
Ilya
А в ней скорее всего сюда: got_cell = _numa_fit_instance_cell( host_cell, instance_cell, limits, cpuset_reserved)
Привет
пасиб!
Ilya
Ещё у вас может быть в настройках nova-compute какие-то ядра быть зарезервированы за системой: [compute] cpu_dedicated_set=2-17 cpu_shared_set=18-47
Ilya
тут например несколько процов в начале резервируются под систему, а под ВМ начиная со второго (выделенные ЦПУ) и с 18 шаренные
Ilya
Ну и если есть разделение на шаренные процы и выделенные - то тоже надо учитывать. ВМка с шаренными процами на пул с выделенными процами не заедет
Я и твой кот
ITkey ищет DevOps’а со знанием OpenStack’а под какой-то проект с Mirantis. Удалёнку поддерживают.
Я и твой кот
а $20k будет ?
Нет. ₽1.5млн./месяц не дали, я спрашивал.
Я и твой кот
Что-то там про online travel вроде сказали. Я так и не понял. Название клиента не упомянули.
Stanley
Так то иткеи хорошие ребята. :)
Я и твой кот
Stanley
А что ещё есть?
Ну это отдельная тема. :) Гораздо важнее, что ребята в иткей хорошие, профессиональные. Неплохой вариант, если предлагают.
Vyacheslav
Золота мало. Европейскую зп в России не предложат.
Да посмотри на Европу и сравни цену проживания
Vyacheslav
В Европе квартира от 700 евро в месяц
Vyacheslav
Ты за свою столько не платишь