#server-performance

Anpassade profiler för optimering av arbetsbelastningen på Linux-servrar

16 min läsning - 9 juni 2026

hero section cover

Hur man väljer, tillämpar och anpassar optimerade profiler för GPU-, databas- och Linux-servrar med hög bandbredd, med exempel och tips för distribution med Ansible.

Justerade profiler för optimering av serverarbetsbelastning

Linux standardinställningar är anpassade för kompatibilitet, inte prestanda. Daemonen ”tuned” levereras med fördefinierade profiler som justerar CPU-regulatorer, I/O-schemaläggare, kärnparametrar och nätverksbuffertar för att passa en specifik arbetsbelastning. Det här inlägget beskriver hur profilerna fungerar, vilken man ska välja för vanliga serverroller och hur man skapar och distribuerar anpassade profiler över en serverpark.


 

Så här fungerar anpassade profiler

En profil är en katalog under /usr/lib/tuned/profiles/ (system) eller /etc/tuned/profiles/ (anpassad) som innehåller en tuned.conf fil. Konfigurationsfilen grupperar parametrarna efter plugin: [cpu], [disk], [sysctl], [vm], [bootloader], och så vidare. När du aktiverar en profil tillämpar tuned-daemonen alla parametrar på en gång, istället för att köra dussintals sysctl och sysfs kommandon manuellt.

Profiler kan ärva från varandra med include direktivet. throughput-performance profilen kan till exempel fungera som grund för en anpassad databasprofil som endast åsidosätter vm.swappiness inställningen för Transparent Huge Pages.

tuned körs i två lägen. Statisk inställning tillämpar profilen en gång vid aktivering och lämnar sedan systemet ifred, vilket är vad man vill ha på produktionsservrar där konsistens är viktigare än energibesparingar. Dynamisk inställning övervakar disk-, nätverks- och belastningsanvändning i realtid och justerar inställningarna löpande. Prestandaprofilerna inaktiverar dynamisk inställning som standard för att undvika övervakningens extra belastning.

Att välja rätt profil för din arbetsbelastning

tuned levererar ett dussin profiler som täcker de vanligaste arbetsbelastningarna. Välj den som stämmer överens med vad servern faktiskt gör, istället för att behålla standard balanced .

ArbetsbelastningArbetsbelastningVad den gör
GPU-träning och inferensaccelerator-performanceLåser fast CPU:n i låga C-tillstånd, vilket håller latensen mellan CPU och GPU under 100 µs
Databaser (Postgres, MySQL, Redis)throughput-performanceInaktiverar energisparläge, optimerar disk- och nätverks-I/O samt inaktiverar Transparent Huge Pages
Nätverk med hög bandbredd (CDN, replikering, datapipelines)network-throughputUtökar kärnans nätverksbuffertar för kontinuerliga överföringar med hög bandbredd
Latenskänsliga tjänsternetwork-latency eller latency-performanceStäller in CPU-regulatorn på performance, inaktiverar djupa C-tillstånd
HPC och beräkningsklusterhpc-computeFörbättrar prestanda vid låg latens med NUMA och minnesoptimering
VPS-instanser (gäst-OS)virtual-guestSänker swappiness, ökar diskens förläsning för paravirtualiserad I/O
KVM-hypervisorvärdarvirtual-hostJusterar skrivåterföring av smutsiga sidor för VM-arbetsbelastningar
Blandad eller okändbalancedStandard. Prioriserar energieffektivitet framför prestanda

För specifika databasmotorer levereras tuned även postgresql, mssql, samt oracle profiler som går längre än throughput-performance genom att finjustera parametrarna för delat minne och kärnans schemaläggare för dessa motorer.

På servrar med flera socklar spelar NUMA-topologin roll. Minnesåtkomst till avlägsna noder kan vara två till tre gånger långsammare än lokal åtkomst. För latenskritiska arbetsbelastningar på datorer med två socklar bör du inaktivera automatisk NUMA-balansering i profilen och manuellt koppla processer till specifika noder.

Installera och tillämpa profiler

Installera tuned på RHEL, Rocky, AlmaLinux eller Fedora:

dnf install tuned
systemctl enable --now tuned

På Debian och Ubuntu heter paketet också tuned och installeras via apt. Om power-profiles-daemon redan körs, maskera det för att undvika konflikter:

systemctl mask --now power-profiles-daemon

Visa tillgängliga profiler, fråga tuned vad det rekommenderar för hårdvaran, tillämpa en profil och verifiera den:

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

Den aktiva profilen sparas i /etc/tuned/active_profile och bevaras även efter omstart. För att ta bort alla inställningar helt och mäta basvärdet, kör tuned-adm off.

Skapa en anpassad profil för AI, ML och arbetsbelastningar med hög bandbredd

När standardprofilerna täcker 90 % av dina behov kan du skapa en anpassad profil som bygger vidare på den profil som passar bäst och överskriver de återstående parametrarna. Börja med en katalog och en konfigurationsfil:

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

De viktigaste valen här:

  • numa_balancing=0 förhindrar att kärnan flyttar minne mellan socklar under träningskörningar, en vanlig orsak till avbrott på GPU-datorer med dubbla socklar.
  • Den rmem_max och tcp_rmem höjer taket för socketbuffertarna till 256 MB. Vid 25G-, 40G- eller 100G-förbindelser mellan träningsnoder begränsar standardbuffertstorlekarna genomströmningen till en nivå långt under linjehastigheten.
  • transparent_hugepages=never tar bort den latensvariation som THP orsakar för ramverk som PyTorch och TensorFlow som allokerar stora tensorer.
  • iommu=pt sätter IOMMU i passthrough-läge, vilket krävs för GPU- och NIC-passthrough och minskar overhead vid bare-metal-DMA.

Allt under [bootloader] kräver en omstart. Efter att profilen har aktiverats, kör tuned-adm verify för att bekräfta att körningsparametrarna har tillämpats och kontrollera journalctl -u tuned om det finns några fel. Gör prestandatester före och efter med iostat -xz, numastatoch det relevanta arbetsbelastningsverktyget (iperf3, fio, eller den faktiska träningskörningen).

En avvägning som är värd att tydliggöra: att inaktivera CPU-säkerhetsåtgärder ger ungefär 3–8 % prestandavinst för GPU-arbetsbelastningar men kostar 15–30 % prestanda för arbetsbelastningar med intensiva systemanrop. Besluta utifrån hotbilden för servern. Inom ett dedikerat träningskluster bakom en brandvägg talar beräkningarna oftast för att inaktivera dem. På en värd med flera användare ska du låta dem vara aktiverade.

Hantera profiler i en serverpark

Att installera tuned manuellt är inte längre praktiskt genomförbart när antalet servrar överstiger ett fåtal. Ansible hanterar detta smidigt. En enda playbook installerar tuned och lägger anpassade profilkataloger under /etc/tuned/ via template modulen och tillämpar rätt profil för varje inventeringsgrupp.

Koppla profiler till roller i inventeringen:

  • GPU- och AI-noder: accelerator-performance, eller en anpassad profil som ärver från den
  • Databasserver: throughput-performance eller den motorspecifika profilen
  • CDN- och edge-noder som hanterar trafik med hög bandbredd: network-throughput
  • API- och webbservrar bakom en lastbalanserare: network-latency
  • VPS- och KVM-gäster: virtual-guest
  • Hypervisor-värdar: virtual-host

Avvikelser är det verkliga driftsproblemet. Manuella sysctl ändringar, paketuppgraderingar som medför nya standardinställningar eller att ett annat konfigurationshanteringsverktyg tränger sig in på Tuned kommer alla att leda till att inställningarna avviker från vad profilen anger. Schemalägg ett Ansible-jobb som ska köras tuned-adm active och tuned-adm verify via cron och skicka en varning vid fel. Håll utkik /var/log/tuned/tuned.log efter rader med texten ”Verification failed”.

Slutsats

tuned eliminerar det mesta av gissningsarbetet vid inställning av kärnan och sysctl. Standardinställningarna är tillräckligt bra för allmänt bruk, och de arbetsbelastningsspecifika profilerna som accelerator-performance, throughput-performance, och network-throughput tar dig nästan hela vägen till optimering utan att du behöver skriva en enda konfigurationsfil.

  • Välj den standardprofil som ligger närmast, kör tuned-adm verifyoch kör sedan ett prestandatest
  • Skapa anpassade profiler genom att ärva från en standardprofil och endast ändra det du behöver
  • Var noggrann med NUMA-balansering, hugepages och nätverksbuffertstorlekar på GPU- och högbandbreddsmaskiner
  • Distribuera med Ansible och utför regelbundna granskningar för att upptäcka avvikelser

Behöver du bare-metal-kapacitet med tillräckligt bandbreddsmarginal för att faktiskt kunna använda dessa inställningar? Prata med FDC om dedikerade servrar byggda för hög genomströmning och GPU-arbetsbelastningar.

Blogg

Utvalda denna vecka

Fler artiklar
iperf3-handledning: Testa nätverkshastigheten på Linux och Windows
#bandwidth#server-performance

iperf3-handledning: Testa nätverkshastigheten på Linux och Windows

Installera iperf3, kör bandbreddstester och justera TCP-buffertarna för exakta resultat på Linux och Windows. Omfattar UDP-, dubbelriktade och 10GbE+-tester

10 min läsning - 7 maj 2026

Fler artiklar
background image

Har du frågor eller behöver du en anpassad lösning?

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning