Profili ottimizzati per l'ottimizzazione del carico di lavoro dei server Linux

16 min di lettura - 9 giugno 2026

hero section cover
Indice
  • Profili ottimizzati per l'ottimizzazione del carico di lavoro dei server
  • Come funzionano i profili ottimizzati
  • Scegliere il profilo giusto per il proprio carico di lavoro
  • Installazione e applicazione dei profili
  • Creazione di un profilo personalizzato per carichi di lavoro di IA, ML e a elevata larghezza di banda
  • Gestione dei profili su una flotta di server
  • Conclusione
Condividi

Come scegliere, applicare e personalizzare i profili sintonizzati per GPU, database e server Linux a elevata larghezza di banda, con esempi e suggerimenti per l'implementazione di Ansible.

Profili ottimizzati per l'ottimizzazione del carico di lavoro dei server

Le impostazioni predefinite di Linux sono ottimizzate per la compatibilità, non per le prestazioni. Il daemon tuned fornisce profili predefiniti che regolano i regolatori della CPU, gli scheduler I/O, i parametri del kernel e i buffer di rete per adattarsi a un carico di lavoro specifico. Questo post spiega come funzionano i profili, quale scegliere per i ruoli server più comuni e come creare e distribuire profili personalizzati su un parco macchine.


 

Come funzionano i profili ottimizzati

Un profilo è una directory all'interno /usr/lib/tuned/profiles/ (sistema) o /etc/tuned/profiles/ (personalizzata) contenente un tuned.conf file. Il file di configurazione raggruppa i parametri per plugin: [cpu], [disk], [sysctl], [vm], [bootloader], e così via. Attivando un profilo, il demone tuned applica tutti i parametri in una volta sola, anziché eseguire decine di sysctl e sysfs comandi manualmente.

I profili possono ereditare l'uno dall'altro tramite la include . Il throughput-performance , ad esempio, può fungere da base per un profilo database personalizzato che sovrascriva solo vm.swappiness l'impostazione Transparent Huge Pages.

tuned funziona in due modalità. L'ottimizzazione statica applica il profilo una volta all'attivazione e lascia il sistema inalterato, il che è ciò che si desidera sui server di produzione dove la coerenza conta più del risparmio energetico. L'ottimizzazione dinamica monitora l'utilizzo del disco, della rete e del carico in tempo reale e regola le impostazioni al volo. I profili di prestazioni disabilitano l'ottimizzazione dinamica per impostazione predefinita per evitare il sovraccarico del monitoraggio.

Scegliere il profilo giusto per il proprio carico di lavoro

tuned offre una dozzina di profili che coprono i carichi di lavoro più comuni. Scegli quello che corrisponde a ciò che il server fa effettivamente, piuttosto che lasciare il balanced .

Carico di lavoroProfiloCosa fa
Addestramento e inferenza GPUaccelerator-performanceBlocca la CPU in stati C a basso consumo, mantenendo la latenza da CPU a GPU al di sotto dei 100 µs
Database (Postgres, MySQL, Redis)throughput-performanceDisattiva il risparmio energetico, ottimizza l'I/O del disco e della rete, disattiva le Transparent Huge Pages
Reti ad alta larghezza di banda (CDN, replica, pipeline di dati)network-throughputAumenta i buffer di rete del kernel per trasferimenti sostenuti ad alta larghezza di banda
Servizi sensibili alla latenzanetwork-latency oppure latency-performanceFissa il regolatore della CPU su performance, disabilita gli stati C profondi
HPC e cluster di calcolohpc-computeMigliora le prestazioni in termini di latenza con NUMA e ottimizzazione della memoria
Istanze VPS (sistema operativo guest)virtual-guestRiduce lo swappiness, aumenta la lettura anticipata del disco per l'I/O paravirtualizzato
Host con hypervisor KVMvirtual-hostOttimizza il writeback delle pagine sporche per i carichi di lavoro delle VM
Misto o sconosciutobalancedImpostazione predefinita. Bilancia le prestazioni con l'efficienza energetica

Per motori di database specifici, tuned viene fornito anche postgresql, mssqle oracle profili che vanno oltre throughput-performance ottimizzando i parametri della memoria condivisa e dello scheduler del kernel per tali motori.

Sui server multi-socket, la topologia NUMA è importante. L'accesso alla memoria dei nodi remoti può essere da due a tre volte più lento rispetto all'accesso locale. Per i carichi di lavoro in cui la latenza è critica su sistemi dual-socket, disabilitare il bilanciamento NUMA automatico nel profilo e associare manualmente i processi a nodi specifici.

Installazione e applicazione dei profili

Installare tuned su RHEL, Rocky, AlmaLinux o Fedora:

dnf install tuned
systemctl enable --now tuned

Su Debian e Ubuntu il pacchetto si chiama tuned e si installa tramite apt. Se power-profiles-daemon è già in esecuzione, nascondilo per evitare conflitti:

systemctl mask --now power-profiles-daemon

Elenca i profili disponibili, chiedi a tuned cosa consiglia per l'hardware, applica un profilo e verifica:

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

Il profilo attivo è memorizzato in /etc/tuned/active_profile e rimane attivo anche dopo il riavvio. Per rimuovere completamente la configurazione e misurare il valore di riferimento, esegui tuned-adm off.

Creazione di un profilo personalizzato per carichi di lavoro di IA, ML e a elevata larghezza di banda

Quando i profili predefiniti ti consentono di raggiungere il 90% dell'obiettivo, crea un profilo personalizzato che erediti le impostazioni del profilo più simile e sovrascriva i parametri rimanenti. Inizia con una directory e un file di configurazione:

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

Le scelte chiave in questo caso:

  • numa_balancing=0 impedisce al kernel di migrare la memoria tra i socket durante le sessioni di addestramento, una causa comune di rallentamento sui sistemi GPU a doppio socket.
  • Il rmem_max e tcp_rmem aumentano il limite massimo del buffer del socket a 256 MB. Su interconnessioni da 25G, 40G o 100G tra i nodi di addestramento, le dimensioni predefinite del buffer limitano la velocità effettiva ben al di sotto della velocità di linea.
  • transparent_hugepages=never elimina il jitter di latenza causato da THP per framework come PyTorch e TensorFlow che allocano tensori di grandi dimensioni.
  • iommu=pt imposta IOMMU in modalità passthrough, necessaria per il passthrough di GPU e NIC e riduce l'overhead sul DMA bare-metal.

Qualsiasi cosa sotto [bootloader] richiede un riavvio. Dopo aver attivato il profilo, eseguire tuned-adm verify per confermare che i parametri di runtime siano stati applicati e controlla journalctl -u tuned la presenza di errori. Eseguire il benchmark prima e dopo con iostat -xz, numastate lo strumento di carico di lavoro pertinente (iperf3, fioo l'effettiva sessione di addestramento).

Un compromesso su cui vale la pena essere chiari: disabilitare le misure di sicurezza della CPU comporta un guadagno di circa il 3-8% sui carichi di lavoro della GPU, ma costa il 15-30% sui carichi di lavoro con modelli di chiamate di sistema intensivi. Decidere in base al modello di minaccia per il sistema. All’interno di un cluster di addestramento dedicato protetto da un firewall, i calcoli di solito favoriscono la loro disabilitazione. Su un host multi-tenant, lasciatele attive.

Gestione dei profili su una flotta di server

L'applicazione di tuned manualmente smette di essere praticabile oltre una manciata di server. Ansible gestisce questo aspetto in modo pulito. Un singolo playbook installa tuned, inserisce le directory dei profili personalizzati in /etc/tuned/ tramite il template modulo, e applica il profilo corretto per ogni gruppo di inventario.

Mappare i profili ai ruoli nell'inventario:

  • Nodi GPU e AI: accelerator-performance, o un profilo personalizzato che ne eredita le impostazioni
  • Server di database: throughput-performance o il profilo specifico del motore
  • Nodi CDN e edge che gestiscono traffico ad alta larghezza di banda: network-throughput
  • Server API e web dietro un bilanciatore di carico: network-latency
  • VPS e guest KVM: virtual-guest
  • Host hypervisor: virtual-host

La deriva è il vero problema operativo. Modifiche manuali sysctl , gli aggiornamenti dei pacchetti che introducono nuove impostazioni predefinite o un altro strumento di gestione della configurazione che interferisce con tuned causeranno tutti una divergenza delle impostazioni rispetto a quanto specificato nel profilo. Pianifica l'esecuzione di un processo Ansible tuned-adm active e tuned-adm verify su cron e invia un avviso in caso di errori. Controlla /var/log/tuned/tuned.log le righe "Verification failed".

Conclusione

tuned elimina gran parte delle congetture dalla messa a punto del kernel e di sysctl. Le impostazioni predefinite sono sufficienti per un uso generico, mentre i profili specifici per il carico di lavoro come accelerator-performance, throughput-performance, e network-throughput consentono di ottenere un'ottimizzazione quasi completa senza dover scrivere un singolo file di configurazione.

  • Scegliete il profilo predefinito più simile, eseguite tuned-adm verify, quindi esegui il benchmark
  • Crea profili personalizzati ereditando da un profilo predefinito e sovrascrivendo solo ciò che ti serve
  • Sii attento al bilanciamento NUMA, alle hugepages e alle dimensioni del buffer di rete su GPU e sistemi ad alta larghezza di banda
  • Esegui l'implementazione con Ansible ed esegui audit a intervalli regolari per individuare eventuali scostamenti

Hai bisogno di capacità bare-metal con margine di larghezza di banda sufficiente per utilizzare effettivamente queste impostazioni? Rivolgiti a FDC per server dedicati progettati per carichi di lavoro ad alta produttività e GPU.

Blog

In primo piano questa settimana

Altri articoli
Profili ottimizzati per l'ottimizzazione del carico di lavoro dei server Linux

Profili ottimizzati per l'ottimizzazione del carico di lavoro dei server Linux

Come scegliere, applicare e personalizzare i profili sintonizzati per GPU, database e server Linux a elevata larghezza di banda, con esempi e suggerimenti per l'implementazione di Ansible.

16 min di lettura - 9 giugno 2026

Messa a punto di Linux OOM Killer per VPS: una guida pratica

12 min di lettura - 8 giugno 2026

Altri articoli
background image

Avete domande o avete bisogno di una soluzione personalizzata?

icon

Opzioni flessibili

icon

Portata globale

icon

Distribuzione immediata

icon

Opzioni flessibili

icon

Portata globale

icon

Distribuzione immediata