Référence publique de la ligne de commande du noyau

Comprenez chaque paramètre. Demandez le profil de production précis.

Cette référence publique explique le rôle, les valeurs acceptées, les effets sur la latency, les modes de défaillance et la vérification après démarrage. Elle ne publie volontairement aucune ligne de commande HFTKernel universelle : les valeurs exactes dépendent de la topologie CPU, du placement NUMA, des files NIC, de la gestion du temps, du stockage, de la politique de sécurité et de la charge.

Principe d'ingénierie

Il n'existe aucune ligne de commande universelle pour une faible latency.

Un profil de production doit organiser les CPU de service, les CPU de trading, les threads SMT voisins, les nœuds NUMA, les files NIC et de stockage, les threads RCU, les files de travail, les sources de temps et l'affinité des applications comme un seul système.

Séparez les réglages de performance de la politique de risque

L'isolation CPU, le placement IRQ et le comportement NUMA sont des réglages de performance. Les mesures de protection, LSM, l'audit, ASLR, les watchdogs et les réglages machine-check nécessitent une décision distincte de sécurité et d'exploitation.

Vérifiez l'effet, pas seulement la syntaxe

Un paramètre peut être non pris en charge, redondant, remplacé par le micrologiciel ou modifié ultérieurement par l'espace utilisateur. L'état effectif dans sysfs, procfs, dmesg, l'affinité IRQ et la latency mesurée font référence.

Profil de production sur demande

Les valeurs exactes sont générées pour votre hôte et votre charge.

Avant de choisir les paramètres de démarrage, l'équipe HFTKernel organise les CPU de trading et de service, les threads SMT voisins, les nœuds NUMA, les files NIC et de stockage, l'accès de gestion, la récupération, la gestion du temps et la sécurité comme un seul système.

Référence des paramètres

Chaque paramètre, ses variantes et son effet opérationnel

Recherchez par paramètre, sous-système, valeur, risque ou commande de vérification. La référence publique explique le paramètre sans choisir sa valeur de production.

Besoin des valeurs choisies, des masques CPU et de la ligne de commande finale ? Ils sont générés après une analyse de la topologie et ne sont pas publiés comme préréglage générique.
Demander un profil précis

Paramètres : 5

Démarrage, système de fichiers racine, console et capture après incident

Paramètres sélectionnant le noyau et le système de fichiers racine, définissant le montage initial, exposant la console série et réservant la mémoire pour kdump.

BOOT_IMAGE Métadonnée du chargeur de démarrage ; aucun réglage de latency

Rôle

GRUB ajoute généralement ce jeton pour consigner l'image du noyau sélectionnée. Le noyau amont ne l'utilise pas comme politique de réglage ; il sert surtout au diagnostic et à l'association d'un démarrage à une image précise.

Valeurs et variantes

BOOT_IMAGE=/boot/vmlinuz-<version> Chemin de type système de fichiers utilisé par de nombreuses configurations GRUB.
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-<version> Notation de périphérique GRUB.
omitted Valide ; l'image sélectionnée reste déterminée par le chargeur de démarrage.

Compromis ou mode de défaillance

Une chaîne BOOT_IMAGE copiée peut être obsolète ou purement indicative. L'identité du noyau en cours d'exécution fait référence.

Vérifier après le démarrage

cat /proc/cmdline
uname -r
cat /proc/version
Lien permanent
root Sélection du périphérique racine par le noyau/initramfs

Rôle

Sélectionne le périphérique bloc ou l'identité logique qui deviendra le système de fichiers racine. Un initramfs peut résoudre la valeur avant le montage de la véritable racine.

Valeurs et variantes

root=UUID=<filesystem-uuid> Identifiant stable du système de fichiers ; généralement préférable à un nom de périphérique variable.
root=PARTUUID=<partition-uuid> Identifiant stable de la table de partitions.
root=LABEL=<label> or root=PARTLABEL=<label> Étiquette du système de fichiers ou de la partition lisible par l'utilisateur.
root=/dev/nvme0n1p2 or root=/dev/mapper/<name> Chemin direct du périphérique ; simple, mais le nom peut varier selon l'ordre de détection.

Compromis ou mode de défaillance

Une valeur incorrecte empêche le démarrage. Vérifiez avant le déploiement que l'initramfs contient les pilotes nécessaires au stockage, à LVM, à RAID ou au chiffrement.

Vérifier après le démarrage

findmnt -no SOURCE /
blkid
cat /proc/cmdline
Lien permanent
ro Mode de montage initial du système de fichiers racine

Rôle

Demande au noyau de monter initialement le système de fichiers racine en lecture seule. Le système d'initialisation effectue généralement des vérifications, puis le remonte en lecture-écriture.

Valeurs et variantes

ro Montage initial en lecture seule.
rw Montage initial en lecture-écriture.

Compromis ou mode de défaillance

Une modification peut changer la réparation au début du démarrage et le comportement d'initramfs ; testez les procédures de récupération.

Vérifier après le démarrage

findmnt -no OPTIONS /
cat /proc/cmdline
Lien permanent
console Acheminement de la console du noyau

Rôle

Détermine la destination des messages de la console du noyau. Les valeurs de console série définissent le périphérique, le débit en bauds, la parité et les bits de données ; des consoles virtuelles et locales sont également disponibles sur les plateformes prises en charge.

Valeurs et variantes

console=tty0 Terminal virtuel local.
console=ttyS<N>,<baud><parity><bits> Console série compatible 8250 ; exemples : 115200n8 et 9600n8.
console=hvc0 Console virtuelle de l'hyperviseur sur les invités pris en charge.
console=null Ignorer la sortie de la console.
multiple console= tokens Dupliquer la sortie du noyau sur plusieurs consoles admissibles ; vérifiez quel périphérique devient /dev/console.

Compromis ou mode de défaillance

Une sortie console abondante peut être coûteuse, surtout sur un périphérique série lent. Contrôlez le niveau et la fréquence des journaux au lieu de désactiver aveuglément l'accès de récupération.

Vérifier après le démarrage

cat /proc/consoles
dmesg | head
stty -F /dev/ttyS0 2>/dev/null || true
Lien permanent
crashkernel Réservation mémoire kdump

Rôle

Réserve de la mémoire pour un noyau de capture capable d'écrire un vmcore après un panic. La valeur auto est implémentée par certaines distributions, mais ne constitue pas une politique amont de dimensionnement universellement portable.

Valeurs et variantes

crashkernel=<size> Réserver une quantité fixe, par exemple 512M.
crashkernel=<range>:<size>[,<range>:<size>…] Choisir la taille de réservation selon la RAM installée.
crashkernel=<size>,high plus crashkernel=<size>,low Séparer les réservations haute et basse sur les architectures compatibles.
crashkernel=<size>,cma Utiliser une réservation reposant sur CMA lorsque cela est pris en charge.
crashkernel=auto Dimensionnement automatique propre à la distribution ; confirmez la prise en charge par le noyau et les outils de démarrage cibles.
omitted Aucune réservation pour le noyau de capture ; kdump ne peut pas capturer de vmcore.

Compromis ou mode de défaillance

La RAM réservée est indisponible pour le noyau principal. Un noyau de capture sous-dimensionné échoue au moment où il est le plus nécessaire.

Vérifier après le démarrage

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

Paramètres : 5

Veille CPU, fréquence et topologie

Réglages des C-states, P-states, du compromis énergie-performance et du multithreading simultané.

intel_idle.max_cstate Sélection et profondeur du pilote Intel cpuidle

Rôle

Contrôle l'état de veille le plus profond exposé par intel_idle. Une valeur de 0 désactive intel_idle et utilise un autre pilote, généralement acpi_idle ; elle ne garantit pas à elle seule que le CPU reste en C0.

Valeurs et variantes

0 Désactiver intel_idle et utiliser l'alternative de la plateforme.
1 Exposer uniquement l'état intel_idle le moins profond.
2–9 Autoriser des états progressivement plus profonds jusqu'à l'indice de pilote choisi, selon les capacités du CPU.
omitted Utiliser la valeur par défaut du pilote et la table d'états de la plateforme.

Compromis ou mode de défaillance

Une veille peu profonde améliore la régularité du réveil, mais augmente la consommation, la chaleur, la ventilation et peut compliquer le maintien de la fréquence.

Vérifier après le démarrage

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
Lien permanent
processor.max_cstate Limite des états de veille du processeur ACPI

Rôle

Limite l'état de veille ACPI le plus profond enregistré par le pilote de veille du processeur. S'applique principalement lorsque acpi_idle est actif, notamment si un autre pilote de veille a été désactivé ou est indisponible.

Valeurs et variantes

0 Dans le code amont actuel, aucun C-state ACPI ne passe la boucle d'enregistrement ; le comportement de repli doit être vérifié sur la plateforme cible.
1 Limiter à C1.
2–8 Autoriser les états ACPI jusqu'à la profondeur choisie, lorsque le micrologiciel les expose.
9 or another value above the normal limit Peut remplacer certaines limites de liste noire DMI ; ce n'est pas une recommandation de latency.
omitted Utiliser les valeurs par défaut du micrologiciel et du pilote.

Compromis ou mode de défaillance

La valeur 0 peut produire un comportement de repli propre à la plateforme. Ne la considérez pas comme un synonyme portable de « C0 uniquement ».

Vérifier après le démarrage

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
Lien permanent
intel_pstate Mode du pilote de variation de fréquence Intel CPU

Rôle

Sélectionne le mode de fonctionnement du pilote de fréquence intel_pstate ou empêche son chargement. Le mode choisi modifie la sémantique de contrôle, le comportement HWP et les governors disponibles.

Valeurs et variantes

disable Ne pas activer intel_pstate.
active Utiliser le mode actif d'intel_pstate et ses algorithmes internes performance/powersave.
passive Utiliser intel_pstate comme pilote de fréquence sous les governors cpufreq génériques.
force Forcer intel_pstate sur les systèmes normalement exclus ; les contrôles thermiques et énergétiques de la plateforme peuvent être affectés.
no_hwp Ne pas activer Hardware P-states.
hwp_only Charger uniquement lorsque HWP est disponible.
support_acpi_ppc Respecter les limites ACPI _PPC.
per_cpu_perf_limits Exposer des limites de performance par CPU logique.
no_cas Désactiver la prise en charge de l'ordonnancement tenant compte de la capacité sur les systèmes hybrides.

Compromis ou mode de défaillance

Une politique de fréquence maximale fixe peut augmenter la limitation thermique et réduire la tenue de fréquence sur tous les cœurs. Mesurez conjointement le temps passé aux différentes fréquences et la tail latency.

Vérifier après le démarrage

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
Lien permanent
epb Jeton de démarrage non standard ; Intel Energy Performance Bias se configure normalement via sysfs ou x86_energy_perf_policy

Rôle

Représente une politique Energy Performance Bias dans les arbres du noyau ou les outils de démarrage qui interprètent explicitement ce jeton. Linux amont expose normalement Intel EPB par CPU via energy_perf_bias et ne définit pas epb= comme paramètre générique de la ligne de commande du noyau.

Valeurs et variantes

0 Priorité maximale à la performance dans l'interface EPB.
1–14 Compromis intermédiaire entre performance et énergie.
15 Priorité maximale à l'économie d'énergie.
performance, balance-performance, normal, balance-power, power Valeurs nommées acceptées par l'interface sysfs par CPU sur les noyaux compatibles.

Compromis ou mode de défaillance

Le micrologiciel, la suspension/reprise, le branchement à chaud des CPU ou un service de gestion d'énergie peuvent remplacer EPB. Traitez la politique choisie comme un état d'exécution géré et vérifiez-la en permanence.

Vérifier après le démarrage

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
Lien permanent
nosmt Contrôle du multithreading simultané

Rôle

Désactive les threads SMT secondaires pour que chaque cœur physique expose au plus un CPU logique actif. Peut réduire la concurrence entre threads voisins dans les unités d'exécution, les caches et certains chemins d'interruption.

Valeurs et variantes

nosmt Désactiver SMT au démarrage ; sa réactivation à l'exécution peut rester possible si la plateforme et le noyau l'autorisent.
nosmt=force Forcer la désactivation de SMT et empêcher sa réactivation à l'exécution.
omitted Utiliser les valeurs par défaut du micrologiciel et du noyau.

Compromis ou mode de défaillance

Désactiver SMT réduit la capacité en CPU logiques et peut concentrer davantage de tâches de fond sur moins de CPU de service.

Vérifier après le démarrage

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

Paramètres : 6

Comportement des ticks, isolation CPU, placement IRQ et RCU

Le groupe central de réglage de la latency : CPU full-dynticks, isolation des domaines d'ordonnancement, affinité des tâches de service, décalage des temporisateurs et déport des rappels RCU.

nohz Suppression des ticks au repos

Rôle

Contrôle le fonctionnement sans ticks au repos lorsque le noyau a été compilé avec la prise en charge NO_HZ requise. Le mode activé permet aux CPU au repos d'arrêter le tick périodique de l'ordonnanceur.

Valeurs et variantes

on Activer le repos sans ticks lorsque cela est pris en charge.
off Désactiver le repos sans ticks et conserver les ticks périodiques.
omitted Utiliser la valeur par défaut de la configuration du noyau.

Compromis ou mode de défaillance

Le paramètre est sans effet si le noyau exécuté ne dispose pas de la prise en charge correspondante à la compilation.

Vérifier après le démarrage

grep -E "CONFIG_NO_HZ(_IDLE|_FULL)?=" /boot/config-$(uname -r) 2>/dev/null
cat /proc/cmdline
Lien permanent
skew_tick Répartition des phases des ticks périodiques par CPU

Rôle

Détermine si les ticks périodiques sont décalés entre les CPU au lieu de se déclencher simultanément. L'activation peut réduire la contention des verrous et le bruit synchronisé sur les grands systèmes.

Valeurs et variantes

0 Ne pas décaler volontairement les ticks périodiques.
1 Répartir les phases des ticks entre les CPU.

Compromis ou mode de défaillance

Le compromis est une consommation accrue, car les occasions de repos de l'ensemble du processeur peuvent diminuer.

Vérifier après le démarrage

cat /proc/cmdline
trace-cmd record -e timer -e irq -e sched sleep 5 2>/dev/null || true
Lien permanent
irqaffinity Masque d'affinité IRQ par défaut

Rôle

Définit la liste CPU par défaut des IRQ qui ne reçoivent pas de politique d'affinité plus précise. Le masque choisi détermine où commence le traitement des interruptions autrement non assignées.

Valeurs et variantes

irqaffinity=<cpu-list> CPU et plages séparés par des virgules, par exemple 0,4-7.
omitted Utiliser le masque d'affinité par défaut de l'architecture/du noyau.

Compromis ou mode de défaillance

Le CPU 0 peut devenir un goulot d'étranglement. Les interruptions MSI-X gérées peuvent ne pas respecter le masque par défaut comme les IRQ ordinaires.

Vérifier après le démarrage

cat /proc/irq/default_smp_affinity
grep -H . /proc/irq/*/smp_affinity_list 2>/dev/null | head -n 80
cat /proc/interrupts
Lien permanent
isolcpus Isolation des domaines d'ordonnancement et des IRQ gérées

Rôle

Sélectionne les CPU et les indicateurs d'isolation pour le retrait des domaines d'ordonnancement, le fonctionnement full-dynticks et l'évitement des IRQ gérées. L'isolation des domaines est décidée au démarrage et reste irréversible jusqu'au redémarrage suivant.

Valeurs et variantes

isolcpus=<cpu-list> Forme historique ; l'isolation des domaines est implicite.
isolcpus=domain,<cpu-list> Retirer les CPU des domaines d'équilibrage de charge de l'ordonnanceur.
isolcpus=nohz,<cpu-list> Activer l'isolation full-dynticks pour les CPU.
isolcpus=managed_irq,<cpu-list> Exclusion au mieux des masques IRQ gérés lorsque des CPU de service sont disponibles.
combined flags Exemple : domain,nohz,managed_irq,2-15.

Compromis ou mode de défaillance

L'isolation ne déplace pas automatiquement les threads du noyau, les files de travail, les files de périphériques, les temporisateurs ou les threads applicatifs. Elle est un élément d'une organisation complète des tâches de service.

Vérifier après le démarrage

cat /sys/devices/system/cpu/isolated
cat /sys/devices/system/cpu/nohz_full
taskset -pc $$
cat /proc/interrupts
Lien permanent
nohz_full Ensemble de CPU full-dynticks

Rôle

Arrête le tick périodique de l'ordonnanceur sur les CPU indiqués lorsqu'ils exécutent une charge adaptée, réduisant les interruptions récurrentes du noyau. Au moins un CPU de service reste hors de l'ensemble ; le CPU de démarrage est exclu automatiquement.

Valeurs et variantes

nohz_full=<cpu-list> Choisir les CPU full-dynticks, par exemple 2-15,18-31.
nohz_full=all Demander tous les CPU possibles ; le noyau conserve néanmoins les CPU de service nécessaires.
omitted Aucun CPU full-dynticks choisi au démarrage.

Compromis ou mode de défaillance

Un CPU indiqué peut encore recevoir des interruptions, des tâches de threads du noyau, des défauts de page, des invalidations TLB et des appels entre CPU si ces chemins ne sont pas contrôlés séparément.

Vérifier après le démarrage

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
Lien permanent
rcu_nocbs Déport des rappels RCU

Rôle

Déplace l'exécution des rappels RCU des CPU choisis vers des kthreads dédiés. Un jeton seul ne sélectionne aucun CPU au démarrage ; une liste CPU explicite ou un mécanisme d'exécution compatible est nécessaire.

Valeurs et variantes

rcu_nocbs=<cpu-list> Déporter les rappels des CPU indiqués, par exemple rcu_nocbs=1-3.
rcu_nocbs with no argument Aucun CPU sélectionné au démarrage ; les CPU admissibles peuvent être activés ensuite via les cpusets/interfaces d'exécution.
rcu_nocb_poll Faire fonctionner les kthreads nocb par interrogation plutôt que par réveil ; peut réduire la latency de réveil au prix d'une consommation importante.
omitted Utiliser le placement normal des rappels, sauf pour les CPU nohz_full dont les noyaux actuels déportent automatiquement les rappels.

Compromis ou mode de défaillance

Le déport déplace le travail sans le supprimer. Des CPU de service sous-dimensionnés peuvent accumuler des rappels et provoquer des blocages de tout le système.

Vérifier après le démarrage

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
Lien permanent

Paramètres : 4

Clocksource, politique d'énergie PCIe et contournements propres à la plateforme

Réglages temporels et de plateforme pouvant affecter la latency de réveil, les tâches périodiques et la prévisibilité des chemins des périphériques.

pcie_aspm.policy Politique PCI Express Active State Power Management

Rôle

Sélectionne la politique PCIe Active State Power Management. Les politiques disponibles arbitrent entre la latency de réveil des liaisons et la consommation de la plateforme, selon le contrôle exercé par le micrologiciel et le noyau sur chaque liaison.

Valeurs et variantes

default Utiliser la politique du micrologiciel/par défaut.
performance Privilégier la performance et désactiver ASPM/Clock PM selon la politique du noyau.
powersave Activer les états d'économie d'énergie des liaisons avec une politique équilibrée.
powersupersave Utiliser la politique d'économie d'énergie disponible la plus agressive.

Compromis ou mode de défaillance

La consommation augmente et certaines liaisons contrôlées par le micrologiciel peuvent ne pas appliquer la politique demandée.

Vérifier après le démarrage

cat /sys/module/pcie_aspm/parameters/policy 2>/dev/null
lspci -vv | grep -E "LnkCap:|LnkCtl:" | head -n 80
Lien permanent
acpi_pad.disable Contrôle ACPI Processor Aggregator propre à la version/au fournisseur

Rôle

Contrôle un commutateur ACPI Processor Aggregator propre à un arbre du noyau, destiné à empêcher l'injection de périodes de repos. Le code amont actuel d'acpi_pad peut ne pas exposer ce paramètre de module ; sa prise en charge doit donc être vérifiée dans le noyau et la distribution exacts.

Valeurs et variantes

acpi_pad.disable=1 Pris en charge uniquement par les arbres du noyau exposant ce paramètre de module.
acpi_pad.disable=0 Activation/comportement par défaut dans les arbres implémentant le paramètre.
driver/module blacklist policy Alternative opérationnelle portable lorsque le pilote est modulaire et a été validé comme inutile.

Compromis ou mode de défaillance

Supprimer un mécanisme de gestion d'énergie peut affecter les attentes du micrologiciel. Validez sur le modèle exact de serveur et la révision exacte du BIOS.

Vérifier après le démarrage

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
Lien permanent
clocksource Choix de la source temporelle du noyau

Rôle

Sélectionne une clocksource nommée du noyau. Sur les systèmes modernes invariants et synchronisés, TSC peut offrir un faible coût de lecture et une haute résolution ; d'autres plateformes peuvent nécessiter une autre source validée.

Valeurs et variantes

clocksource=tsc Forcer TSC lorsque le noyau le considère disponible.
clocksource=hpet Utiliser HPET si disponible ; coût de lecture souvent plus élevé.
clocksource=acpi_pm Utiliser le temporisateur ACPI PM si disponible.
clocksource=kvm-clock, hyperv_clocksource, xen, or another listed source Options propres à l'hyperviseur/à la plateforme.
omitted Laisser le noyau choisir la source stable la mieux classée.

Compromis ou mode de défaillance

N'ajoutez pas tsc=reliable simplement pour masquer les avertissements. Cette dérogation distincte désactive les contrôles de stabilité et ne convient qu'à une garantie de plateforme validée.

Vérifier après le démarrage

cat /sys/devices/system/clocksource/clocksource0/current_clocksource
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
dmesg | grep -Ei "clocksource|tsc"
Lien permanent
no_timer_check Contournement du contrôle de la source IRQ du temporisateur x86

Rôle

Désactive un contrôle au démarrage destiné à détecter un routage défectueux des interruptions du temporisateur. Il s'agit d'un contournement de compatibilité pour certains matériels ou environnements virtuels, et non d'une optimisation générale de latency.

Valeurs et variantes

no_timer_check Ignorer le contrôle du routage du temporisateur.
omitted Exécuter les contrôles normaux des temporisateurs du noyau.

Compromis ou mode de défaillance

Masquer un diagnostic peut dissimuler un problème de routage du temporisateur de la plateforme, qui se manifestera ensuite par des ticks perdus ou une instabilité temporelle.

Vérifier après le démarrage

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

Paramètres : 9

Sécurité, audit, watchdogs et machine-check

Des commutateurs aux conséquences importantes, qui échangent la sécurité ou le diagnostic des défaillances contre une réduction des surcoûts. Ils exigent une décision explicite sur le risque en production.

selinux Initialisation de SELinux

Rôle

Détermine si SELinux s'initialise et quel mode de politique est utilisé au démarrage. Désactiver l'initialisation retire l'application des règles et les points d'audit SELinux du système actif.

Valeurs et variantes

selinux=0 Désactiver SELinux au démarrage.
selinux=1 or omitted Autoriser l'initialisation de SELinux lorsqu'il est compilé et configuré.
enforcing=0 Alternative associée : initialiser SELinux en mode permissif pour journaliser les refus sans les appliquer.
enforcing=1 Commencer à appliquer les règles lorsque la politique le permet.

Compromis ou mode de défaillance

selinux=0 est une décision de sécurité, pas une exigence HFT générique. La réactivation nécessite normalement un redémarrage et peut nécessiter un réétiquetage du système de fichiers.

Vérifier après le démarrage

getenforce 2>/dev/null || true
sestatus 2>/dev/null || true
cat /sys/fs/selinux/enforce 2>/dev/null || true
Lien permanent
nosoftlockup Détecteur soft-lockup

Rôle

Désactive le watchdog signalant les CPU qui restent trop longtemps sans ordonnancer le thread watchdog.

Valeurs et variantes

nosoftlockup Désactiver la détection soft-lockup.
omitted Utiliser la politique watchdog configurée.
watchdog_thresh=<seconds> Réglage associé : modifier le seuil de détection du blocage au lieu de la désactiver.

Compromis ou mode de défaillance

Sans détecteur, un CPU bloqué peut rester invisible jusqu'à l'intervention d'un contrôle de santé externe ou d'un watchdog matériel.

Vérifier après le démarrage

cat /proc/sys/kernel/watchdog 2>/dev/null
cat /proc/sys/kernel/soft_watchdog 2>/dev/null || true
dmesg | grep -i watchdog
Lien permanent
mitigations Politique de protection contre les vulnérabilités CPU

Rôle

Sélectionne une politique de protection contre les vulnérabilités CPU. Les modes disponibles arbitrent entre le surcoût des changements de contexte et du contrôle de spéculation et la protection contre les vulnérabilités matérielles concernées.

Valeurs et variantes

off Désactiver toutes les protections facultatives.
auto Activer les protections selon les vulnérabilités du CPU et les valeurs par défaut du noyau.
auto,nosmt Protections automatiques et désactivation de SMT si nécessaire.
omitted Utiliser la politique compilée/par défaut.

Compromis ou mode de défaillance

Selon le CPU, cela peut exposer des données du noyau, des processus, des VM et d'autres threads. Le gain de latency dépend du matériel et de la charge.

Vérifier après le démarrage

grep . /sys/devices/system/cpu/vulnerabilities/*
cat /proc/cmdline
dmesg | grep -i mitigation
Lien permanent
audit État initial du sous-système d'audit Linux

Rôle

Détermine si le sous-système d'audit du noyau est activé au démarrage. L'état choisi affecte le coût de génération des événements et les éléments disponibles pour la sécurité, la conformité et la réponse aux incidents.

Valeurs et variantes

audit=0 or audit=off Désactiver l'audit pour ce démarrage ; une activation complète ultérieure nécessite un redémarrage.
audit=1 or audit=on Activer l'audit au démarrage.
omitted Utiliser la valeur par défaut configurée du noyau/de la distribution.

Compromis ou mode de défaillance

La désactivation de l'audit peut contrevenir aux exigences de conformité, de réponse aux incidents et d'investigation.

Vérifier après le démarrage

auditctl -s 2>/dev/null || true
cat /proc/cmdline
dmesg | grep -i "audit.*enabled"
Lien permanent
mce Traitement machine-check x86

Rôle

Contrôle le traitement des x86 Machine Check Exception et la récupération associée. Sa désactivation supprime les signalements asynchrones d'erreurs matérielles et une télémétrie essentielle sur les défauts CPU, mémoire et d'interconnexion.

Valeurs et variantes

off Désactiver le traitement machine-check.
no_cmci Désactiver les interruptions d'erreurs corrigées et utiliser l'interrogation lorsque cela est pris en charge.
dont_log_ce Ne pas journaliser les erreurs corrigées.
ignore_ce Ignorer les erreurs corrigées.
no_lmce Désactiver la prise en charge de Local Machine Check Exception.
bootlog or nobootlog Contrôler la journalisation des machine-check détectés au démarrage sur les noyaux compatibles.
omitted Utiliser le traitement normal machine-check.

Compromis ou mode de défaillance

Désactiver MCE peut transformer un composant défaillant diagnostiquable en corruption silencieuse de données, réinitialisations inexpliquées ou pics de latency impossibles à tracer.

Vérifier après le démarrage

dmesg | grep -Ei "mce|machine check|hardware error"
ls /sys/devices/system/machinecheck 2>/dev/null || true
systemctl status rasdaemon 2>/dev/null || true
Lien permanent
nomce Ancien commutateur machine-check x86-32

Rôle

Désactive la prise en charge de Machine Check Exception sur les noyaux x86 32 bits. Ce n'est pas le réglage normal x86-64 et il peut être redondant lorsqu'une autre politique machine-check est déjà choisie.

Valeurs et variantes

nomce Désactiver MCE sur les compilations x86 32 bits compatibles.
omitted Utiliser la politique normale de l'architecture.

Compromis ou mode de défaillance

Conserver des jetons redondants ou inapplicables à l'architecture complique l'audit de la configuration de démarrage et peut masquer des hypothèses erronées.

Vérifier après le démarrage

uname -m
cat /proc/cmdline
dmesg | grep -Ei "mce|machine check"
Lien permanent
norandmaps Randomisation de l'espace d'adressage utilisateur

Rôle

Désactive ASLR dans l'espace utilisateur, comme kernel.randomize_va_space=0. Les adresses virtuelles deviennent plus reproductibles, mais la résistance à l'exploitation des vulnérabilités diminue sensiblement.

Valeurs et variantes

norandmaps Désactiver la randomisation de l'espace d'adressage utilisateur.
omitted Utiliser la politique ASLR sysctl/par défaut.
kernel.randomize_va_space=0, 1, or 2 Politique d'exécution/sysctl : désactivée, randomisation limitée ou randomisation complète.

Compromis ou mode de défaillance

Cela affaiblit la défense contre l'exploitation de corruptions mémoire sur l'ensemble de l'hôte.

Vérifier après le démarrage

sysctl kernel.randomize_va_space
cat /proc/cmdline
Lien permanent
nowatchdog Commutateur principal des watchdogs de blocage du noyau

Rôle

Désactive les watchdogs hard-lockup et soft-lockup. Les commutateurs de désactivation plus ciblés peuvent donc devenir redondants lorsque cet indicateur est présent.

Valeurs et variantes

nowatchdog Désactiver les watchdogs de blocage du noyau.
omitted Utiliser la politique watchdog configurée.
watchdog_thresh=<seconds> Alternative associée : conserver la détection, mais relever le seuil.

Compromis ou mode de défaillance

Un blocage dur ou souple peut persister sans signalement du noyau. Assurez-vous qu'un autre mécanisme indépendant de surveillance reste actif.

Vérifier après le démarrage

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

Rôle

Contrôle le détecteur hard-lockup fondé sur NMI et, sur les systèmes x86 compatibles, son activité périodique de compteur de performance.

Valeurs et variantes

0 Désactiver le watchdog NMI.
1 Activer le watchdog NMI lorsque cela est pris en charge.
omitted Utiliser la valeur par défaut du noyau/de la distribution.

Compromis ou mode de défaillance

Sa désactivation supprime un signal important pour les CPU qui cessent de traiter les interruptions ordinaires.

Vérifier après le démarrage

cat /proc/sys/kernel/nmi_watchdog
dmesg | grep -i "NMI watchdog"
Lien permanent

Paramètres : 3

Comportement NUMA et IOMMU

Contrôle la migration automatique des pages et la politique de traduction DMA pour une localité stable et des chemins de périphériques prévisibles.

numa_balancing Migration automatique des pages NUMA

Rôle

Contrôle l'équilibrage NUMA automatique, qui échantillonne les accès mémoire en protégeant périodiquement les pages et peut déplacer des tâches ou des pages. L'état choisi arbitre entre la correction automatique de localité et le bruit des défauts de page et migrations.

Valeurs et variantes

disable Désactiver l'équilibrage NUMA automatique.
enable Activer l'équilibrage NUMA automatique.
omitted Utiliser la valeur par défaut du noyau/de la distribution.

Compromis ou mode de défaillance

Sans équilibrage automatique, un mauvais placement applicatif reste mauvais. Liez explicitement la mémoire et validez les compteurs d'accès distants.

Vérifier après le démarrage

sysctl kernel.numa_balancing
numactl --hardware
numastat -p $$ 2>/dev/null || true
Lien permanent
intel_iommu Initialisation Intel DMAR/IOMMU

Rôle

Contrôle l'initialisation Intel IOMMU et les fonctions associées de remappage DMA ou d'interruptions, selon la prise en charge du matériel et du micrologiciel.

Valeurs et variantes

on Activer le pilote Intel IOMMU.
off Le désactiver.
igfx_off Contourner l'unité DMAR des graphiques intégrés.
sp_off Désactiver la prise en charge des superpages IOMMU.
sm_on or sm_off Autoriser ou interdire le mode évolutif Intel.
strict Requête obsolète propre au pilote, équivalente à iommu.strict=1.
tboot_noforce Empêcher tboot de forcer IOMMU ; réduit la protection contre les attaques DMA.

Compromis ou mode de défaillance

Les défauts du micrologiciel et la politique de traduction peuvent affecter la latency ou la stabilité des périphériques. Validez chaque génération de serveur/BIOS.

Vérifier après le démarrage

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
Lien permanent
iommu Politique de passthrough DMA par défaut

Rôle

Sélectionne la politique de domaine IOMMU par défaut pour les périphériques ordinaires. Le passthrough ou le mappage d'identité peuvent réduire le coût de traduction DMA pour les périphériques fiables, tandis que les domaines traduits assurent une isolation renforcée.

Valeurs et variantes

iommu=pt Utiliser le mode passthrough par défaut.
iommu=nopt Utiliser le mode DMA traduit par défaut.
iommu.passthrough=1 Réglage explicite moderne du passthrough.
iommu.passthrough=0 Utiliser la traduction IOMMU par défaut.
iommu.strict=0 or 1 Politique d'invalidation associée au mode traduit : différée ou stricte.
iommu=off, force, noforce, soft, merge, nomerge Réglages généraux propres à l'architecture ; aucun synonyme direct de passthrough.

Compromis ou mode de défaillance

Le passthrough affaiblit l'isolation DMA. Un périphérique défectueux ou compromis peut accéder à la mémoire de l'hôte hors de ses tampons prévus.

Vérifier après le démarrage

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

Paramètres : 3

Nommage réseau et politique de récupération NVMe

Nommage des NIC dans l'espace utilisateur et réglages des délais et tentatives du stockage, qui déterminent la rapidité de détection des défauts.

net.ifnames Politique de nommage prévisible des interfaces systemd/udev

Rôle

Contrôle le nommage prévisible des interfaces dans systemd/udev. Sa désactivation peut restaurer des noms historiques comme eth0 lorsque la distribution le permet ; il s'agit d'une convention de l'espace utilisateur transmise sur la ligne de commande du noyau, pas d'un réglage de latency réseau.

Valeurs et variantes

0 Désactiver la NamePolicy prévisible.
1 or omitted Autoriser le nommage prévisible selon le schéma systemd actif et la politique .link.

Compromis ou mode de défaillance

L'ordre historique ethX peut changer lorsque le matériel, le micrologiciel ou l'ordre de détection change. Une mauvaise identification d'interface est plus dangereuse que toute préférence de nommage.

Vérifier après le démarrage

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
Lien permanent
nvme_core.io_timeout Délai des commandes d'E/S NVMe en secondes

Rôle

Définit la valeur d'entrée du délai d'E/S NVMe en secondes. Le code amont actuel stocke le paramètre de module comme entier non signé avec une valeur par défaut de 30, puis le convertit en délai de la couche bloc en jiffies ; le délai effectif de la file doit donc être vérifié après démarrage.

Valeurs et variantes

30 Valeur amont actuelle par défaut en secondes ; vérifiez le noyau cible.
a finite positive integer Délai explicite en secondes.
4294967295 Valeur d'entrée non signée maximale sur 32 bits, et non jeton d'infini. L'expression du pilote nvme_io_timeout * HZ peut déborder avant de devenir le délai effectif de la requête ; sur un noyau à 1000 Hz, cette valeur peut donner environ 49.7 jours plutôt que 136 ans.

Compromis ou mode de défaillance

Un délai très élevé ou ayant débordé peut bloquer les E/S pendant une durée inattendue et retarder la réinitialisation, le basculement ou la récupération applicative. Considérez la valeur observée dans /sys/block/<device>/queue/io_timeout comme la valeur effective de référence.

Vérifier après le démarrage

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
Lien permanent
nvme_core.max_retries Nombre maximal de tentatives des commandes NVMe

Rôle

Définit le nombre maximal de nouvelles tentatives pour les commandes NVMe admissibles. Le code amont actuel le stocke comme octet non signé avec une valeur par défaut de 5.

Valeurs et variantes

0 Ne pas réessayer les commandes admissibles.
1–255 Nombre maximal de nouvelles tentatives ; 10 double la valeur amont actuelle par défaut.
omitted Utiliser la valeur par défaut du noyau.

Compromis ou mode de défaillance

Davantage de tentatives peuvent allonger la tail latency et retarder le basculement. Moins de tentatives peuvent révéler plus tôt les erreurs transitoires de support ou de transport.

Vérifier après le démarrage

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

Conception des profils

Les cinq niveaux d'un profil de démarrage de production précis

Un profil facile à maintenir sépare les choix invariants de plateforme des listes CPU propres à la topologie et des dérogations de sécurité à haut risque. HFTKernel évalue ces niveaux ensemble, puis livre une configuration vérifiable, testable et réversible.

01
Démarrage et récupération

Périphérique racine, mode de montage initial, console série et réservation kdump testée.

02
Déterminisme de la plateforme

Pilote de veille, politique de fréquence, PCIe ASPM, clocksource, NUMA et politique IOMMU.

03
Topologie

CPU de service, CPU full-dynticks, déport RCU, masque IRQ par défaut, affinité des files et cpusets des applications.

04
Application des réglages à l'exécution

Masques des files de travail, affinité des threads du noyau, politique EPB/governor, files NIC, liaison mémoire et CPU affinity des services.

05
Maîtrise des risques

Mesures de sécurité, LSM, audit, ASLR, watchdogs et politique machine-check examinés séparément.

Vérification après démarrage

Confirmez l'état effectif avant de mesurer la latency

La ligne de commande n'est qu'une entrée. Cette liste de contrôle confirme le noyau exécuté, la topologie CPU, l'ensemble full-dynticks, le placement IRQ, clocksource, la politique d'énergie, IOMMU, l'état de sécurité et la politique de récupération NVMe.

Séquence de vérification en lecture seule
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

Références primaires

Documentation amont utilisée pour cette référence

Vérifiez toujours la documentation et le code source correspondant à la version exacte du noyau, aux correctifs de la distribution, au chargeur de démarrage, au micrologiciel et à la pile utilisateur déployés sur l'hôte cible.