Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.4. NUMA в Red Hat Enterprise Linux 6

Red Hat Enterprise Linux 6 включает целый ряд улучшений работы с NUMA, облегчающих адаптацию к изменяющимся требованиям оборудования.

4.4.1. Масштабирование

4.4.1.1. Топология

Ниже перечислены функции, помогающие Red Hat Enterprise Linux идентифицировать оборудование и архитектуру, тем самым облегчая оптимизацию производительности на низком уровне.
Определение топологии во время загрузки
Получение информации об оборудовании, включая сведения о логических процессорах, гиперпотоках, ядрах, сокетах, узлах NUMA и времени сообщения между узлами.
Планировщик CFS
Новый режим планирования обеспечивает равномерное распределение процессорных ресурсов. В комбинации с определением топологии это позволяет планировать выполнение процессов на ядрах в пределах одного сокета, исключая необходимость обращения к другим сокетам и сохраняя содержимое кэша.
malloc
malloc теперь оптимизирует выделение памяти, предпочитая выбирать фрагменты, расположенные как можно ближе к ядру, на котором выполняется процесс.
Выделение памяти буферу skbuff
Также оптимизирует выделение памяти, предпочитая выбирать фрагменты, расположенные как можно ближе к ядру, обслуживающему прерывания.
Привязка прерываний устройств
Драйверы устройств регистрируют информацию о процессорах, обрабатывающих прерывания. В дальнейшем можно ограничить их обслуживание процессорами одного сокета, что позволит поддерживать состояние кэша и уменьшая необходимость сообщения между разными сокетами.

4.4.1.2. Синхронизация в многопроцессорном окружении

Координация обработки задач между процессорами требует частых проверок с целью поддержки целостности данных. Red Hat Enterprise Linux включает следующие функции для оптимизации производительности в этой области:
Блокировка RCU (Read-Copy-Update)
Обычно приблизительно 90% блокировок обслуживают операции чтения. Блокировка RCU исключает необходимость получения эксклюзивного доступа для чтения. Этот режим используется при выделении страниц из кэша.
Алгоритмы распределения памяти процессоров и сокетов
Многие алгоритмы были обновлены и позволяют точно координировать работу процессорных ядер в одном сокете. Вместо спин-блокировок теперь используются методы индивидуального блокирования сокетов, а обновленные карты выделения памяти и списки страниц позволяют более эффективно использовать структуры карт данных.