Настроенные профили для оптимизации рабочей нагрузки Linux-сервера

16 мин чтения - 9 июня 2026 г.

hero section cover
Содержание
  • Настроенные профили для оптимизации нагрузки на сервер
  • Как работают настроенные профили
  • Выбор подходящего профиля для вашей рабочей нагрузки
  • Установка и применение профилей
  • Создание настраиваемого профиля для ИИ, машинного обучения и рабочих нагрузок с высокой пропускной способностью
  • Управление профилями в парке серверов
  • Заключение
Поделиться

Как выбирать, применять и настраивать профили для GPU, баз данных и Linux-серверов с высокой пропускной способностью, с примерами и советами по развертыванию Ansible.

Настроенные профили для оптимизации нагрузки на сервер

Настройки Linux по умолчанию оптимизированы для совместимости, а не для производительности. Демон tuned поставляется с предопределенными профилями, которые настраивают регуляторы ЦП, планировщики ввода-вывода, параметры ядра и сетевые буферы в соответствии с конкретной нагрузкой. В этой статье рассказывается, как работают профили, какой из них выбрать для типичных серверных ролей, а также как создавать и развертывать пользовательские профили в парке серверов.


 

Как работают настроенные профили

Профиль — это каталог в /usr/lib/tuned/profiles/ (system) или /etc/tuned/profiles/ (custom), содержащий файл tuned.conf файл. Файл конфигурации группирует параметры по плагинам: [cpu], [disk], [sysctl], [vm], [bootloader]и так далее. Активируйте профиль, и демон tuned применит все параметры за один раз, вместо того чтобы запускать десятки sysctl и sysfs команд вручную.

Профили могут наследовать друг друга с помощью include . Профиль throughput-performance , например, может служить основой для пользовательского профиля базы данных, который переопределяет только vm.swappiness настройку Transparent Huge Pages.

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

Выбор подходящего профиля для вашей рабочей нагрузки

tuned поставляется с десятком профилей, охватывающих наиболее распространенные рабочие нагрузки. Выберите тот, который соответствует тому, что на самом деле делает сервер, а не оставляйте balanced профиль по умолчанию

Рабочая нагрузкаПрофильЧто он делает
Обучение и инференция на GPUaccelerator-performanceФиксирует ЦП в низких состояниях C, поддерживая задержку между ЦП и графическим процессором на уровне менее 100 мкс
Базы данных (Postgres, MySQL, Redis)throughput-performanceОтключает энергосбережение, настраивает дисковый и сетевой ввод-вывод, отключает Transparent Huge Pages
Сетевые операции с высокой пропускной способностью (CDN, репликация, конвейеры данных)network-throughputУвеличивает сетевые буферы ядра для обеспечения устойчивой передачи данных с высокой пропускной способностью
Сервисы, чувствительные к задержкамnetwork-latency или latency-performanceФиксирует регулятор ЦП на performance, отключает глубокие C-состояния
Вычислительные кластеры и HPChpc-computeРасширяет возможности по снижению задержки и повышению производительности с помощью NUMA и настройки памяти
Инстансы VPS (гостевая ОС)virtual-guestСнижает степень использования свопа, увеличивает предзагрузку диска для паравиртуализированного ввода-вывода
Хосты с гипервизором KVMvirtual-hostНастраивает запись грязных страниц для рабочих нагрузок виртуальных машин
Смешанные или неизвестныеbalancedПо умолчанию. Оптимизирует энергоэффективность за счет производительности

Для конкретных движков баз данных поставляется также настроенная версия postgresql, mssql, а также oracle профили, которые идут дальше throughput-performance за счет настройки параметров общей памяти и планировщика ядра для этих движков.

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

Установка и применение профилей

Установите tuned на RHEL, Rocky, AlmaLinux или Fedora:

dnf install tuned
systemctl enable --now tuned

В Debian и Ubuntu пакет также называется tuned и устанавливается с помощью apt. Если power-profiles-daemon уже запущен, замаскируйте его, чтобы избежать конфликтов:

systemctl mask --now power-profiles-daemon

Перечислите доступные профили, спросите у tuned, что он рекомендует для данного оборудования, примените профиль и проверьте его:

tuned-adm list
tuned-adm recommend
tuned-adm profile throughput-performance
tuned-adm verify

Активный профиль сохраняется в /etc/tuned/active_profile и сохраняется после перезагрузки. Чтобы полностью отключить настройку и измерить базовые показатели, запустите tuned-adm off.

Создание настраиваемого профиля для ИИ, машинного обучения и рабочих нагрузок с высокой пропускной способностью

Когда стандартные профили позволяют решить 90 % задачи, создайте пользовательский профиль, который наследует настройки наиболее подходящего профиля и переопределяет остальные параметры. Начните с каталога и файла конфигурации:

mkdir -p /etc/tuned/ai-gpu
cat > /etc/tuned/ai-gpu/tuned.conf <<'EOF'
[main]
summary=Custom profile for GPU training with high-bandwidth networking
include=accelerator-performance
 
[cpu]
governor=performance
 
[sysctl]
kernel.numa_balancing=0
net.core.rmem_max=268435456
net.core.wmem_max=268435456
net.ipv4.tcp_rmem=4096 87380 268435456
net.ipv4.tcp_wmem=4096 65536 268435456
 
[vm]
transparent_hugepages=never
 
[bootloader]
cmdline=hugepagesz=2M hugepages=16384 <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit">iommu</a>=pt
EOF
 
tuned-adm profile ai-gpu

Ключевые настройки здесь:

  • numa_balancing=0 предотвращает перемещение ядром памяти между сокетами во время обучения, что часто является причиной задержек на двухпроцессорных системах с графическими процессорами.
  • Параметр rmem_max и tcp_rmem значения повышают верхний предел буфера сокета до 256 МБ. При межвузловых соединениях 25G, 40G или 100G между узлами обучения размеры буферов по умолчанию ограничивают пропускную способность значительно ниже скорости линии.
  • transparent_hugepages=never удаляет джиттер задержки, вызываемый THP для фреймворков, таких как PyTorch и TensorFlow, которые выделяют большие тензоры.
  • iommu=pt переводит IOMMU в режим пропускания, необходимый для пропускания GPU и сетевых карт, и снижает накладные расходы на DMA на «голом железе».

Все, что находится ниже [bootloader] требует перезагрузки. После активации профиля запустите tuned-adm verify , чтобы убедиться, что параметры выполнения применены, и проверьте journalctl -u tuned на наличие ошибок. Проведите тестирование производительности до и после с помощью iostat -xz, numastatи соответствующим инструментом для нагрузки (iperf3, fioили фактический прогон обучения).

Стоит четко обозначить один компромисс: отключение средств защиты ЦП дает прирост примерно на 3–8 % при нагрузках на графический процессор, но снижает производительность на 15–30 % при нагрузках с интенсивными вызовами системных функций. Принимайте решение, исходя из модели угроз для данного сервера. Внутри выделенного кластера для обучения, расположенного за брандмауэром, с математической точки зрения обычно выгоднее их отключить. На хосте с несколькими арендаторами оставьте их включенными.

Управление профилями в парке серверов

Применение tuned вручную перестает быть целесообразным, если серверов больше нескольких. Ansible решает эту задачу аккуратно. Один плейбук устанавливает tuned, создает каталоги пользовательских профилей в /etc/tuned/ через модуль template модуля и применяет нужный профиль для каждой группы инвентаризации.

Сопоставить профили с ролями в инвентаризации:

  • Узлы GPU и ИИ: accelerator-performanceили пользовательский профиль, наследующийся от него
  • Серверы баз данных: throughput-performance или профиль, специфичный для движка
  • Узлы CDN и пограничные узлы, передающие трафик с высокой пропускной способностью: network-throughput
  • API-серверы и веб-серверы за балансировщиком нагрузки: network-latency
  • VPS и гостевые системы KVM: virtual-guest
  • Хосты гипервизора: virtual-host

Дрейф — это реальная эксплуатационная проблема. Ручные sysctl изменения, обновления пакетов, которые поставляются с новыми настройками по умолчанию, или другой инструмент управления конфигурацией, наступающий на «настроенное», — все это приведет к расхождению настроек с тем, что указано в профиле. Запланируйте запуск задания Ansible tuned-adm active и tuned-adm verify запуск задания Ansible через cron и оповещение о сбоях. Следите /var/log/tuned/tuned.log за строками «Verification failed» (Проверка не удалась).

Заключение

tuned устраняет большую часть догадок при настройке ядра и sysctl. Настройки по умолчанию вполне подходят для общего использования, а профили, ориентированные на конкретные рабочие нагрузки, такие как accelerator-performance, throughput-performance, network-throughput позволяют добиться почти полной оптимизации без написания ни одного конфигурационного файла.

  • Выберите наиболее подходящий стандартный профиль, запустите tuned-adm verify, а затем проведите тестирование
  • Создавайте пользовательские профили, наследуя их от стандартного профиля и переопределяя только то, что вам нужно
  • Внимательно подойдите к балансировке NUMA, hugepages и размерам сетевых буферов на серверах с GPU и высокой пропускной способностью
  • Разверните систему с помощью Ansible и проводите аудит по расписанию, чтобы выявлять отклонения

Вам нужна мощность «bare-metal» с запасом пропускной способности, чтобы реально использовать эти настройки? Обратитесь в FDC по поводу выделенных серверов, созданных для высокопроизводительных и GPU-нагрузок.

Блог

События этой недели

Другие статьи
Настроенные профили для оптимизации рабочей нагрузки Linux-сервера

Настроенные профили для оптимизации рабочей нагрузки Linux-сервера

Как выбирать, применять и настраивать профили для GPU, баз данных и Linux-серверов с высокой пропускной способностью, с примерами и советами по развертыванию Ansible.

16 мин чтения - 9 июня 2026 г.

Тюнинг Linux OOM Killer для VPS: практическое руководство

12 мин чтения - 8 июня 2026 г.

Другие статьи
background image

У вас есть вопросы или вам нужно индивидуальное решение?

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание