Настройка Nginx-DPDK
Наше решение совместимо с картами Intel® и Mellanox из перечня поддерживаемых карт.
Данная инструкция предназначена для карт Intel®. Для карт Mellanox будет разработана отдельная инструкция.
Установка fast-nginx из тестового репозитория
Ускоренная версия Nginx находится в тестовом репозитории в пакете fast-nginx. Для ее установки необходимо подключить публичный тестовый репозиторий в файле /etc/apt/sources.list.d/1.0.list
:
- Закомментировать имеющийся репозиторий:
deb hps://stable.see.selectel.ru selectos main contrib
. - Добавить тестовый репозиторий:
deb hps://testing.see.selectel.ru selectos main contrib
. - Выполнить
sudo apt update
для обновления кеша пакетного менеджера.
Установка ускоренной версии Nginx:
apt install fast-nginx
При установке пакета будут установлены все необходимые зависимости.
Конфигурационные файлы
При установке ускоренного Nginx создаётся директория /usr/local/fast-nginx
, в которой располагаются директории с конфигурационными файлами.
В /usr/local/fast-nginx
для настройки используются две директории: conf
и tools
.
- В директории
conf
хранятся главные конфигурационные файлы f-stack.conf и nginx.conf, которые нужно настроить перед запуском - В файле
f-stack.conf
содержится конфигурация DPDK, в которой нужно настроить перечисленные ниже параметры
Настройка f-stack.conf
Hexadecimal bitmask of cores to run on: номера используемых ядер для работы утилиты.
Пример расчета: при наличии в сервере процессора с 8 ядрами использование первого и четвертого ядра будет выглядеть так:
- в двоичном виде 10010000
- в шестнадцатеричном 0x90
В данном моменте количество и номера ядер являются абсолютной величиной и можно указать к использованию одно ядро одного процессора и три ядра второго, но есть вероятность некорректного распределения памяти для процессов, в связи с чем рекомендуем использовать порядковые номера ядер относительно каждого процессора в отдельности.
Все указанные ядра будут полностью использованы для Nginx-DPDK.
Number of memory channels: количество каналов памяти.
Получить информацию об их количестве можно из вывода
dmidecode -t memory | grep Locator
Конфигурация сети IPv4 под заголовком [port0]
Необходимо указать адресацию, которую будете использовать для работы сервиса. Имеющаяся в конфигурационном файле является примером.
Настройка nginx.conf
Это конфигурационный файл Nginx, который расположен в директории /usr/local/fast-nginx/conf
В файле nginx.conf обязательно должна быть строчка worker_processes
.
Это значение должно быть равно количеству ядер, указанное в маске Hexadecimal bitmask of cores to run on, которая указывается в файле f-stack.conf
.