Riferimento pubblico alla riga di comando del kernel

Comprendi ogni controllo. Richiedi il profilo di produzione preciso.

Questo riferimento pubblico spiega finalità, valori accettati, implicazioni sulla latency, modalità di guasto e verifica dopo l'avvio. Non pubblica volutamente una riga di comando HFTKernel universale: i valori precisi dipendono da topologia CPU, collocazione NUMA, code NIC, gestione del tempo, storage, politica di sicurezza e carico di lavoro.

Regola tecnica

Non esiste una riga di comando universale per una bassa latency.

Un profilo di produzione deve mappare CPU di housekeeping, CPU di trading, thread fratelli SMT, nodi NUMA, code NIC e storage, thread RCU, workqueues, fonti temporali e affinità applicativa come un unico sistema.

Separa i controlli delle prestazioni dalla politica di rischio

Isolamento CPU, collocazione IRQ e comportamento NUMA sono controlli delle prestazioni. Mitigations, LSM, audit, ASLR, watchdog e impostazioni machine-check richiedono una decisione separata di sicurezza e operatività.

Verifica l'effetto, non la sintassi

Un parametro può non essere supportato, essere ridondante, venire sovrascritto dal firmware o modificato in seguito dallo userspace. Fa fede lo stato effettivo in sysfs, procfs, dmesg, affinità IRQ e latency misurata.

Profilo di produzione su richiesta

I valori precisi vengono generati per il tuo host e il tuo carico di lavoro.

Il team tecnico HFTKernel mappa CPU di trading e housekeeping, thread fratelli SMT, nodi NUMA, code NIC e storage, accesso di gestione, ripristino, gestione del tempo e sicurezza come un unico sistema prima di scegliere i parametri di avvio.

Riferimento ai parametri

Ogni controllo, le sue varianti e il suo effetto operativo

Cerca per parametro, sottosistema, valore, rischio o comando di verifica. Il riferimento pubblico spiega il controllo senza selezionare un valore di produzione.

Ti servono i valori selezionati, le maschere CPU e la riga di comando finale? Vengono generati dopo una revisione della topologia e non sono pubblicati come preimpostazione generica.
Richiedi il profilo preciso

Parametri: 5

Avvio, filesystem root, console e acquisizione dei crash

Parametri che selezionano kernel e filesystem root, definiscono il comportamento di montaggio iniziale, espongono la console seriale e riservano memoria per kdump.

BOOT_IMAGE Metadati del boot loader; non è un controllo della latency

Finalità

GRUB aggiunge comunemente questo token per registrare l'immagine del kernel selezionata. Il kernel upstream non lo usa come politica di regolazione; è utile soprattutto per la diagnostica e per correlare un avvio a un'immagine specifica.

Valori e varianti

BOOT_IMAGE=/boot/vmlinuz-<version> Percorso in stile filesystem usato da molte configurazioni GRUB.
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-<version> Notazione dei dispositivi GRUB.
omitted Valido; l'immagine selezionata rimane determinata dal boot loader.

Compromesso o modalità di guasto

Una stringa BOOT_IMAGE copiata può essere obsoleta o puramente descrittiva. Fa fede l'identità del kernel in esecuzione.

Verifica dopo l'avvio

cat /proc/cmdline
uname -r
cat /proc/version
Link permanente
root Selezione del dispositivo root da parte di kernel/initramfs

Finalità

Seleziona il dispositivo a blocchi o l'identità logica che diventerà il filesystem root. Una initramfs può risolvere il valore prima che venga montato il root effettivo.

Valori e varianti

root=UUID=<filesystem-uuid> Identificatore stabile del filesystem; generalmente preferibile a un nome di dispositivo variabile.
root=PARTUUID=<partition-uuid> Identificatore stabile della tabella delle partizioni.
root=LABEL=<label> or root=PARTLABEL=<label> Etichetta leggibile del filesystem o della partizione.
root=/dev/nvme0n1p2 or root=/dev/mapper/<name> Percorso diretto del dispositivo; semplice, ma la denominazione può variare con l'ordine di rilevamento.

Compromesso o modalità di guasto

Un valore errato impedisce l'avvio. Prima della distribuzione verifica che la initramfs contenga i driver necessari per storage, LVM, RAID o crittografia.

Verifica dopo l'avvio

findmnt -no SOURCE /
blkid
cat /proc/cmdline
Link permanente
ro Modalità di montaggio iniziale del filesystem root

Finalità

Richiede al kernel di montare inizialmente il filesystem root in sola lettura. Il sistema init normalmente esegue i controlli e in seguito lo rimonta in lettura e scrittura.

Valori e varianti

ro Montaggio iniziale in sola lettura.
rw Montaggio iniziale in lettura e scrittura.

Compromesso o modalità di guasto

La modifica può alterare il ripristino nelle prime fasi di avvio e il comportamento della initramfs; verifica i percorsi di recupero.

Verifica dopo l'avvio

findmnt -no OPTIONS /
cat /proc/cmdline
Link permanente
console Instradamento della console del kernel

Finalità

Controlla dove vengono inviati i messaggi della console del kernel. I valori della console seriale definiscono dispositivo, baud rate, parità e bit di dati; sulle piattaforme supportate sono disponibili anche console virtuali e locali.

Valori e varianti

console=tty0 Terminale virtuale locale.
console=ttyS<N>,<baud><parity><bits> Console seriale compatibile con 8250; esempi includono 115200n8 e 9600n8.
console=hvc0 Console virtuale dell'hypervisor sui guest supportati.
console=null Scarta l'output della console.
multiple console= tokens Replica l'output del kernel su più console idonee; verifica quale dispositivo diventa /dev/console.

Compromesso o modalità di guasto

Un output abbondante della console può essere costoso, soprattutto su un dispositivo seriale lento. Controlla livello e frequenza dei log invece di disabilitare indiscriminatamente l'accesso di ripristino.

Verifica dopo l'avvio

cat /proc/consoles
dmesg | head
stty -F /dev/ttyS0 2>/dev/null || true
Link permanente
crashkernel Riserva di memoria per kdump

Finalità

Riserva memoria per un kernel di acquisizione che può scrivere un vmcore dopo un panic. Il valore auto è implementato da alcune distribuzioni, ma non è una politica upstream di dimensionamento universalmente portabile.

Valori e varianti

crashkernel=<size> Riserva una quantità fissa, per esempio 512M.
crashkernel=<range>:<size>[,<range>:<size>…] Seleziona la dimensione della riserva in base alla RAM installata.
crashkernel=<size>,high plus crashkernel=<size>,low Separa le riserve alte e basse sulle architetture supportate.
crashkernel=<size>,cma Usa una riserva basata su CMA ove supportata.
crashkernel=auto Dimensionamento automatico specifico per la distribuzione; conferma il supporto nel kernel di destinazione e negli strumenti di avvio.
omitted Nessuna riserva per il kernel di acquisizione; kdump non può acquisire un vmcore.

Compromesso o modalità di guasto

La RAM riservata non è disponibile al kernel primario. Un kernel di acquisizione sottodimensionato fallisce proprio quando serve di più.

Verifica dopo l'avvio

grep -i "Crash kernel" /proc/iomem
systemctl status kdump 2>/dev/null || systemctl status kdump-tools 2>/dev/null || true
dmesg | grep -i crashkernel
Link permanente

Parametri: 5

Inattività della CPU, frequenza e topologia

Controlli per C-states, P-states, energy-performance bias e simultaneous multithreading.

intel_idle.max_cstate Selezione e profondità del driver Intel cpuidle

Finalità

Controlla lo stato di inattività più profondo esposto da intel_idle. Il valore 0 disabilita intel_idle e ripiega su un altro driver idle, solitamente acpi_idle; da solo non garantisce che la CPU rimanga in C0.

Valori e varianti

0 Disabilita intel_idle e ripiega sull'alternativa della piattaforma.
1 Espone solo lo stato intel_idle meno profondo.
2–9 Consente stati progressivamente più profondi fino all'indice del driver selezionato, secondo il supporto della CPU.
omitted Usa l'impostazione predefinita del driver e la tabella degli stati della piattaforma.

Compromesso o modalità di guasto

Un'inattività poco profonda migliora la regolarità del risveglio, ma aumenta consumo, calore, richiesta di ventilazione e potenzialmente la pressione sulla frequenza sostenibile.

Verifica dopo l'avvio

cat /sys/devices/system/cpu/cpuidle/current_driver
grep -H . /sys/devices/system/cpu/cpu0/cpuidle/state*/name 2>/dev/null
turbostat --quiet --show CPU,c1,c3,c6,c7 2>/dev/null || true
Link permanente
processor.max_cstate Limite degli stati di inattività ACPI del processore

Finalità

Limita lo stato di inattività ACPI più profondo registrato dal driver idle del processore. È rilevante soprattutto quando acpi_idle è attivo, anche se un altro driver idle è stato disabilitato o non è disponibile.

Valori e varianti

0 Nel codice upstream attuale, nessun C-state ACPI supera il ciclo di registrazione; il conseguente comportamento di ripiego deve essere verificato sulla piattaforma di destinazione.
1 Limita a C1.
2–8 Consente stati ACPI fino alla profondità selezionata, se esposti dal firmware.
9 or another value above the normal limit Può ignorare alcuni limiti della blacklist DMI; non è una raccomandazione per la latency.
omitted Usa le impostazioni predefinite di firmware e driver.

Compromesso o modalità di guasto

L'uso di 0 può produrre comportamenti di ripiego specifici della piattaforma. Non considerarlo un sinonimo portabile di «solo C0».

Verifica dopo l'avvio

cat /sys/devices/system/cpu/cpuidle/current_driver
grep -H . /sys/devices/system/cpu/cpu0/cpuidle/state*/name 2>/dev/null
cat /sys/module/processor/parameters/max_cstate 2>/dev/null || true
Link permanente
intel_pstate Modalità del driver Intel per la variazione di frequenza della CPU

Finalità

Seleziona la modalità operativa del driver di variazione della frequenza intel_pstate o ne impedisce il caricamento. La modalità scelta modifica la semantica dei controlli, il comportamento HWP e i governor disponibili.

Valori e varianti

disable Non abilitare intel_pstate.
active Usa la modalità attiva di intel_pstate e i suoi algoritmi interni performance/powersave.
passive Usa intel_pstate come driver di scaling con governor cpufreq generici.
force Forza intel_pstate su sistemi altrimenti esclusi; i controlli termici ed energetici della piattaforma possono risentirne.
no_hwp Non abilitare Hardware P-states.
hwp_only Carica solo dove HWP è disponibile.
support_acpi_ppc Rispetta i limiti ACPI _PPC.
per_cpu_perf_limits Espone i limiti di prestazioni per ogni CPU logica.
no_cas Disabilita il supporto allo scheduling basato sulla capacità nei sistemi ibridi.

Compromesso o modalità di guasto

Una politica di frequenza massima fissa può aumentare il throttling termico e ridurre la sostenibilità su tutti i core. Misura insieme la permanenza alle frequenze e la tail latency.

Verifica dopo l'avvio

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 2>/dev/null
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 2>/dev/null
cpupower frequency-info 2>/dev/null || true
Link permanente
epb Token di avvio non standard; Intel Energy Performance Bias viene normalmente configurato tramite sysfs o x86_energy_perf_policy

Finalità

Rappresenta una politica Energy Performance Bias negli alberi del kernel o negli strumenti di avvio che interpretano esplicitamente il token. Linux upstream normalmente espone Intel EPB per CPU tramite energy_perf_bias e non definisce epb= come parametro generico della riga di comando del kernel.

Valori e varianti

0 Preferenza massima per le prestazioni nell'interfaccia EPB.
1–14 Compromesso intermedio tra prestazioni ed energia.
15 Preferenza massima per il risparmio energetico.
performance, balance-performance, normal, balance-power, power Valori nominali accettati dall'interfaccia sysfs per CPU sui kernel supportati.

Compromesso o modalità di guasto

Firmware, sospensione/ripresa, hotplug CPU o un servizio di gestione energetica possono sovrascrivere EPB. Considera la politica selezionata come uno stato di esecuzione gestito e verificala continuamente.

Verifica dopo l'avvio

grep -H . /sys/devices/system/cpu/cpu*/power/energy_perf_bias 2>/dev/null
x86_energy_perf_policy --debug 2>/dev/null | head -n 40 || true
dmesg | grep -i "unknown kernel command line.*epb" || true
Link permanente
nosmt Controllo di simultaneous multithreading

Finalità

Disabilita i thread SMT secondari affinché ogni core fisico esponga al massimo una CPU logica online. Può ridurre la contesa tra thread fratelli nelle unità di esecuzione, nelle cache e in alcuni percorsi degli interrupt.

Valori e varianti

nosmt Disabilita SMT all'avvio; la riattivazione durante l'esecuzione può rimanere possibile se piattaforma e kernel la consentono.
nosmt=force Forza la disattivazione di SMT e impedisce la riattivazione durante l'esecuzione.
omitted Usa le impostazioni predefinite di firmware e kernel.

Compromesso o modalità di guasto

Disabilitare SMT riduce la capacità delle CPU logiche e può spostare più attività in background su un numero minore di CPU di housekeeping.

Verifica dopo l'avvio

cat /sys/devices/system/cpu/smt/control
cat /sys/devices/system/cpu/smt/active
lscpu -e=CPU,CORE,SOCKET,ONLINE
Link permanente

Parametri: 6

Comportamento dei tick, isolamento CPU, collocazione IRQ e RCU

Il gruppo centrale di controllo della latency: CPU full-dynticks, isolamento dei domini dello scheduler, affinità di housekeeping, sfalsamento dei timer e RCU callback offload.

nohz Soppressione dei tick in inattività

Finalità

Controlla il comportamento tickless-idle del kernel quando è stato compilato con il supporto NO_HZ richiesto. La modalità abilitata consente alle CPU inattive di interrompere il tick periodico dello scheduler.

Valori e varianti

on Abilita tickless idle ove supportato.
off Disabilita tickless idle e mantiene i tick periodici.
omitted Usa l'impostazione predefinita della configurazione del kernel.

Compromesso o modalità di guasto

Il parametro non ha effetto se il kernel in esecuzione non dispone del supporto corrispondente in fase di compilazione.

Verifica dopo l'avvio

grep -E "CONFIG_NO_HZ(_IDLE|_FULL)?=" /boot/config-$(uname -r) 2>/dev/null
cat /proc/cmdline
Link permanente
skew_tick Distribuzione delle fasi dei tick periodici per CPU

Finalità

Controlla se l'attività dei tick periodici viene sfalsata tra le CPU invece di attivare tutti i tick nello stesso istante. La funzione può ridurre la contesa sui lock e le interferenze sincronizzate sui sistemi di grandi dimensioni.

Valori e varianti

0 Non sfalsare intenzionalmente i tick periodici.
1 Distribuisce le fasi dei tick tra le CPU.

Compromesso o modalità di guasto

Il compromesso è un consumo maggiore, perché possono ridursi le opportunità di inattività dell'intero package.

Verifica dopo l'avvio

cat /proc/cmdline
trace-cmd record -e timer -e irq -e sched sleep 5 2>/dev/null || true
Link permanente
irqaffinity Maschera predefinita di affinità IRQ

Finalità

Imposta l'elenco CPU predefinito per gli IRQ che non ricevono una politica di affinità più specifica. La maschera CPU selezionata determina dove inizia la gestione degli interrupt altrimenti non assegnati.

Valori e varianti

irqaffinity=<cpu-list> CPU e intervalli separati da virgole, per esempio 0,4-7.
omitted Usa la maschera di affinità predefinita dell'architettura/del kernel.

Compromesso o modalità di guasto

La CPU 0 può diventare un collo di bottiglia. Gli interrupt MSI-X gestiti possono non rispettare la maschera predefinita nello stesso modo degli IRQ ordinari.

Verifica dopo l'avvio

cat /proc/irq/default_smp_affinity
grep -H . /proc/irq/*/smp_affinity_list 2>/dev/null | head -n 80
cat /proc/interrupts
Link permanente
isolcpus Isolamento dei domini dello scheduler e degli IRQ gestiti

Finalità

Seleziona CPU e flag di isolamento per la rimozione dai domini dello scheduler, il comportamento full-dynticks e l'esclusione dagli IRQ gestiti. L'isolamento dei domini è una decisione all'avvio irreversibile fino al riavvio successivo.

Valori e varianti

isolcpus=<cpu-list> Forma legacy; l'isolamento dei domini è implicito.
isolcpus=domain,<cpu-list> Rimuove le CPU dai domini di bilanciamento del carico dello scheduler.
isolcpus=nohz,<cpu-list> Abilita il comportamento di isolamento full-dynticks per le CPU.
isolcpus=managed_irq,<cpu-list> Esclusione dalle maschere degli IRQ gestiti ove possibile, quando sono disponibili CPU di housekeeping.
combined flags Esempio: domain,nohz,managed_irq,2-15.

Compromesso o modalità di guasto

L'isolamento non sposta automaticamente thread del kernel, workqueues, code dei dispositivi, timer o thread applicativi. È una componente di un progetto completo di housekeeping.

Verifica dopo l'avvio

cat /sys/devices/system/cpu/isolated
cat /sys/devices/system/cpu/nohz_full
taskset -pc $$
cat /proc/interrupts
Link permanente
nohz_full Insieme di CPU full-dynticks

Finalità

Interrompe il tick periodico dello scheduler sulle CPU elencate mentre eseguono un carico di lavoro adatto, riducendo le interruzioni ricorrenti del kernel. Almeno una CPU di housekeeping rimane fuori dall'insieme; la CPU di avvio viene esclusa automaticamente.

Valori e varianti

nohz_full=<cpu-list> Seleziona le CPU full-dynticks, per esempio 2-15,18-31.
nohz_full=all Richiede tutte le CPU possibili; il kernel mantiene comunque le CPU di housekeeping necessarie.
omitted Nessuna CPU full-dynticks selezionata all'avvio.

Compromesso o modalità di guasto

Una CPU elencata può comunque ricevere interrupt, attività dei thread del kernel, page fault, TLB shootdowns e chiamate tra CPU se questi percorsi non vengono controllati separatamente.

Verifica dopo l'avvio

cat /sys/devices/system/cpu/nohz_full
cat /proc/cmdline
grep -E "CONFIG_NO_HZ_FULL=|CONFIG_RCU_NOCB_CPU=" /boot/config-$(uname -r) 2>/dev/null
Link permanente
rcu_nocbs RCU callback offload

Finalità

Sposta l'invocazione dei callback RCU dalle CPU selezionate a kthread dedicati. Un token senza valore non seleziona CPU all'avvio; è richiesto un elenco CPU esplicito o un meccanismo di esecuzione compatibile.

Valori e varianti

rcu_nocbs=<cpu-list> Scarica i callback per le CPU elencate, per esempio rcu_nocbs=1-3.
rcu_nocbs with no argument Nessuna CPU selezionata all'avvio; le CPU idonee possono essere attivate o disattivate successivamente tramite cpusets/interfacce di esecuzione.
rcu_nocb_poll Imposta i kthread nocb in polling invece di dipendere dai risvegli; può ridurre la latency di risveglio con un costo energetico elevato.
omitted Usa la collocazione normale dei callback, salvo che per le CPU nohz_full, i cui callback vengono scaricati automaticamente dai kernel attuali.

Compromesso o modalità di guasto

Lo scaricamento sposta il lavoro, non lo elimina. CPU di housekeeping sottodimensionate possono accumulare callback arretrati e causare blocchi dell'intero sistema.

Verifica dopo l'avvio

ps -eLo pid,tid,psr,cls,rtprio,comm | grep -E "rcuo|rcuc"
grep -E "rcu_nocbs|nohz_full" /proc/cmdline
cat /sys/devices/system/cpu/nohz_full
Link permanente

Parametri: 4

Clocksource, politica energetica PCIe e soluzioni alternative per la piattaforma

Controlli di gestione del tempo e di piattaforma che possono influire su latency di risveglio, attività periodiche e prevedibilità dei percorsi dei dispositivi.

pcie_aspm.policy Politica PCI Express Active State Power Management

Finalità

Seleziona la politica PCIe Active State Power Management. Le politiche disponibili bilanciano latency di risveglio del collegamento e consumo energetico della piattaforma, secondo il controllo di firmware e kernel su ogni collegamento.

Valori e varianti

default Usa la politica del firmware/predefinita.
performance Dà priorità alle prestazioni e disabilita ASPM/Clock PM secondo la politica del kernel.
powersave Abilita stati di risparmio energetico dei collegamenti con una politica bilanciata.
powersupersave Usa la politica di risparmio energetico più aggressiva disponibile.

Compromesso o modalità di guasto

Il consumo energetico aumenta e alcuni collegamenti controllati dal firmware potrebbero non seguire la politica richiesta.

Verifica dopo l'avvio

cat /sys/module/pcie_aspm/parameters/policy 2>/dev/null
lspci -vv | grep -E "LnkCap:|LnkCtl:" | head -n 80
Link permanente
acpi_pad.disable Controllo di ACPI Processor Aggregator specifico per versione/fornitore

Finalità

Controlla un interruttore ACPI Processor Aggregator specifico dell'albero del kernel, destinato a impedire le attività di idle injection. Il codice upstream attuale di acpi_pad potrebbe non esporre questo parametro del modulo; il supporto va quindi verificato nel kernel e nella distribuzione precisi.

Valori e varianti

acpi_pad.disable=1 Supportato solo dagli alberi del kernel che espongono questo parametro del modulo.
acpi_pad.disable=0 Comportamento abilitato/predefinito negli alberi che implementano il parametro.
driver/module blacklist policy Alternativa operativa portabile quando il driver è modulare ed è stato verificato come non necessario.

Compromesso o modalità di guasto

La rimozione del comportamento di gestione energetica della piattaforma può influire sulle aspettative del firmware. Valida sul modello preciso del server e sulla revisione BIOS.

Verifica dopo l'avvio

ls -la /sys/module/acpi_pad/parameters 2>/dev/null || true
grep -w acpi_pad /proc/modules 2>/dev/null || true
dmesg | grep -i "unknown kernel command line.*acpi_pad" || true
Link permanente
clocksource Selezione della fonte temporale del kernel

Finalità

Seleziona una clocksource del kernel per nome. Sui sistemi moderni invarianti e sincronizzati, TSC può offrire basso overhead di lettura e alta risoluzione, mentre altre piattaforme possono richiedere una fonte diversa validata.

Valori e varianti

clocksource=tsc Forza TSC quando il kernel lo considera disponibile.
clocksource=hpet Usa HPET ove disponibile; spesso comporta un overhead di lettura maggiore.
clocksource=acpi_pm Usa il timer ACPI PM ove disponibile.
clocksource=kvm-clock, hyperv_clocksource, xen, or another listed source Opzioni specifiche per hypervisor/piattaforma.
omitted Lascia che il kernel selezioni la fonte stabile con la valutazione migliore.

Compromesso o modalità di guasto

Non aggiungere tsc=reliable solo per sopprimere gli avvisi. Questa forzatura separata disabilita i controlli di stabilità ed è appropriata solo con garanzie di piattaforma validate.

Verifica dopo l'avvio

cat /sys/devices/system/clocksource/clocksource0/current_clocksource
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
dmesg | grep -Ei "clocksource|tsc"
Link permanente
no_timer_check Soluzione alternativa per il controllo della sorgente IRQ del timer x86

Finalità

Disabilita un controllo all'avvio destinato a rilevare un instradamento errato degli interrupt del timer. È una soluzione di compatibilità per specifici ambienti hardware o virtuali, non un'ottimizzazione generica della latency.

Valori e varianti

no_timer_check Salta il controllo dell'instradamento del timer.
omitted Esegue i controlli normali dei timer del kernel.

Compromesso o modalità di guasto

Sopprimere una diagnostica può nascondere un problema di instradamento dei timer della piattaforma che emerge in seguito come tick persi o instabilità della gestione del tempo.

Verifica dopo l'avvio

cat /proc/cmdline
dmesg | grep -Ei "timer.*check|timer.*irq|APIC timer"
Link permanente

Parametri: 9

Sicurezza, auditing, watchdog e machine checks

Interruttori ad alto impatto che scambiano sicurezza o diagnostica dei guasti con un minore overhead. Richiedono una decisione esplicita sui rischi di produzione.

selinux Inizializzazione di SELinux

Finalità

Controlla se SELinux viene inizializzato e quale modalità di politica viene usata all'avvio. Disabilitare l'inizializzazione rimuove l'applicazione delle politiche e gli hook di audit SELinux dal sistema attivo.

Valori e varianti

selinux=0 Disabilita SELinux all'avvio.
selinux=1 or omitted Consente l'inizializzazione di SELinux se compilato e configurato.
enforcing=0 Alternativa correlata: inizializza SELinux in modalità permissive, così che i divieti vengano registrati ma non applicati.
enforcing=1 Avvia in modalità enforcing quando la politica lo supporta.

Compromesso o modalità di guasto

selinux=0 è una decisione di sicurezza, non un requisito HFT generico. La riattivazione richiede normalmente un riavvio e può richiedere la rietichettatura del filesystem.

Verifica dopo l'avvio

getenforce 2>/dev/null || true
sestatus 2>/dev/null || true
cat /sys/fs/selinux/enforce 2>/dev/null || true
Link permanente
nosoftlockup Rilevatore di soft-lockup

Finalità

Disabilita il watchdog che segnala le CPU che trascorrono troppo tempo senza schedulare il thread del watchdog.

Valori e varianti

nosoftlockup Disabilita il rilevamento dei soft-lockup.
omitted Usa la politica del watchdog configurata.
watchdog_thresh=<seconds> Regolazione correlata: modifica la soglia di rilevamento dei lockup invece di disabilitarlo.

Compromesso o modalità di guasto

Senza il rilevatore, una CPU bloccata può rimanere invisibile finché non interviene un controllo di integrità esterno o un watchdog hardware.

Verifica dopo l'avvio

cat /proc/sys/kernel/watchdog 2>/dev/null
cat /proc/sys/kernel/soft_watchdog 2>/dev/null || true
dmesg | grep -i watchdog
Link permanente
mitigations Politica di mitigazione delle vulnerabilità della CPU

Finalità

Seleziona una politica di mitigazione delle vulnerabilità della CPU. Le modalità disponibili bilanciano l'overhead dei cambi di contesto e del controllo della speculazione con la protezione dalle vulnerabilità hardware applicabili.

Valori e varianti

off Disabilita tutte le mitigations facoltative.
auto Abilita le mitigations secondo lo stato di vulnerabilità della CPU e le impostazioni predefinite del kernel.
auto,nosmt Mitigations automatiche più disabilitazione di SMT ove necessario.
omitted Usa la politica compilata/predefinita.

Compromesso o modalità di guasto

A seconda della CPU, ciò può esporre dati di kernel, processi, VM e altri thread. Il guadagno di latency dipende da hardware e carico di lavoro.

Verifica dopo l'avvio

grep . /sys/devices/system/cpu/vulnerabilities/*
cat /proc/cmdline
dmesg | grep -i mitigation
Link permanente
audit Stato iniziale del sottosistema audit di Linux

Finalità

Controlla se il sottosistema audit del kernel è abilitato all'avvio. Lo stato selezionato influisce sull'overhead di generazione degli eventi e sulle evidenze disponibili per sicurezza, conformità e risposta agli incidenti.

Valori e varianti

audit=0 or audit=off Disabilita audit per questo avvio; non può essere abilitato completamente in seguito senza riavviare.
audit=1 or audit=on Abilita audit all'avvio.
omitted Usa l'impostazione predefinita configurata del kernel/della distribuzione.

Compromesso o modalità di guasto

Disabilitare audit può violare i requisiti di conformità, risposta agli incidenti e analisi forense.

Verifica dopo l'avvio

auditctl -s 2>/dev/null || true
cat /proc/cmdline
dmesg | grep -i "audit.*enabled"
Link permanente
mce Gestione di x86 machine-check

Finalità

Controlla la gestione di x86 Machine Check Exception e il relativo comportamento di ripristino. La disabilitazione rimuove la segnalazione asincrona degli errori hardware e la telemetria critica per guasti di CPU, memoria e interconnessioni.

Valori e varianti

off Disabilita la gestione machine-check.
no_cmci Disabilita la gestione degli interrupt per errori corretti e usa il polling ove supportato.
dont_log_ce Non registra gli errori corretti.
ignore_ce Ignora gli errori corretti.
no_lmce Disabilita il supporto Local Machine Check Exception.
bootlog or nobootlog Controlla la registrazione dei machine checks rilevati durante l'avvio sui kernel che lo supportano.
omitted Usa la gestione normale machine-check.

Compromesso o modalità di guasto

Disabilitare MCE può trasformare un componente in degrado diagnosticabile in corruzione silenziosa dei dati, riavvii inspiegati o picchi di latency non tracciabili.

Verifica dopo l'avvio

dmesg | grep -Ei "mce|machine check|hardware error"
ls /sys/devices/system/machinecheck 2>/dev/null || true
systemctl status rasdaemon 2>/dev/null || true
Link permanente
nomce Interruttore legacy x86-32 machine-check

Finalità

Disabilita il supporto Machine Check Exception sui kernel x86 a 32 bit. Non è il controllo normale per x86-64 e può essere ridondante quando è già selezionata un'altra politica machine-check.

Valori e varianti

nomce Disabilita MCE sulle build x86 a 32 bit supportate.
omitted Usa la politica normale dell'architettura.

Compromesso o modalità di guasto

Mantenere token ridondanti o non applicabili all'architettura rende più difficile verificare una configurazione di avvio e può nascondere presupposti errati.

Verifica dopo l'avvio

uname -m
cat /proc/cmdline
dmesg | grep -Ei "mce|machine check"
Link permanente
norandmaps Randomizzazione dello spazio degli indirizzi userspace

Finalità

Disabilita ASLR nello userspace, equivalente a impostare kernel.randomize_va_space=0. Gli indirizzi virtuali diventano più ripetibili, ma la resistenza agli exploit viene ridotta in modo significativo.

Valori e varianti

norandmaps Disabilita la randomizzazione dello spazio degli indirizzi userspace.
omitted Usa la politica ASLR sysctl/predefinita.
kernel.randomize_va_space=0, 1, or 2 Politica di esecuzione/sysctl: disabilitata, randomizzazione conservativa o randomizzazione completa.

Compromesso o modalità di guasto

Indebolisce la difesa contro gli exploit di corruzione della memoria sull'intero host.

Verifica dopo l'avvio

sysctl kernel.randomize_va_space
cat /proc/cmdline
Link permanente
nowatchdog Interruttore principale dei watchdog di lockup del kernel

Finalità

Disabilita sia i watchdog hard-lockup sia quelli soft-lockup. Interruttori separati e più specifici di disabilitazione dei watchdog possono quindi diventare ridondanti in presenza di questo flag.

Valori e varianti

nowatchdog Disabilita i watchdog di lockup del kernel.
omitted Usa la politica del watchdog configurata.
watchdog_thresh=<seconds> Alternativa correlata: mantiene il rilevamento ma aumenta la soglia.

Compromesso o modalità di guasto

Un hard-lockup o soft-lockup può persistere senza una segnalazione del kernel. Assicurati che rimanga un altro meccanismo indipendente di verifica della vitalità.

Verifica dopo l'avvio

cat /proc/sys/kernel/watchdog 2>/dev/null
cat /proc/sys/kernel/nmi_watchdog 2>/dev/null
dmesg | grep -i watchdog
Link permanente
nmi_watchdog Watchdog NMI per hard-lockup

Finalità

Controlla il rilevatore di hard-lockup basato su NMI e, sui sistemi x86 supportati, la relativa attività periodica dei contatori delle prestazioni.

Valori e varianti

0 Disabilita il watchdog NMI.
1 Abilita il watchdog NMI ove supportato.
omitted Usa l'impostazione predefinita del kernel/della distribuzione.

Compromesso o modalità di guasto

Disabilitarlo rimuove un segnale importante per le CPU che smettono di gestire gli interrupt normali.

Verifica dopo l'avvio

cat /proc/sys/kernel/nmi_watchdog
dmesg | grep -i "NMI watchdog"
Link permanente

Parametri: 3

Comportamento NUMA e IOMMU

Controlla la migrazione automatica delle pagine e la politica di traduzione DMA per una località stabile e percorsi dei dispositivi prevedibili.

numa_balancing Migrazione automatica delle pagine NUMA

Finalità

Controlla il NUMA balancing automatico, che campiona gli accessi alla memoria proteggendo periodicamente le pagine e può migrare attività o pagine. Lo stato scelto bilancia la correzione automatica della località con le interferenze di page fault e migrazioni.

Valori e varianti

disable Disabilita NUMA balancing automatico.
enable Abilita NUMA balancing automatico.
omitted Usa l'impostazione predefinita del kernel/della distribuzione.

Compromesso o modalità di guasto

Con il bilanciamento automatico disattivato, una cattiva collocazione applicativa rimane tale. Esegui il binding esplicito della memoria e verifica i contatori degli accessi remoti.

Verifica dopo l'avvio

sysctl kernel.numa_balancing
numactl --hardware
numastat -p $$ 2>/dev/null || true
Link permanente
intel_iommu Inizializzazione Intel DMAR/IOMMU

Finalità

Controlla l'inizializzazione Intel IOMMU e le relative funzionalità di remapping DMA o degli interrupt, secondo il supporto di hardware e firmware.

Valori e varianti

on Abilita il driver Intel IOMMU.
off Disabilitalo.
igfx_off Esclude l'unità DMAR della grafica integrata.
sp_off Disabilita il supporto IOMMU superpage.
sm_on or sm_off Consente o vieta Intel scalable mode.
strict Richiesta deprecata specifica del driver, equivalente a iommu.strict=1.
tboot_noforce Impedisce a tboot di forzare l'attivazione della IOMMU; riduce la protezione dagli attacchi DMA.

Compromesso o modalità di guasto

Difetti del firmware e politica di traduzione possono influire sulla latency o sulla stabilità dei dispositivi. Valida ogni generazione di server/BIOS.

Verifica dopo l'avvio

dmesg | grep -Ei "DMAR|IOMMU"
find /sys/kernel/iommu_groups -maxdepth 1 -type d 2>/dev/null | head
lspci -vv | grep -i "IOMMU\|ATS" | head -n 40
Link permanente
iommu Politica predefinita di DMA passthrough

Finalità

Seleziona la politica predefinita dei domini IOMMU per i dispositivi ordinari. Passthrough o mappatura identitaria possono ridurre l'overhead di traduzione DMA per i dispositivi affidabili, mentre i domini tradotti offrono un isolamento più forte.

Valori e varianti

iommu=pt Usa la modalità passthrough come predefinita.
iommu=nopt Usa la modalità DMA tradotta come predefinita.
iommu.passthrough=1 Controllo passthrough esplicito moderno.
iommu.passthrough=0 Usa la traduzione IOMMU per impostazione predefinita.
iommu.strict=0 or 1 Politica di invalidazione correlata per la modalità tradotta: lazy o strict.
iommu=off, force, noforce, soft, merge, nomerge Controlli generali specifici per architettura; non sono sinonimi diretti di passthrough.

Compromesso o modalità di guasto

Passthrough indebolisce l'isolamento DMA. Un dispositivo guasto o compromesso può accedere alla memoria dell'host al di fuori dei buffer previsti.

Verifica dopo l'avvio

dmesg | grep -Ei "IOMMU.*(passthrough|Default domain)|DMAR"
find /sys/kernel/iommu_groups -maxdepth 2 -type l 2>/dev/null | head -n 40
Link permanente

Parametri: 3

Denominazione di rete e politica di ripristino NVMe

Comportamento userspace per la denominazione delle NIC e impostazioni di timeout e tentativi dello storage che determinano quanto rapidamente i guasti diventano visibili.

net.ifnames Politica di denominazione prevedibile delle interfacce in systemd/udev

Finalità

Controlla la denominazione prevedibile delle interfacce in systemd/udev. La disabilitazione può ripristinare nomi legacy come eth0 quando la distribuzione lo consente; è una convenzione userspace passata sulla riga di comando del kernel, non un interruttore per la latency di rete.

Valori e varianti

0 Disabilita la NamePolicy prevedibile.
1 or omitted Consente la denominazione prevedibile secondo lo schema di denominazione systemd attivo e la politica .link.

Compromesso o modalità di guasto

L'ordinamento legacy ethX può cambiare quando cambiano hardware, firmware o ordine di rilevamento. Un'identità errata dell'interfaccia è più pericolosa di qualsiasi preferenza di denominazione.

Verifica dopo l'avvio

ip -br link
udevadm test-builtin net_id /sys/class/net/$(ls /sys/class/net | head -n1) 2>/dev/null | head -n 40 || true
cat /proc/cmdline
Link permanente
nvme_core.io_timeout Timeout dei comandi I/O NVMe in secondi

Finalità

Imposta l'input del timeout I/O NVMe in secondi. L'upstream attuale memorizza il parametro del modulo come intero senza segno con valore predefinito 30, quindi lo converte nel timeout del livello a blocchi in jiffies; il timeout effettivo della coda deve quindi essere verificato dopo l'avvio.

Valori e varianti

30 Valore predefinito upstream attuale in secondi; verifica il kernel di destinazione.
a finite positive integer Timeout esplicito in secondi.
4294967295 Input massimo senza segno a 32 bit, non un token di infinito. L'espressione del driver nvme_io_timeout * HZ può andare in overflow prima di diventare il timeout effettivo della richiesta; su un kernel a 1000 Hz questo valore può corrispondere a circa 49.7 giorni anziché 136 anni.

Compromesso o modalità di guasto

Un timeout molto grande o in overflow può lasciare l'I/O bloccato per un periodo inatteso e ritardare reset, failover o ripristino dell'applicazione. Considera il valore osservato in /sys/block/<device>/queue/io_timeout come riferimento effettivo.

Verifica dopo l'avvio

cat /sys/module/nvme_core/parameters/io_timeout
grep -H . /sys/block/nvme*/queue/io_timeout 2>/dev/null || true
grep '^CONFIG_HZ=' /boot/config-$(uname -r) 2>/dev/null || true
nvme list 2>/dev/null || true
dmesg | grep -i nvme
Link permanente
nvme_core.max_retries Numero massimo di tentativi dei comandi NVMe

Finalità

Imposta il numero massimo di tentativi per i comandi NVMe idonei. L'upstream attuale lo memorizza come byte senza segno con valore predefinito 5.

Valori e varianti

0 Non riprova i comandi idonei.
1–255 Numero massimo di tentativi; 10 raddoppia il valore predefinito upstream attuale.
omitted Usa l'impostazione predefinita del kernel.

Compromesso o modalità di guasto

Più tentativi possono aumentare la tail latency e ritardare il failover. Meno tentativi possono rendere visibili prima gli errori transitori del supporto o del trasporto.

Verifica dopo l'avvio

cat /sys/module/nvme_core/parameters/max_retries
dmesg | grep -Ei "nvme.*(retry|timeout|reset)"
Link permanente

Come vengono progettati i profili

Cinque livelli alla base di un profilo di avvio di produzione preciso

Un profilo manutenibile separa le scelte invarianti della piattaforma dagli elenchi CPU specifici per la topologia e dalle forzature di sicurezza ad alto rischio. HFTKernel valuta questi livelli insieme, quindi consegna una configurazione verificabile, testabile e reversibile.

01
Avvio e ripristino

Dispositivo root, modalità di montaggio iniziale, console seriale e riserva kdump verificata.

02
Determinismo della piattaforma

Driver idle, politica di frequenza, PCIe ASPM, clocksource, politica NUMA e IOMMU.

03
Topologia

CPU di housekeeping, CPU full-dynticks, RCU offload, maschera IRQ predefinita, affinità delle code e cpusets delle applicazioni.

04
Applicazione durante l'esecuzione

Maschere workqueue, affinità dei thread del kernel, politica EPB/governor, code NIC, binding della memoria e CPU affinity dei servizi.

05
Controlli del rischio

Mitigations di sicurezza, LSM, audit, ASLR, watchdog e politica machine-check esaminati separatamente.

Verifica dopo l'avvio

Conferma lo stato effettivo prima di misurare la latency

La riga di comando è solo un input. Questa lista di controllo conferma kernel in esecuzione, topologia CPU, insieme full-dynticks, collocazione IRQ, clocksource, politica energetica, IOMMU, stato di sicurezza e politica di ripristino NVMe.

Sequenza di verifica in sola lettura
printf '%s\n' '== kernel and cmdline =='
uname -a
cat /proc/cmdline

printf '%s\n' '== CPU topology and isolation =='
lscpu -e=CPU,CORE,SOCKET,NODE,ONLINE
cat /sys/devices/system/cpu/isolated
cat /sys/devices/system/cpu/nohz_full
cat /sys/devices/system/cpu/smt/control

printf '%s\n' '== idle and frequency =='
cat /sys/devices/system/cpu/cpuidle/current_driver
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 2>/dev/null || true
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 2>/dev/null || true
grep -H . /sys/devices/system/cpu/cpu*/power/energy_perf_bias 2>/dev/null || true

printf '%s\n' '== IRQ and RCU placement =='
cat /proc/irq/default_smp_affinity
cat /proc/interrupts
ps -eLo pid,tid,psr,cls,rtprio,comm | grep -E 'rcuo|rcuc|irq/' || true

printf '%s\n' '== clock, NUMA, and IOMMU =='
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
sysctl kernel.numa_balancing
dmesg | grep -Ei 'DMAR|IOMMU|clocksource|tsc'

printf '%s\n' '== watchdog, security, and storage =='
sysctl kernel.watchdog kernel.nmi_watchdog kernel.randomize_va_space 2>/dev/null || true
grep . /sys/devices/system/cpu/vulnerabilities/*
cat /sys/module/nvme_core/parameters/io_timeout 2>/dev/null || true
grep -H . /sys/block/nvme*/queue/io_timeout 2>/dev/null || true
cat /sys/module/nvme_core/parameters/max_retries 2>/dev/null || true