Налаштовані профілі для оптимізації навантаження на сервер Linux

16 хв читання - 9 червня 2026 р.

hero section cover
Зміст
  • Налаштовані профілі для оптимізації навантаження сервера
  • Як працюють налаштовані профілі
  • Вибір правильного профілю для вашого робочого навантаження
  • Встановлення та застосування профілів
  • Створення власного профілю для AI, ML та робочих навантажень з високою пропускною здатністю
  • Управління профілями у парку серверів
  • Висновок
Поділитися

Як вибирати, застосовувати та налаштовувати налаштовані профілі для графічних процесорів, баз даних та високошвидкісних серверів 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
HPC та обчислювальні кластериhpc-computeПокращує співвідношення затримки та продуктивності за допомогою NUMA та налаштування пам'яті
Інстанції VPS (гостьова ОС)virtual-guestЗнижує рівень swappiness, збільшує попереднє читання з диска для паравіртуалізованого вводу-виводу
Хости гіпервізора KVMvirtual-hostНалаштовує запис брудних сторінок для робочих навантажень віртуальних машин
Змішані або невідоміbalancedЗа замовчуванням. Змінює продуктивність на енергоефективність

Для конкретних механізмів роботи з базами даних, tuned також постачається 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.

Створення власного профілю для AI, ML та робочих навантажень з високою пропускною здатністю

Коли стандартні профілі дозволяють досягти 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 та AI: accelerator-performanceабо користувацький профіль, що успадковує його
  • Сервери баз даних: throughput-performance або профіль, специфічний для двигуна
  • Вузли CDN та периферійні вузли, що передають трафік з високою пропускною здатністю: network-throughput
  • API та веб-сервери за балансувальником навантаження: network-latency
  • VPS та гості KVM: virtual-guest
  • Хости гіпервізора: virtual-host

Дрейф — це справжня операційна проблема. Ручні sysctl зміни, оновлення пакетів, що встановлюють нові значення за замовчуванням, або втручання іншого інструменту управління конфігурацією в налаштування — все це призведе до розбіжностей налаштувань із тим, що вказано у профілі. Заплануйте виконання завдання Ansible tuned-adm active та tuned-adm verify запуску через 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

Як вибирати, застосовувати та налаштовувати налаштовані профілі для графічних процесорів, баз даних та високошвидкісних серверів Linux, з прикладами та порадами щодо розгортання Ansible.

16 хв читання - 9 червня 2026 р.

Налаштування Linux OOM Killer для VPS: практичний посібник

12 хв читання - 8 червня 2026 р.

Більше статей
background image

Маєте запитання або потребуєте індивідуального рішення?

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання