#server-performance

Dostosowane profile do optymalizacji obciążenia serwerów z systemem Linux

16 min czytania - 9 czerwca 2026

hero section cover

Jak wybierać, stosować i dostosowywać profile zoptymalizowane dla serwerów z procesorami graficznymi (GPU), serwerów bazodanowych oraz serwerów Linux o dużej przepustowości — wraz z przykładami i wskazówkami dotyczącymi wdrażania za pomocą Ansible.

Dostosowane profile do optymalizacji obciążenia serwerów

Domyślne ustawienia systemu Linux są dostosowane pod kątem kompatybilności, a nie wydajności. Demon tuned zawiera predefiniowane profile, które dostosowują regulatory procesora, harmonogramy operacji wejścia/wyjścia, parametry jądra oraz bufory sieciowe do konkretnego obciążenia. W tym wpisie omówiono, jak działają te profile, który z nich wybrać dla typowych ról serwerowych oraz jak tworzyć i wdrażać profile niestandardowe w całej flocie serwerów.


 

Jak działają profile dostosowane

Profil to katalog w ramach /usr/lib/tuned/profiles/ (system) lub /etc/tuned/profiles/ (niestandardowy), zawierający plik tuned.conf . Plik konfiguracyjny grupuje parametry według wtyczek: [cpu], [disk], [sysctl], [vm], [bootloader]i tak dalej. Po aktywowaniu profilu demon tuned stosuje wszystkie parametry za jednym razem, zamiast uruchamiać dziesiątki sysctl i sysfs polecenia ręcznie.

Profile mogą dziedziczyć ustawienia od siebie nawzajem za pomocą include . Na przykład throughput-performance , na przykład, może służyć jako podstawa dla niestandardowego profilu bazy danych, który zastępuje jedynie vm.swappiness ustawienie Transparent Huge Pages.

Funkcja tuned działa w dwóch trybach. Optymalizacja statyczna stosuje profil jednorazowo podczas aktywacji i nie ingeruje dalej w działanie systemu — jest to pożądane na serwerach produkcyjnych, gdzie spójność ma większe znaczenie niż oszczędność energii. Optymalizacja dynamiczna monitoruje w czasie rzeczywistym wykorzystanie dysków, sieci i obciążenia oraz dostosowuje ustawienia na bieżąco. Profile wydajności domyślnie wyłączają optymalizację dynamiczną, aby uniknąć obciążenia związanego z monitorowaniem.

Wybór odpowiedniego profilu dla danego obciążenia

tuned udostępnia kilkanaście profili obejmujących najczęściej spotykane obciążenia. Należy wybrać ten, który odpowiada faktycznemu przeznaczeniu serwera, zamiast pozostawiać domyślny balanced .

ObciążenieObciążenieDo czego służy
Trening i wnioskowanie na GPUaccelerator-performanceBlokuje procesor w stanach C o niskim poborze mocy, utrzymując opóźnienie między procesorem a procesorem graficznym poniżej 100 µs
Bazy danych (Postgres, MySQL, Redis)throughput-performanceWyłącza tryb oszczędzania energii, optymalizuje operacje wejścia/wyjścia na dysku i w sieci oraz wyłącza funkcję Transparent Huge Pages
Sieci o dużej przepustowości (CDN, replikacja, potoki danych)network-throughputZwiększa bufory sieciowe jądra w celu zapewnienia ciągłego transferu o dużej przepustowości
Usługi wrażliwe na opóźnienianetwork-latency lub latency-performanceUstawia regulator procesora na performance, wyłącza głębokie stany C
HPC i klastry obliczeniowehpc-computeZwiększa wydajność przy niskim opóźnieniu dzięki NUMA i optymalizacji pamięci
Instancje VPS (system operacyjny gościa)virtual-guestObniża współczynnik swappiness, zwiększa odczyt z wyprzedzeniem z dysku dla parawirtualizowanych operacji wejścia/wyjścia
Hosty z hiperwizorem KVMvirtual-hostOptymalizuje zapis brudnych stron dla obciążeń maszyn wirtualnych
Mieszane lub nieznanebalancedUstawienia domyślne. Priorytetem jest oszczędność energii kosztem wydajności

W przypadku konkretnych silników baz danych dostarczane są również dostosowane ustawienia postgresql, mssqloraz oracle profile, które wykraczają poza throughput-performance poprzez dostosowanie parametrów pamięci współdzielonej i harmonogramu jądra dla tych silników.

Na serwerach wieloprocesorowych istotna jest topologia NUMA. Dostęp do pamięci w węźle zdalnym może być dwa do trzech razy wolniejszy niż dostęp lokalny. W przypadku obciążeń, dla których opóźnienie ma kluczowe znaczenie, na komputerach dwuprocesorowych należy wyłączyć automatyczne równoważenie NUMA w profilu i ręcznie przypisać procesy do konkretnych węzłów.

Instalowanie i stosowanie profili

Zainstaluj tuned na systemach RHEL, Rocky, AlmaLinux lub Fedora:

dnf install tuned
systemctl enable --now tuned

W systemach Debian i Ubuntu pakiet nosi również nazwę tuned i instaluje się za pomocą apt. Jeśli power-profiles-daemon jest już uruchomiony, należy go wyłączyć, aby uniknąć konfliktów:

systemctl mask --now power-profiles-daemon

Wyświetl listę dostępnych profili, zapytaj `tuned`, co zaleca dla danego sprzętu, zastosuj profil i zweryfikuj go:

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

Aktywny profil jest zapisany w /etc/tuned/active_profile i pozostaje zachowany po ponownym uruchomieniu systemu. Aby całkowicie usunąć ustawienia i zmierzyć stan bazowy, uruchom tuned-adm off.

Tworzenie niestandardowego profilu dla obciążeń związanych ze sztuczną inteligencją, uczeniem maszynowym i wysoką przepustowością

Gdy profile domyślne pozwalają osiągnąć 90% zamierzonego efektu, należy utworzyć profil niestandardowy, który dziedziczy ustawienia z profilu najbardziej zbliżonego do potrzeb i nadpisuje pozostałe parametry. Należy zacząć od katalogu i pliku konfiguracyjnego:

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

Kluczowe opcje w tym przypadku:

  • numa_balancing=0 powstrzymuje jądro przed migrowaniem pamięci między gniazdami podczas sesji szkoleniowych, co jest częstą przyczyną spowolnień w komputerach z dwoma gniazdami GPU.
  • Opcja rmem_max i tcp_rmem zwiększają górny limit bufora gniazda do 256 MB. W przypadku połączeń 25G, 40G lub 100G między węzłami szkoleniowymi domyślne rozmiary buforów ograniczają przepustowość znacznie poniżej prędkości łącza.
  • transparent_hugepages=never usuwa wahania opóźnień powodowane przez THP w frameworkach takich jak PyTorch i TensorFlow, które alokują duże tensory.
  • iommu=pt przełącza IOMMU w tryb passthrough, niezbędny do passthrough procesorów graficznych i kart sieciowych, oraz zmniejsza obciążenie związane z operacjami DMA na sprzęcie typu bare-metal.

Wszystko poniżej [bootloader] wymaga ponownego uruchomienia systemu. Po aktywacji profilu należy uruchomić polecenie tuned-adm verify , aby potwierdzić zastosowanie parametrów środowiska uruchomieniowego, a następnie sprawdź journalctl -u tuned , czy nie ma błędów. Przeprowadź testy wydajności przed i po zmianie za pomocą iostat -xz, numastatoraz odpowiednim narzędziem do obciążenia (iperf3, fiolub rzeczywistego przebiegu szkolenia).

Warto wyraźnie zaznaczyć jeden kompromis: wyłączenie zabezpieczeń procesora zapewnia wzrost wydajności o około 3–8% w przypadku obciążeń graficznych, ale powoduje spadek wydajności o 15–30% w przypadku obciążeń charakteryzujących się intensywnymi wywołaniami systemowymi. Decyzję należy podjąć w oparciu o model zagrożeń dla danego systemu. W dedykowanym klastrze szkoleniowym chronionym zaporą sieciową kalkulacja zazwyczaj przemawia za ich wyłączeniem. Na hoście wielodostępnym należy pozostawić je włączone.

Zarządzanie profilami w całej flocie serwerów

Ręczne stosowanie narzędzia `tuned` przestaje być opłacalne, gdy liczba serwerów przekracza kilka sztuk. Ansible radzi sobie z tym sprawnie. Pojedynczy playbook instaluje `tuned` i umieszcza katalogi profili niestandardowych w lokalizacji /etc/tuned/ poprzez moduł template modułu, a także stosuje odpowiedni profil dla każdej grupy inwentarza.

Przypisywanie profili do ról w spisie:

  • Węzły GPU i AI: accelerator-performancelub profil niestandardowy, który dziedziczy po nim
  • Serwery baz danych: throughput-performance lub profil specyficzny dla silnika
  • Węzły CDN i brzegowe obsługujące ruch o dużej przepustowości: network-throughput
  • Serwery API i serwery WWW za modułem równoważenia obciążenia: network-latency
  • Maszyny wirtualne typu VPS i goście KVM: virtual-guest
  • Hosty hiperwizora: virtual-host

Odchylenie to prawdziwy problem operacyjny. Ręczne sysctl zmiany, aktualizacje pakietów wprowadzające nowe ustawienia domyślne lub ingerencja innego narzędzia do zarządzania konfiguracją w działanie tuned – wszystko to spowoduje, że ustawienia będą odbiegać od tego, co określa profil. Zaplanuj zadanie Ansible, które będzie uruchamiać się tuned-adm active i tuned-adm verify w systemie cron oraz skonfiguruj powiadomienia o niepowodzeniach. Zwracaj uwagę /var/log/tuned/tuned.log na wiersze typu „Verification failed”.

Wniosek

tuned eliminuje większość domysłów związanych z dostrajaniem jądra i sysctl. Ustawienia domyślne są wystarczające do ogólnego użytku, a profile dostosowane do konkretnych obciążeń, takie jak accelerator-performance, throughput-performance, oraz network-throughput pozwalają w znacznym stopniu zoptymalizować system bez konieczności pisania ani jednego pliku konfiguracyjnego.

  • Wybierz profil fabryczny najbardziej odpowiadający Twoim potrzebom, uruchom polecenie tuned-adm verify, a następnie przeprowadź testy wydajności
  • Twórz profile niestandardowe, dziedzicząc z profilu domyślnego i nadpisując tylko te ustawienia, które są Ci potrzebne
  • Zwróć szczególną uwagę na równoważenie NUMA, strony typu hugepage oraz rozmiary buforów sieciowych na komputerach z kartami graficznymi i o dużej przepustowości
  • Wdrażaj za pomocą Ansible i przeprowadzaj audyty zgodnie z harmonogramem, aby wychwycić odchylenia

Potrzebujesz mocy obliczeniowej typu bare-metal z rezerwą przepustowości, aby faktycznie korzystać z tych ustawień? Porozmawiaj z FDC o serwerach dedykowanych zaprojektowanych z myślą o obciążeniach wymagających wysokiej przepustowości i wykorzystujących procesory graficzne.

Blog

Polecane w tym tygodniu

Więcej artykułów
Samouczek dotyczący programu iperf3: Testowanie prędkości sieci w systemach Linux i Windows
#bandwidth#server-performance

Samouczek dotyczący programu iperf3: Testowanie prędkości sieci w systemach Linux i Windows

Zainstaluj iperf3, przeprowadź testy przepustowości i dostosuj bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe oraz testy 10GbE+.

10 min czytania - 7 maja 2026

#server-performance

Dostosowane profile do optymalizacji obciążenia serwerów z systemem Linux

16 min czytania - 9 czerwca 2026

Więcej artykułów
background image

Masz pytania lub potrzebujesz niestandardowego rozwiązania?

icon

Elastyczne opcje

icon

Globalny zasięg

icon

Natychmiastowe wdrożenie

icon

Elastyczne opcje

icon

Globalny zasięg

icon

Natychmiastowe wdrożenie