Системные установки для производительности Verbs

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

Ускорение RDMA

Ускорение RDMA является протоколом расширения Глаголов (Verbs), для улучшения значения производительности операций записи RDMA и чтения RDMA в оборудовании Intel® Omni-Path. Данное расширение улучшает действенность обмена большими сообщениями для предоставления преимуществ, включая увеличение получения полосы пропускания при снижении использования ЦПУ. Эта функциональность ускоряет API Verbs OpenFabrics Alliance* (OFA) при том что не требует никаких изменений от потребителей API. Поскольку технология ускорения производится в самом драйвере хоста, сами приложения, исполняемые поверх API Verbs OFA, не требуют вносить никакие изменения в код.

Ускорение RDMA отключено по умолчанию. Для включения ускорения RDMA необходимо drk.xbnm dсе следующие условия.

Для разрешения Ускоренного RDMA выполните следующие шаги:

  1. Внесите изменения в файл /etc/modprobe.d/hfi1.conf (см. Установка параметров драйвера HFI1).

  2. в строке "опции HFI1" этого файла добавьте настройку cap_mask=0x4c09a01cbba.

  3. Перезапустите свой драйвер hfi1 чтобы активировать сделанные установки, как это описано в разделе Установка параметров драйвера HFI1.

Для применения Ускоренного RDMA убедитесь что ваше приложение или программное обеспечение промежуточного уровня (такое как программное обеспечение файловой системы) соответствует следующим условиям:

  1. Использует размер полезной нагрузки по крайней мере в 256 кБ.

  2. Настрило размер полезной нагрузки на применение множителя в 4 кБ.

  3. Выравнило все буферы данных на границы страниц в 4 кБ.

Улучшение одновременного исполнения параллельной файловой системы

Обсуждаемые настройки Ускоренного RDMA следует рассматривать как более предпочтительные для обмена файловой системы с высокой степенью распараллеливания при сопоставлении с настройкой эвристического параметра Adaptive Cache Memcpy.

Если описываемые настройки Ускоренного RDMA не работают должным образом, в качестве альтернативы вы можете включить Adaptive Cache Memcpy, установив параметр sge_copy_mode=2 аналогично прочим параметрам драйвера, как это описано в разделе Установка параметров драйвера HFI1.

Другим настраиваемым параметром драйвера, который может улучшить масштабируемость параллельной файловой системы (хранилища) является krcvqs (kernel receive queues - очереди приёма ядра).

В вычислительном узле, который является узлом клиента системы хранения вы можете пожелать попробовать значения большие, чем установленное по умолчанию krcvqs=2.

  1. Внесите изменения в файл /etc/modprobe.d/hfi1.conf (см. Установка параметров драйвера HFI1).

    
    New-VM -Name VM01 -Generation 2
     	   
  2. Замените значение krcvqs как это отображено в приводимом далее примере:

    
    options hfi1 sge_copy_mode=2 krcvqs=4
     	   

Приводимая выше настройка подразумевает только один активный VL. Если, скажем, имеется три активных VL (00, 01, 02) и сам обмен параллельной файловой системы осуществляется по VL 01, тогда хорошими установками krcvqs мугут быть krcvqs=2,4,2, чтобы избежать использования слишком большого объёма ресурсов в VL, применяемых не под хранилище.

В узле сервера системы хранения обычно нет никакого исполняемого обмена MPI или активности по вычислениям с плавающей точкой, поэтому для очередей приёма ядра можно использовать больше ядер. В этом случае применение таких установок как от krcvqs=4 вплоть до krcvqs=8 может предоставить лучшую пропускную способность и число операций IO в секунду для вашей файловой системы.

Lustre

Рекомендуется применять Lustre* Version 2.8 или новее, либо программное обеспечение Intel® Enterprise Edition для Lustre* Version 3.0. Процесс загрузки модуля Lustre автоматически загрузит все необходимые регулировки для оптимальной производительности Intel® Omni-Path.

Lustre* Version 2.10 содержит улучшения производительности в отношении Intel® OmniPath и прочих инфраструктур, в особенности для I- клиента для тестов I- сервера.

Тюнинг IBM Spectrum Scale (ранее GPFS) для Intel® OmniPath

Как уже упоминалось ранее, настройки Ускоренного RDMA должны быть предпочтительными установками для обмена в файловой системе с высоким распараллеливанием, такой как некий кластер с параллельной файловой системой IBM Spectrum Scale (ранее имевшей название General Parallel File System, GPFS {Прим. пер.: наш перевод GPFS 4.1: Концепции, планирование и руководство по установке}). Такие установки Ускоренного RDMA следует выполнить на всех тех узлах, которые вовлечены в обен большими сообщениями/ блоками вашей файловой системы. Например, в вашем файле /etc/modprobe.d/hfi1.conf и в самом сервере NSD и в узлах клиентов должны появиться установки cap_mask=0x4c09a01cbba.

Все необходимые условия для задействования Ускоренного RDMA определены в разделе Ускоренный RDMA. Для первых двух условий - размера полезной нагрузки ≥ 256 кБ и кратности полезной нагрузки 4 кБ - воспользуйтесь следующими установками параметров Spectrum Scale (регулировками):


NSD Server:
mmchconfig verbsRdmaMaxSendBytes=1024k, scatterBufferSize=1024k,
verbsRdmaMaxSendSge=40, maxMBpS=32000
 	   

Client/compute node:
mmchconfig verbsRdmaMaxSendBytes=1024k, scatterBufferSize=1024k,
verbsRdmaMaxSendSge=40, pagepool=4096M, prefetchPct=50, maxMBpS=16000
 	   

Что касается третьего условия - выравнивания буфера драйвера на границу страниц в 4 кБ - это всегда имеет место для обмена RDMA Spectrum Scale.

Если какие- то из узлов, вовлечённых в обмен файловой системы Spectrum Scale, имеют два адаптера Intel® Omni-Path, и вы желаете применять их оба для поддержки обмена в своей файловой системе, тогда для всех узлов воспользуйтесь командой mmchconfig чтобы установить значение параметра verbsPorts следующим образом:


verbsPorts="hfi1_0 hfi1_1"
 	   

Приводимые ниже регулировки BIOS семейств процессоров Intel® Xeon® E5 v3 и v4, которые берутся из Таблицы 2-1, были признаны особенно важными для рабочих нагрузок файловой системы Spectrum Scale:


IOU Non-posted Prefetch= Disabled
NUMA Optimized= Enable (aka Memory.SocketInterleave=NUMA)
Snoop Holdoff Count=9