Dostrojone profile dla optymalizacji obciążenia serwerów Linux

16 min czytania - 9 czerwca 2026

hero section cover
Spis treści
  • Dostosowane profile do optymalizacji obciążenia serwerów
  • Jak działają profile dostosowane
  • Wybór odpowiedniego profilu dla obciążenia
  • Instalowanie i stosowanie profili
  • Tworzenie niestandardowego profilu dla obciążeń związanych ze sztuczną inteligencją, uczeniem maszynowym i wysoką przepustowością
  • Zarządzanie profilami w całej flocie serwerów
  • Wniosek
Udostępnij

Jak wybrać, zastosować i dostosować dostrojone profile dla GPU, baz danych i serwerów Linux o wysokiej przepustowości, z przykładami i wskazówkami dotyczącymi wdrażania 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 i bufory sieciowe do konkretnego obciążenia. W tym poście omówiono, jak działają profile, który z nich wybrać dla typowych ról serwerów oraz jak tworzyć i wdrażać profile niestandardowe w całej flocie.


 

Jak działają profile dostosowane

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

Profile mogą dziedziczyć po sobie nawzajem dzięki include . Profil throughput-performance , na przykład, może służyć jako podstawa dla niestandardowego profilu bazy danych, który zastępuje tylko vm.swappiness ustawienie Transparent Huge Pages.

tuned działa w dwóch trybach. Strojenie statyczne stosuje profil jednokrotnie podczas aktywacji i nie ingeruje w system, co jest pożądane na serwerach produkcyjnych, gdzie spójność ma większe znaczenie niż oszczędność energii. Strojenie dynamiczne monitoruje wykorzystanie dysku, sieci i obciążenia w czasie rzeczywistym i dostosowuje ustawienia na bieżąco. Profile wydajności domyślnie wyłączają strojenie dynamiczne, aby uniknąć obciążenia związanego z monitorowaniem.

Wybór odpowiedniego profilu dla obciążenia

tuned udostępnia kilkanaście profili obejmujących najczęstsze obciążenia. Wybierz ten, który odpowiada rzeczywistym zadaniom serwera, zamiast pozostawiać domyślny balanced .

ObciążenieObciążenieCzym się zajmuje
Szkolenie 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, dostosowuje operacje wejścia/wyjścia dysku i 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 stał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
Klastry HPC i obliczeniowehpc-computeZwiększa wydajność w zakresie opóźnień dzięki NUMA i optymalizacji pamięci
Instancje VPS (system operacyjny gościa)virtual-guestObniża współczynnik swappiness, zwiększa odczyt z wyprzedzeniem na dysku dla parawirtualizowanych operacji wejścia/wyjścia
Hosty hiperwizora KVMvirtual-hostOptymalizuje zapis brudnych stron dla obciążeń maszyn wirtualnych
Mieszane lub nieznanebalancedUstawienia domyślne. Kompromis między wydajnością a energooszczędnością

Dla konkretnych silników baz danych dostarczane są również dostosowane ustawienia postgresql, mssqloraz oracle profile, które wykraczają poza throughput-performance dzięki dostrojeniu 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óźnienia mają krytyczne 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 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 zamaskować, aby uniknąć konfliktów:

systemctl mask --now power-profiles-daemon

Wyświetl dostępne profile, 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. 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 standardowe pozwalają osiągnąć 90% zamierzonego celu, należy stworzyć profil niestandardowy, który dziedziczy ustawienia z profilu najbardziej zbliżonego i zastępuje 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 wybory w tym przypadku:

  • numa_balancing=0 powstrzymuje jądro przed migrowaniem pamięci między gniazdami podczas sesji szkoleniowych, co jest częstą przyczyną zacięć w komputerach z dwoma gniazdami GPU.
  • Opcja rmem_max i tcp_rmem zwiększają 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 szybkoś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, wymagany do passthrough GPU i karty sieciowej oraz zmniejsza obciążenie przy DMA na sprzęcie bare-metal.

Wszystko poniżej [bootloader] wymaga ponownego uruchomienia. Po aktywacji profilu uruchom tuned-adm verify , aby potwierdzić zastosowanie parametrów środowiska uruchomieniowego, i sprawdź journalctl -u tuned , czy nie ma błędów. Przeprowadź testy porównawcze przed i po za pomocą iostat -xz, numastati odpowiednim narzędziem obciążeniowym (iperf3, fiolub rzeczywistego przebiegu szkolenia).

Warto wyraźnie wspomnieć o jednym kompromisie: wyłączenie zabezpieczeń procesora daje około 3–8% zysku w przypadku obciążeń GPU, ale kosztuje 15–30% w przypadku obciążeń z intensywnymi wzorcami wywołań systemowych. Decyzję należy podjąć w oparciu o model zagrożeń dla danej maszyny. W dedykowanym klastrze szkoleniowym za zaporą ogniową kalkulacja zazwyczaj przemawia za ich wyłączeniem. Na hoście wielodostępnym pozostaw je włączone.

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

Ręczne stosowanie programu tuned przestaje być opłacalne, gdy liczba serwerów przekracza kilka sztuk. Ansible radzi sobie z tym bez problemów. Pojedynczy playbook instaluje program tuned, umieszcza katalogi profili niestandardowych w /etc/tuned/ poprzez template modułu oraz stosuje odpowiedni profil dla każdej grupy inwentarza.

Mapowanie profili do ról w inwentarzu:

  • Węzły GPU i AI: accelerator-performancelub profil niestandardowy, który z niego dziedziczy
  • 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
  • Goście VPS i 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 inne narzędzie do zarządzania konfiguracją, które wchodzi w konflikt z tuned, spowodują, że ustawienia będą odbiegać od tego, co określa profil. Zaplanuj zadanie Ansible, które będzie uruchamiać tuned-adm active i tuned-adm verify w systemie cron oraz powiadomienia o błędach. Zwracaj uwagę /var/log/tuned/tuned.log na wiersze „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 najbliższy profil standardowy, uruchom tuned-adm verify, a następnie przeprowadź testy wydajności
  • Twórz profile niestandardowe, dziedzicząc z profilu standardowego i nadpisując tylko to, co jest potrzebne
  • Zwróć szczególną uwagę na równoważenie NUMA, strony ogromne oraz rozmiary buforów sieciowych na maszynach z GPU 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 zbudowanych z myślą o obciążeniach o wysokiej przepustowości i obciążeniach GPU.

Blog

Polecane w tym tygodniu

Więcej artykułów
Dostrojone profile dla optymalizacji obciążenia serwerów Linux

Dostrojone profile dla optymalizacji obciążenia serwerów Linux

Jak wybrać, zastosować i dostosować dostrojone profile dla GPU, baz danych i serwerów Linux o wysokiej przepustowości, z przykładami i wskazówkami dotyczącymi wdrażania Ansible.

16 min czytania - 9 czerwca 2026

Linux OOM Killer Tuning dla VPS: Praktyczny przewodnik

12 min czytania - 8 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