Настройка биоса технологии Numa

Обновлено: 04.07.2024

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Структура управления рисками ISO 31000 – это международный стандарт, который предоставляет компаниям рекомендации и принципы для .

Чистый риск относится к рискам, которые находятся вне контроля человека и приводят к убыткам или их отсутствию без возможности получения финансовой выгоды.

Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .

Метаморфное и полиморфное вредоносное ПО – это два типа вредоносных программ (вредоносных программ), код которых может изменяться по мере их распространения.

В контексте вычислений Windows и Microsoft Active Directory (AD) идентификатор безопасности (SID) — это уникальное значение, которое равно .

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.

Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.

Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.

Износ флэш-памяти NAND — это пробой оксидного слоя внутри транзисторов с плавающим затвором флэш-памяти NAND.

Выносливость при записи — это количество циклов программирования/стирания (P/E), которое может быть применено к блоку флэш-памяти перед сохранением .

День 3. Тонкая настройка

Обзор

ЦП и локальные банки памяти объединяются для создания узлов NUMA. Например, в двухпроцессорном сервере каждый из двух ЦП имеет локальный банк памяти, всего два узла NUMA. Когда ЦП использует локальный банк памяти, доступ к памяти происходит очень быстро. Однако, если ЦП должен использовать удаленный банк памяти, время доступа не является оптимальным. Таким образом, цель состоит в том, чтобы разместить виртуализированную базу данных на одном узле NUMA для максимально возможной производительности.

Серверы AMD позволяют через BIOS определять более одного узла NUMA для каждого ЦП. Например, изменение числа узлов NUMA на сокет с 1 по умолчанию на 2 настраивает два узла NUMA на каждый локальный банк памяти. Это работает путем логического разделения банка локальной памяти на две равные части. В результате преимущество заключается в том, что каждый ЦП AMD может использовать два узла NUMA.

В этом передовом опыте количество узлов NUMA на сокет было установлено равным 2. Сервер PowerEdge R7525 имел два сокета, поэтому мы удвоили количество узлов NUMA по сравнению с исходной конфигурацией с двух до четырех. Кроме того, параметр BIOS «Кэш L3 как домен NUMA» был включен, чтобы разрешить использование большого кэша L3 для узлов NUMA.

Целью добавления 2 узлов NUMA и использования кэша L3 было ускорение работы восьми виртуализированных баз данных.

Рекомендация

Использование NUMA Nodes per Socket и кэша L3 в качестве параметров NUMA Domain BIOS обеспечило небольшое улучшение производительности для следующих параметров:

  • Новых заказов в минуту (NOPM).
  • Транзакций в минуту (TPM).
  • ЦП БД.

Эти показатели остались прежними, что указывает на отсутствие прироста производительности:

  • Использование ЦП сервера.
  • Максимальное количество операций ввода-вывода в секунду.

Эта передовая практика увеличения количества узлов NUMA на сокет может быть наиболее полезной для систем консолидированных баз данных. С выделенными производственными серверами, которые обслуживают только одну базу данных, добавление дополнительных узлов NUMA, скорее всего, не добавит ценности.

Этапы реализации

Выполните следующие действия, чтобы просмотреть/обновить NPS и кэш L3 в качестве параметров NUMA.

Обсуждение методологий мониторинга и настройки программного обеспечения, блока мониторинга производительности (PMU) микропроцессоров Intel и мониторинга платформы

Успех! Подписка добавлена.

Успех! Подписка удалена.

К сожалению, вы должны подтвердить, чтобы завершить это действие. Пожалуйста, нажмите на ссылку подтверждения в вашем электронном письме. Вы можете отправить повторно через свой профиль.

  • Сообщества Intel
  • Форумы разработчиков программного обеспечения
  • Темы разработки программного обеспечения
  • Настройка программного обеспечения, оптимизация производительности и мониторинг платформы
  • Параметры NUMA в BIOS

Параметры NUMA в BIOS

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я запускаю свое многопоточное приложение на XEON E5_2620, в BIOS которого включена/выключена функция NUMA.
Я профилирую свое приложение, используя pcm-numa Intel PCM.
когда я отключаю гиперпоточность, а также ядра одного сокета и запускаю приложение с включенной NUMA, не сообщается об удаленном доступе (на самом деле очень небольшое количество)
в отличие от того, когда опция NUMA отключена, есть почти столько удаленных, сколько местных. Никакой разницы в производительности.
означает ли это, что:
включение или выключение NUMA не отключает память? это просто сообщает ОС о физическом расположении памяти и соответственно распределяет потоки?

Заранее спасибо?

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Включить/отключить производительность NUMA — довольно сложная вещь.

Давайте начнем с отключения NUMA в BIOS. Если я правильно помню, в этом случае аппаратное обеспечение будет циклически перебирать кэш-линии из каждого сокета. То есть, когда ОС выделяет страницу памяти, она получает первые 64 байта, скажем, из сокета 0, следующие 64 байта из сокета 1, следующие из сокета 2 и т. д. Это приводит к тому, что все выделения памяти распределяются по всем сокетам. . Это может быть полезно в некоторых случаях, например, когда программное обеспечение не поддерживает NUMA и каким-то образом попадает в случай «работает медленнее с включенным numa». Я думаю, что уровень чередования может отличаться от уровня "на строку кэша" в некоторых системах или ОС (например, вы можете чередовать на уровне "на страницу").

Случай с поддержкой NUMA более сложен. В Linux есть команда numactl для отображения настроек numa и стратегий распределения памяти. Вот самый простой, лучший случай. Скажем, numa включена в биосе, а ОС поддерживает numa и занято более 1 сокета. Программное обеспечение может добраться до «локальной» памяти быстрее всего. Таким образом, если поток sw выделяет память на локальном узле numa и поток sw обращается к памяти из того же узла numa, он сможет получить доступ к памяти как можно быстрее. Если поток sw по какой-то причине мигрирует на другой узел numa после выделения памяти, то поток sw не сможет получить доступ к памяти так же быстро. Действительно ли это замедление влияет на производительность приложения, зависит от конкретного приложения.

В Linux (и, возможно, в Windows в настоящее время. Я просто не проверял) вы можете установить политики numa для процессов или потоков. То есть вы можете загрузиться с включенным numa, а затем указать ОС выполнить конкретное выделение памяти, «как если бы numa было отключено». То есть ОС может чередовать распределение между узлами numa (я думаю, на уровне чередования для каждой страницы). Это может быть полезно, если, скажем, выделение превышает объем памяти на каком-либо отдельном узле.

Мне только что сообщили об особой настройке HP, которая оказывает огромное влияние на производительность. Но прежде чем паниковать, ознакомьтесь с условиями:

  • вы используете серверы Proliant Gen9
  • эти серверы оснащены процессорами Intel Xeon E5 2600v3 и выше
  • у вас есть настройка по умолчанию для оптимизации размера группы NUMA

Если вы не соответствуете этим условиям, можете прекратить чтение и расслабиться. Если нет… возможно, вы захотите продолжить чтение.

Как упоминалось ранее, это влияет не только на Exchange. Кредит принадлежит Николасу, который выделил следующие базы знаний для Lync/SfB:

Другой PFE сообщил мне, что скрипт HealthChecker.ps1 проверяет параметр, сравнивая значения EnvProcessorCount и NumberOfLogicalProcessors

NUMA_15.jpg

NUMA_16.jpg

Это то, что не совсем очевидно. Когда вы проверите запущенные процессы, вы поймете, что большинство из них будут использовать только половину или меньше логических процессоров.

Это означает, что используется только часть ресурсов ЦП, что влияет на общую производительность приложений.

HP уже в 2015 году опубликовала рекомендацию по этому вопросу:

NUMA_14.jpg

Настройкой по умолчанию является Clustered, что в основном приводит к тому, что Windows создаст для каждого физического процессора группу процессоров.

В моем случае это сервер Proliant Gen9 с двумя физическими процессорами по 12 ядер каждый. Таким образом, в моем сценарии у нас будет 2 группы процессоров. По умолчанию это не проблема, но по умолчанию приложение ограничено одной группой и поэтому будет видеть и использовать ТОЛЬКО одну группу. Необходимо добавить код для поддержки нескольких групп.

Вы можете увидеть разницу, изменив график загрузки ЦП в диспетчере задач.

Следующее показано, когда для параметра Оптимизация группы NUMA установлено значение Кластеризация:

NUMA_01.jpg

Красный — это группа процессоров 0, а зеленый — группа процессоров 1. Очевидно, что первая группа процессоров более загружена

NUMA_02.jpg

То же, что и выше, с графом, настроенным на узлы NUMA

А здесь, когда установлено Flat:

NUMA_03.jpg

То же представление, что и выше, но для групповой оптимизации NUMA задано значение FLAT. Вы можете увидеть более равномерное использование ядер.

NUMA_04.jpg

То же, что и выше, с графом, настроенным на узлы NUMA

Есть несколько способов проверить, затронуты вы или нет. Вот несколько примеров:

NUMA_05.jpg

Система с оптимизацией группы NUMA, настроенной на кластеризацию

NUMA_06.jpg

Система с оптимизацией группы NUMA, настроенной на FLAT

Вы можете попробовать установить сходство с диспетчером задач

NUMA_07.jpg

Система с оптимизацией группы NUMA, для которой задано значение Clustered, выдает ошибку при попытке изменить привязку к рабочему процессу IIS

NUMA_08.jpg

Система с оптимизацией группы NUMA, установленной на FLAT, позволяет вам выбирать

Если вы группируете по ProcessorAffinity и имеете процессы со значением 0, это означает, что эти процессы привязаны к группе процессоров 0:

NUMA_09.jpg

16 процессов выполняются с ProcessorAffinity 0, что означает только на группе процессоров 0

NUMA_10.jpg

ни один из процессов не привязан к группе процессоров, так как оба процессора находятся в одной группе

Вы можете определить максимальное значение ProcessorAffinity с помощью следующей команды (заслуга принадлежит BarryCWT и его скрипту):

В нашем примере у меня есть 2 процессора с 12 ядрами каждый. Это означает значение 16777215 для всех процессоров

NUMA_11.jpg

Чтобы определить процессы, которые могут использовать преимущества этой конфигурации, вы можете запросить все процессы с ProcessorAffinity, равным 0

NUMA_12.jpg

Как видите, все рабочие IIS и, что особенно интересно, noderunner. Почему интересно? Когда вы посмотрите на командную строку этого процесса, вы увидите, что это он. который отвечает за индекс биржи и в любом случае очень требователен к процессору

NUMA_13.jpg

Существует простое решение, устраняющее описанную выше проблему. Мне только интересно, почему этот факт не так популярен, как должен быть. С одной стороны, это действительно не очень хорошая идея со стороны HP - испортить ОС по умолчанию, с другой стороны, я нашел некоторые доказательства того, что Microsoft знала об этой проблеме, по крайней мере, для CLR:

В любом случае это затрагивает вас как конечного пользователя, и это касается не только Exchange. Мы наблюдали такое же поведение на других системах без Exchange, и изменение настроек также дало нам прирост производительности.

Оглядываясь назад на последние 2 года, я убежден, что нескольких звонков в службу поддержки и CritSit можно было бы избежать.

Я надеюсь, что эта информация поможет вам избежать ненужных обращений в службу поддержки и обеспечить беспрепятственное обновление до последней версии Exchange или просто повысить производительность любого другого приложения.

Читайте также: