Referência pública da linha de comando do kernel

Entenda cada controle. Solicite o perfil exato de produção.

Esta referência pública explica a finalidade, os valores aceitos, as implicações para a latency, os modos de falha e a verificação após a inicialização. Ela deliberadamente não publica uma linha de comando universal do HFTKernel: os valores exatos dependem da topologia de CPU, do posicionamento NUMA, das filas de NIC, da manutenção do tempo, do armazenamento, da política de segurança e da carga de trabalho.

Regra de engenharia

Não existe uma linha de comando universal para baixa latency.

Um perfil de produção deve coordenar como um único sistema as CPUs de manutenção, as CPUs de negociação, as threads irmãs SMT, os nós NUMA, as filas de NIC e armazenamento, as threads RCU, as filas de trabalho, as fontes de tempo e a afinidade das aplicações.

Separe os controles de desempenho da política de riscos

O isolamento de CPU, o posicionamento de IRQ e o comportamento NUMA são controles de desempenho. Mitigações, LSM, auditoria, ASLR, watchdog e configurações de verificação de máquina exigem uma decisão de segurança e operação separada.

Verifique o efeito, não a sintaxe

Um parâmetro pode não ser compatível, ser redundante, ser substituído pelo firmware ou ser alterado posteriormente pelo espaço de usuário. O estado efetivo em sysfs, procfs, dmesg, na afinidade de IRQ e na latency medida é a referência válida.

Perfil de produção mediante solicitação

Os valores exatos são gerados para seu host e sua carga de trabalho.

A engenharia do HFTKernel coordena como um único sistema as CPUs de negociação e manutenção, as threads irmãs SMT, os nós NUMA, as filas de NIC e armazenamento, o acesso de gerenciamento, a recuperação, a manutenção do tempo e a segurança antes de selecionar os parâmetros de inicialização.

Referência de parâmetros

Cada controle, suas variantes e seu efeito operacional

Pesquise por parâmetro, subsistema, valor, risco ou comando de verificação. A referência pública explica o controle sem selecionar um valor de produção.

Precisa dos valores selecionados, das máscaras de CPU e da linha de comando final? Eles são gerados após uma revisão da topologia e não são publicados como uma configuração predefinida genérica.
Solicitar perfil exato

Parâmetros: 5

Inicialização, sistema de arquivos raiz, console e captura de falhas

Parâmetros que selecionam o kernel e o sistema de arquivos raiz, definem o comportamento da montagem inicial, habilitam o console serial e reservam memória para kdump.

BOOT_IMAGE Metadados do carregador de inicialização; não é um controle de latency

Finalidade

O GRUB costuma acrescentar este token para registrar a imagem do kernel selecionada. O kernel upstream não o usa como política de ajuste; ele é útil principalmente para diagnóstico e para correlacionar uma inicialização com uma imagem específica.

Valores e variantes

BOOT_IMAGE=/boot/vmlinuz-<version> Caminho com formato de sistema de arquivos usado por muitas configurações do GRUB.
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-<version> Notação de dispositivo do GRUB.
omitted Válido; o carregador de inicialização continua determinando a imagem selecionada.

Compromisso ou modo de falha

Uma string BOOT_IMAGE copiada pode estar desatualizada ou ser apenas informativa. A identidade do kernel em execução é a referência válida.

Verificar após a inicialização

cat /proc/cmdline
uname -r
cat /proc/version
Link permanente
root Seleção do dispositivo raiz pelo kernel/initramfs

Finalidade

Seleciona o dispositivo de blocos ou a identidade lógica que se tornará o sistema de arquivos raiz. Um initramfs pode resolver o valor antes de montar a raiz real.

Valores e variantes

root=UUID=<filesystem-uuid> Identificador estável do sistema de arquivos; geralmente preferível a um nome de dispositivo que pode mudar.
root=PARTUUID=<partition-uuid> Identificador estável da tabela de partições.
root=LABEL=<label> or root=PARTLABEL=<label> Rótulo do sistema de arquivos ou da partição legível por pessoas.
root=/dev/nvme0n1p2 or root=/dev/mapper/<name> Caminho direto do dispositivo; simples, mas o nome pode variar conforme a ordem de detecção.

Compromisso ou modo de falha

Um valor incorreto impede a inicialização. Verifique se o initramfs contém os drivers necessários de armazenamento, LVM, RAID ou criptografia antes da implantação.

Verificar após a inicialização

findmnt -no SOURCE /
blkid
cat /proc/cmdline
Link permanente
ro Modo de montagem inicial do sistema de arquivos raiz

Finalidade

Solicita que o kernel monte inicialmente o sistema de arquivos raiz como somente leitura. O sistema de inicialização normalmente realiza verificações e depois remonta o sistema de arquivos para leitura e gravação.

Valores e variantes

ro Montagem inicial somente para leitura.
rw Montagem inicial para leitura e gravação.

Compromisso ou modo de falha

A alteração pode mudar o reparo durante o início da inicialização e o comportamento do initramfs; teste os caminhos de recuperação.

Verificar após a inicialização

findmnt -no OPTIONS /
cat /proc/cmdline
Link permanente
console Roteamento do console do kernel

Finalidade

Controla para onde as mensagens do console do kernel são enviadas. Os valores do console serial definem o dispositivo, a taxa de transmissão, a paridade e os bits de dados; destinos de console virtual e local também estão disponíveis para plataformas compatíveis.

Valores e variantes

console=tty0 Terminal virtual local.
console=ttyS<N>,<baud><parity><bits> Console serial compatível com 8250; exemplos incluem 115200n8 e 9600n8.
console=hvc0 Console virtual do hipervisor em sistemas convidados compatíveis.
console=null Descartar a saída do console.
multiple console= tokens Duplicar a saída do kernel em mais de um console elegível; verifique qual dispositivo se torna /dev/console.

Compromisso ou modo de falha

Um grande volume de saída no console pode ser custoso, especialmente em um dispositivo serial lento. Controle o nível e a frequência dos registros em vez de desativar o acesso de recuperação sem avaliar.

Verificar após a inicialização

cat /proc/consoles
dmesg | head
stty -F /dev/ttyS0 2>/dev/null || true
Link permanente
crashkernel Reserva de memória para kdump

Finalidade

Reserva memória para um kernel de captura que pode gravar um vmcore após um panic. Algumas distribuições implementam o valor auto, mas ele não é uma política de dimensionamento upstream universalmente portável.

Valores e variantes

crashkernel=<size> Reservar uma quantidade fixa, por exemplo 512M.
crashkernel=<range>:<size>[,<range>:<size>…] Selecionar o tamanho da reserva conforme a RAM instalada.
crashkernel=<size>,high plus crashkernel=<size>,low Separar as reservas de memória alta e baixa nas arquiteturas compatíveis.
crashkernel=<size>,cma Usar uma reserva baseada em CMA quando houver suporte.
crashkernel=auto Dimensionamento automático específico da distribuição; confirme o suporte no kernel de destino e nas ferramentas de inicialização.
omitted Sem reserva para o kernel de captura; o kdump não pode capturar um vmcore.

Compromisso ou modo de falha

A RAM reservada fica indisponível para o kernel principal. Um kernel de captura com memória insuficiente falha quando é mais necessário.

Verificar após a inicialização

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

Parâmetros: 5

Ociosidade, frequência e topologia de CPU

Controles de estados C, estados P, preferência entre energia e desempenho e multithreading simultâneo.

intel_idle.max_cstate Seleção e profundidade do driver cpuidle da Intel

Finalidade

Controla o estado de ociosidade mais profundo exposto pelo intel_idle. Um valor de 0 desativa o intel_idle e recorre a outro driver de ociosidade, geralmente acpi_idle; por si só, não garante que a CPU permaneça em C0.

Valores e variantes

0 Desativar o intel_idle e recorrer à alternativa da plataforma.
1 Expor apenas o estado menos profundo do intel_idle.
2–9 Permitir estados progressivamente mais profundos até o índice do driver selecionado, conforme o suporte da CPU.
omitted Usar o padrão do driver e a tabela de estados da plataforma.

Compromisso ou modo de falha

Estados de ociosidade pouco profundos melhoram a consistência da ativação, mas aumentam o consumo, o calor, a demanda de ventilação e possivelmente a pressão sobre a frequência sustentada.

Verificar após a inicialização

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 de estados de ociosidade do processador ACPI

Finalidade

Limita o estado de ociosidade ACPI mais profundo registrado pelo driver de ociosidade do processador. É relevante principalmente quando o acpi_idle está ativo, incluindo casos em que outro driver de ociosidade foi desativado ou está indisponível.

Valores e variantes

0 No código upstream atual, nenhum estado C de ACPI passa pelo laço de registro; o comportamento alternativo resultante deve ser verificado na plataforma de destino.
1 Limitar a C1.
2–8 Permitir estados ACPI até a profundidade selecionada, quando expostos pelo firmware.
9 or another value above the normal limit Pode substituir alguns limites da lista de exclusão DMI; não é uma recomendação de latency.
omitted Usar os padrões do firmware e do driver.

Compromisso ou modo de falha

Usar 0 pode produzir um comportamento alternativo específico da plataforma. Não o trate como um sinônimo portável de “somente C0”.

Verificar após a inicialização

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 Modo do driver de escalonamento de frequência de CPU Intel

Finalidade

Seleciona o modo de operação do driver de escalonamento de frequência intel_pstate ou impede seu carregamento. O modo escolhido muda a semântica do controle, o comportamento de HWP e os governors disponíveis.

Valores e variantes

disable Não ativar intel_pstate.
active Usar o modo ativo do intel_pstate e seus algoritmos internos performance/powersave.
passive Usar intel_pstate como driver de escalonamento sob governors genéricos de cpufreq.
force Forçar intel_pstate em sistemas normalmente excluídos; os controles térmicos e de energia da plataforma podem ser afetados.
no_hwp Não ativar Hardware P-states.
hwp_only Carregar somente onde HWP estiver disponível.
support_acpi_ppc Respeitar os limites ACPI _PPC.
per_cpu_perf_limits Expor limites de desempenho por CPU lógica.
no_cas Desativar o suporte ao escalonamento ciente da capacidade em sistemas híbridos.

Compromisso ou modo de falha

Uma política de frequência máxima fixa pode aumentar a limitação térmica e reduzir a sustentabilidade do desempenho com todos os núcleos. Meça a residência em frequências e a tail latency em conjunto.

Verificar após a inicialização

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 de inicialização não padronizado; Intel Energy Performance Bias normalmente é configurado por sysfs ou x86_energy_perf_policy

Finalidade

Representa uma política de Energy Performance Bias em árvores do kernel ou ferramentas de inicialização que processam explicitamente o token. O Linux upstream normalmente expõe Intel EPB por CPU por meio de energy_perf_bias e não define epb= como parâmetro genérico da linha de comando do kernel.

Valores e variantes

0 Preferência máxima por desempenho na interface EPB.
1–14 Compromisso intermediário entre desempenho e energia.
15 Preferência máxima por economia de energia.
performance, balance-performance, normal, balance-power, power Valores nomeados aceitos pela interface sysfs por CPU em kernels compatíveis.

Compromisso ou modo de falha

Firmware, suspensão e retomada, conexão a quente de CPU ou um serviço de gerenciamento de energia podem sobrescrever EPB. Trate a política selecionada como estado de execução gerenciado e verifique-a continuamente.

Verificar após a inicialização

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 Controle de multithreading simultâneo

Finalidade

Desativa as threads SMT secundárias para que cada núcleo físico exponha no máximo uma CPU lógica on-line. Isso pode reduzir a contenção entre threads irmãs nas unidades de execução, nos caches e em alguns caminhos de interrupção.

Valores e variantes

nosmt Desativar SMT na inicialização; a reativação em tempo de execução pode continuar possível quando a plataforma e o kernel permitirem.
nosmt=force Forçar a desativação de SMT e impedir a reativação em tempo de execução.
omitted Usar os padrões do firmware e do kernel.

Compromisso ou modo de falha

Desativar SMT reduz a capacidade de CPUs lógicas e pode concentrar mais trabalho em segundo plano em menos CPUs de manutenção.

Verificar após a inicialização

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

Parâmetros: 6

Comportamento do tick, isolamento de CPU, posicionamento de IRQ e RCU

O grupo principal de controles de latency: CPUs full-dynticks, isolamento de domínios do escalonador, afinidade de manutenção, defasagem de temporizadores e transferência de callbacks de RCU.

nohz Supressão do tick na ociosidade

Finalidade

Controla o comportamento de ociosidade sem tick do kernel quando ele foi compilado com o suporte NO_HZ necessário. O modo ativado permite que CPUs ociosas interrompam o tick periódico do escalonador.

Valores e variantes

on Ativar a ociosidade sem tick onde houver suporte.
off Desativar a ociosidade sem tick e manter os ticks periódicos.
omitted Usar o padrão da configuração do kernel.

Compromisso ou modo de falha

O parâmetro não tem efeito se o kernel em execução não tiver o suporte correspondente na compilação.

Verificar após a inicialização

grep -E "CONFIG_NO_HZ(_IDLE|_FULL)?=" /boot/config-$(uname -r) 2>/dev/null
cat /proc/cmdline
Link permanente
skew_tick Distribuição da fase do tick periódico por CPU

Finalidade

Controla se a atividade do tick periódico é defasada entre as CPUs em vez de disparar todos os ticks de CPU no mesmo instante. Ativar o recurso pode reduzir a contenção de bloqueios e o ruído sincronizado em sistemas grandes.

Valores e variantes

0 Não defasar intencionalmente os ticks periódicos.
1 Distribuir as fases do tick entre as CPUs.

Compromisso ou modo de falha

A contrapartida é um consumo maior de energia, porque as oportunidades de ociosidade de todo o encapsulamento podem ser reduzidas.

Verificar após a inicialização

cat /proc/cmdline
trace-cmd record -e timer -e irq -e sched sleep 5 2>/dev/null || true
Link permanente
irqaffinity Máscara padrão de afinidade de IRQ

Finalidade

Define a lista padrão de CPUs para IRQs que não recebem uma política de afinidade mais específica. A máscara de CPU selecionada determina onde começa o processamento das interrupções sem outra atribuição.

Valores e variantes

irqaffinity=<cpu-list> CPUs e intervalos separados por vírgulas, por exemplo 0,4-7.
omitted Usar a máscara de afinidade padrão da arquitetura/kernel.

Compromisso ou modo de falha

A CPU 0 pode se tornar um gargalo. Interrupções MSI-X gerenciadas podem não obedecer à máscara padrão da mesma forma que IRQs comuns.

Verificar após a inicialização

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 de domínios do escalonador e de IRQs gerenciadas

Finalidade

Seleciona CPUs e indicadores de isolamento para exclusão dos domínios do escalonador, comportamento full-dynticks e prevenção de IRQs gerenciadas. O isolamento de domínios é uma decisão de inicialização irreversível até a próxima reinicialização.

Valores e variantes

isolcpus=<cpu-list> Forma legada; o isolamento de domínios está implícito.
isolcpus=domain,<cpu-list> Excluir as CPUs dos domínios de balanceamento de carga do escalonador.
isolcpus=nohz,<cpu-list> Ativar o comportamento de isolamento full-dynticks para as CPUs.
isolcpus=managed_irq,<cpu-list> Exclusão na medida do possível das máscaras de IRQ gerenciadas quando houver CPUs de manutenção disponíveis.
combined flags Exemplo: domain,nohz,managed_irq,2-15.

Compromisso ou modo de falha

O isolamento não desloca automaticamente threads do kernel, filas de trabalho, filas de dispositivos, temporizadores ou threads de aplicações. Ele é um componente de um projeto completo de manutenção do sistema.

Verificar após a inicialização

cat /sys/devices/system/cpu/isolated
cat /sys/devices/system/cpu/nohz_full
taskset -pc $$
cat /proc/interrupts
Link permanente
nohz_full Conjunto de CPUs full-dynticks

Finalidade

Interrompe o tick periódico do escalonador nas CPUs listadas enquanto executam uma carga de trabalho adequada, reduzindo as interrupções recorrentes do kernel. Pelo menos uma CPU de manutenção permanece fora do conjunto; a CPU de inicialização é excluída automaticamente.

Valores e variantes

nohz_full=<cpu-list> Selecionar CPUs full-dynticks, por exemplo 2-15,18-31.
nohz_full=all Solicitar todas as CPUs possíveis; o kernel ainda mantém as CPUs de manutenção necessárias.
omitted Sem CPUs full-dynticks selecionadas na inicialização.

Compromisso ou modo de falha

Uma CPU listada ainda pode receber interrupções, trabalho de threads do kernel, falhas de página, invalidações de TLB e chamadas entre CPUs, a menos que esses caminhos sejam controlados separadamente.

Verificar após a inicialização

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 Transferência de callbacks de RCU

Finalidade

Desloca a invocação de callbacks de RCU das CPUs selecionadas para kthreads dedicadas. Um token sem valor não seleciona CPUs na inicialização; é necessária uma lista explícita de CPUs ou um mecanismo de execução compatível.

Valores e variantes

rcu_nocbs=<cpu-list> Transferir os callbacks das CPUs listadas, por exemplo rcu_nocbs=1-3.
rcu_nocbs with no argument Sem CPUs selecionadas na inicialização; CPUs elegíveis podem ser ativadas ou desativadas posteriormente por cpusets/interfaces de execução.
rcu_nocb_poll Fazer as kthreads nocb consultarem periodicamente em vez de dependerem de ativações; pode reduzir a latency de ativação com um custo energético substancial.
omitted Usar o posicionamento normal de callbacks, exceto que os kernels atuais transferem automaticamente os callbacks das CPUs nohz_full.

Compromisso ou modo de falha

A transferência desloca o trabalho; não o elimina. CPUs de manutenção com capacidade insuficiente podem acumular callbacks pendentes e provocar bloqueios em todo o sistema.

Verificar após a inicialização

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

Parâmetros: 4

Clocksource, política de energia PCIe e soluções para problemas de plataforma

Controles de manutenção do tempo e de plataforma que podem afetar a latency de ativação, o trabalho periódico e a previsibilidade dos caminhos dos dispositivos.

pcie_aspm.policy Política de PCI Express Active State Power Management

Finalidade

Seleciona a política de PCIe Active State Power Management. As políticas disponíveis equilibram a latency de ativação do link com o consumo de energia da plataforma, conforme o controle que firmware e kernel têm sobre cada link.

Valores e variantes

default Usar a política do firmware/padrão.
performance Priorizar o desempenho e desativar ASPM/Clock PM sob a política do kernel.
powersave Ativar estados de economia de energia do link com uma política equilibrada.
powersupersave Usar a política de economia de energia mais agressiva disponível.

Compromisso ou modo de falha

O consumo de energia aumenta, e alguns links controlados pelo firmware podem não seguir a política solicitada.

Verificar após a inicialização

cat /sys/module/pcie_aspm/parameters/policy 2>/dev/null
lspci -vv | grep -E "LnkCap:|LnkCtl:" | head -n 80
Link permanente
acpi_pad.disable Controle de ACPI Processor Aggregator específico da versão ou do fornecedor

Finalidade

Controla uma opção de ACPI Processor Aggregator específica da árvore do kernel destinada a impedir o trabalho de injeção de ociosidade. O código upstream atual de acpi_pad pode não expor esse parâmetro de módulo, portanto o suporte deve ser verificado no kernel e na distribuição exatos.

Valores e variantes

acpi_pad.disable=1 Compatível somente com árvores do kernel que expõem esse parâmetro de módulo.
acpi_pad.disable=0 Ativar/comportamento padrão nas árvores que implementam o parâmetro.
driver/module blacklist policy Alternativa operacional portável quando o driver é modular e foi validado como desnecessário.

Compromisso ou modo de falha

Remover comportamentos de gerenciamento de energia da plataforma pode afetar as expectativas do firmware. Valide no modelo de servidor e na revisão de BIOS exatos.

Verificar após a inicialização

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 Seleção da fonte de tempo do kernel

Finalidade

Seleciona um clocksource do kernel pelo nome. Em sistemas modernos com TSC invariável e sincronizado, o TSC pode oferecer baixo custo de leitura e alta resolução, enquanto outras plataformas podem exigir outra fonte validada.

Valores e variantes

clocksource=tsc Forçar TSC quando o kernel o considerar disponível.
clocksource=hpet Usar HPET onde estiver disponível; geralmente com maior custo de leitura.
clocksource=acpi_pm Usar o temporizador ACPI PM onde estiver disponível.
clocksource=kvm-clock, hyperv_clocksource, xen, or another listed source Opções específicas do hipervisor ou da plataforma.
omitted Permitir que o kernel selecione a fonte estável mais bem avaliada.

Compromisso ou modo de falha

Não adicione tsc=reliable apenas para suprimir avisos. Essa substituição separada desativa as verificações de estabilidade e só é apropriada quando existe uma garantia validada da plataforma.

Verificar após a inicialização

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 Solução alternativa de x86 para a verificação da fonte de IRQ do temporizador

Finalidade

Desativa uma verificação na inicialização destinada a detectar roteamento defeituoso de interrupções do temporizador. É uma solução de compatibilidade para ambientes específicos de hardware ou máquinas virtuais, não uma otimização geral de latency.

Valores e variantes

no_timer_check Ignorar a verificação do roteamento do temporizador.
omitted Executar as verificações normais de temporizadores do kernel.

Compromisso ou modo de falha

Suprimir um diagnóstico pode ocultar um problema de roteamento do temporizador da plataforma que depois apareça como ticks perdidos ou instabilidade na manutenção do tempo.

Verificar após a inicialização

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

Parâmetros: 9

Segurança, auditoria, watchdogs e verificações de máquina

Opções de grande impacto que reduzem a sobrecarga em troca de segurança ou diagnóstico de falhas. Elas exigem uma decisão explícita sobre o risco em produção.

selinux Inicialização do SELinux

Finalidade

Controla se o SELinux é inicializado e qual modo de política é usado na inicialização. Desativar a inicialização remove a aplicação de políticas e os pontos de auditoria do SELinux do sistema ativo.

Valores e variantes

selinux=0 Desativar o SELinux na inicialização.
selinux=1 or omitted Permitir a inicialização do SELinux quando compilado e configurado.
enforcing=0 Alternativa relacionada: inicializar o SELinux em modo permissivo para registrar as negações sem aplicá-las.
enforcing=1 Começar a aplicar as restrições quando a política permitir.

Compromisso ou modo de falha

selinux=0 é uma decisão de segurança, não um requisito genérico de HFT. A reativação normalmente exige reinicialização e pode exigir nova rotulagem do sistema de arquivos.

Verificar após a inicialização

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

Finalidade

Desativa o watchdog que informa sobre CPUs que passam tempo demais sem escalonar a thread do watchdog.

Valores e variantes

nosoftlockup Desativar a detecção de soft-lockup.
omitted Usar a política de watchdog configurada.
watchdog_thresh=<seconds> Ajuste relacionado: alterar o limiar de detecção de bloqueios em vez de desativá-la.

Compromisso ou modo de falha

Sem o detector, uma CPU bloqueada pode permanecer despercebida até que uma verificação externa de integridade ou um watchdog de hardware atue.

Verificar após a inicialização

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 Política de mitigação de vulnerabilidades de CPU

Finalidade

Seleciona uma política de mitigação de vulnerabilidades de CPU. Os modos disponíveis equilibram a sobrecarga de troca de contexto e de controle de especulação com a proteção contra as vulnerabilidades de hardware aplicáveis.

Valores e variantes

off Desativar todas as mitigações opcionais.
auto Ativar as mitigações conforme o estado de vulnerabilidade da CPU e os padrões do kernel.
auto,nosmt Mitigações automáticas mais desativação de SMT quando necessário.
omitted Usar a política compilada/padrão.

Compromisso ou modo de falha

Isso pode expor dados do kernel, de processos, de máquinas virtuais e entre threads, dependendo da CPU. O ganho de latency depende do hardware e da carga de trabalho.

Verificar após a inicialização

grep . /sys/devices/system/cpu/vulnerabilities/*
cat /proc/cmdline
dmesg | grep -i mitigation
Link permanente
audit Estado inicial do subsistema de auditoria do Linux

Finalidade

Controla se o subsistema de auditoria do kernel é ativado na inicialização. O estado selecionado afeta a sobrecarga de geração de eventos e as evidências disponíveis para segurança, conformidade e resposta a incidentes.

Valores e variantes

audit=0 or audit=off Desativar a auditoria nesta inicialização; ela não pode ser totalmente ativada depois sem reinicializar.
audit=1 or audit=on Ativar a auditoria na inicialização.
omitted Usar o padrão configurado do kernel ou da distribuição.

Compromisso ou modo de falha

Desativar a auditoria pode invalidar requisitos de conformidade, resposta a incidentes e análise forense.

Verificar após a inicialização

auditctl -s 2>/dev/null || true
cat /proc/cmdline
dmesg | grep -i "audit.*enabled"
Link permanente
mce Tratamento de verificações de máquina em x86

Finalidade

Controla o tratamento de x86 Machine Check Exception e o comportamento de recuperação relacionado. Desativá-lo remove os relatórios assíncronos de erros de hardware, assim como a telemetria crítica para falhas de CPU, memória e interconexão.

Valores e variantes

off Desativar o tratamento de verificações de máquina.
no_cmci Desativar o tratamento de interrupções por erros corrigidos e usar consultas periódicas onde houver suporte.
dont_log_ce Não registrar erros corrigidos.
ignore_ce Ignorar erros corrigidos.
no_lmce Desativar o suporte a Local Machine Check Exception.
bootlog or nobootlog Controlar o registro de verificações de máquina encontradas na inicialização em kernels compatíveis.
omitted Usar o tratamento normal de verificações de máquina.

Compromisso ou modo de falha

Desativar MCE pode transformar um componente em degradação diagnosticável em corrupção silenciosa de dados, reinicializações inexplicáveis ou picos de latency impossíveis de rastrear.

Verificar após a inicialização

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 Opção legada de verificação de máquina em x86-32

Finalidade

Desativa o suporte a Machine Check Exception em kernels x86 de 32 bits. Não é o controle normal de x86-64 e pode ser redundante quando outra política de verificação de máquina já está selecionada.

Valores e variantes

nomce Desativar MCE em compilações x86 de 32 bits compatíveis.
omitted Usar a política normal da arquitetura.

Compromisso ou modo de falha

Manter tokens redundantes ou não aplicáveis à arquitetura dificulta a auditoria da configuração de inicialização e pode ocultar premissas incorretas.

Verificar após a inicialização

uname -m
cat /proc/cmdline
dmesg | grep -Ei "mce|machine check"
Link permanente
norandmaps Randomização do espaço de endereços do espaço de usuário

Finalidade

Desativa ASLR no espaço de usuário, equivalente a definir kernel.randomize_va_space=0. Os endereços virtuais se tornam mais repetíveis, mas a resistência à exploração é reduzida de forma significativa.

Valores e variantes

norandmaps Desativar a randomização do espaço de endereços do espaço de usuário.
omitted Usar a política ASLR de sysctl/padrão.
kernel.randomize_va_space=0, 1, or 2 Política de execução/sysctl: desativada, randomização conservadora ou randomização completa.

Compromisso ou modo de falha

Isso enfraquece a defesa contra a exploração de corrupção de memória em todo o host.

Verificar após a inicialização

sysctl kernel.randomize_va_space
cat /proc/cmdline
Link permanente
nowatchdog Opção principal de watchdogs de bloqueio do kernel

Finalidade

Desativa os watchdogs de hard-lockup e de soft-lockup. Portanto, opções separadas para desativar watchdogs específicos podem se tornar redundantes quando este indicador está presente.

Valores e variantes

nowatchdog Desativar os watchdogs de bloqueio do kernel.
omitted Usar a política de watchdog configurada.
watchdog_thresh=<seconds> Alternativa relacionada: manter a detecção, mas aumentar o limiar.

Compromisso ou modo de falha

Um hard-lockup ou soft-lockup pode persistir sem que o kernel o informe. Garanta que outro mecanismo independente de verificação de atividade permaneça em funcionamento.

Verificar após a inicialização

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 de hard-lockup

Finalidade

Controla o detector de hard-lockup baseado em NMI e, em sistemas x86 compatíveis, sua atividade periódica de contadores de desempenho.

Valores e variantes

0 Desativar o watchdog NMI.
1 Ativar o watchdog NMI onde houver suporte.
omitted Usar o padrão do kernel ou da distribuição.

Compromisso ou modo de falha

Desativá-lo remove um sinal importante das CPUs que deixam de processar interrupções normais.

Verificar após a inicialização

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

Parâmetros: 3

Comportamento de NUMA e IOMMU

Controla a migração automática de páginas e a política de tradução DMA para manter a localidade estável e os caminhos dos dispositivos previsíveis.

numa_balancing Migração automática de páginas NUMA

Finalidade

Controla o balanceamento NUMA automático, que amostra o acesso à memória protegendo páginas periodicamente e pode migrar tarefas ou páginas. O estado escolhido equilibra a correção automática de localidade com o ruído de falhas de página e migrações.

Valores e variantes

disable Desativar o balanceamento NUMA automático.
enable Ativar o balanceamento NUMA automático.
omitted Usar o padrão do kernel ou da distribuição.

Compromisso ou modo de falha

Com o balanceamento automático desativado, um posicionamento ruim da aplicação continuará ruim. Vincule a memória explicitamente e valide os contadores de acesso remoto.

Verificar após a inicialização

sysctl kernel.numa_balancing
numactl --hardware
numastat -p $$ 2>/dev/null || true
Link permanente
intel_iommu Inicialização de Intel DMAR/IOMMU

Finalidade

Controla a inicialização de Intel IOMMU e os recursos relacionados de remapeamento DMA ou de interrupções, conforme o suporte do hardware e do firmware.

Valores e variantes

on Ativar o driver Intel IOMMU.
off Desativá-lo.
igfx_off Ignorar a unidade DMAR dos gráficos integrados.
sp_off Desativar o suporte a superpáginas de IOMMU.
sm_on or sm_off Permitir ou impedir o modo escalável da Intel.
strict Solicitação obsoleta específica do driver equivalente a iommu.strict=1.
tboot_noforce Não permitir que tboot force a ativação de IOMMU; reduz a proteção contra ataques DMA.

Compromisso ou modo de falha

Defeitos de firmware e a política de tradução podem afetar a latency ou a estabilidade do dispositivo. Valide cada geração de servidor/BIOS.

Verificar após a inicialização

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 Política padrão de passthrough DMA

Finalidade

Seleciona a política padrão de domínios IOMMU para dispositivos comuns. O passthrough ou o mapeamento de identidade podem reduzir a sobrecarga de tradução DMA para dispositivos confiáveis, enquanto domínios traduzidos oferecem isolamento mais forte.

Valores e variantes

iommu=pt Usar o modo passthrough por padrão.
iommu=nopt Usar o modo DMA traduzido por padrão.
iommu.passthrough=1 Controle explícito moderno de passthrough.
iommu.passthrough=0 Usar tradução IOMMU por padrão.
iommu.strict=0 or 1 Política relacionada de invalidação em modo traduzido: adiada ou estrita.
iommu=off, force, noforce, soft, merge, nomerge Controles gerais específicos da arquitetura; não são sinônimos diretos de passthrough.

Compromisso ou modo de falha

O passthrough enfraquece o isolamento DMA. Um dispositivo defeituoso ou comprometido pode acessar a memória do host fora dos buffers previstos.

Verificar após a inicialização

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

Parâmetros: 3

Nomes de rede e política de recuperação do NVMe

Comportamento de atribuição de nomes de NIC no espaço de usuário e configurações de tempo limite e novas tentativas de armazenamento que determinam a rapidez com que as falhas ficam visíveis.

net.ifnames Política de nomes previsíveis de interfaces do systemd/udev

Finalidade

Controla a atribuição de nomes previsíveis de interfaces no systemd/udev. Desativá-la pode restaurar nomes legados como eth0 quando a distribuição permitir; é uma convenção do espaço de usuário passada na linha de comando do kernel, não um controle de latency de rede.

Valores e variantes

0 Desativar NamePolicy previsível.
1 or omitted Permitir nomes previsíveis de acordo com o esquema de nomes ativo do systemd e a política .link.

Compromisso ou modo de falha

A ordem legada ethX pode mudar quando o hardware, o firmware ou a ordem de detecção mudam. Uma identidade de interface incorreta é mais perigosa que qualquer preferência de nomes.

Verificar após a inicialização

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 Tempo limite de comandos de E/S NVMe em segundos

Finalidade

Define o valor de entrada do tempo limite de E/S NVMe em segundos. O código upstream atual armazena o parâmetro do módulo como um inteiro sem sinal com padrão de 30 e depois o converte no tempo limite da camada de blocos em jiffies; portanto, o tempo limite efetivo da fila deve ser verificado após a inicialização.

Valores e variantes

30 Padrão upstream atual em segundos; verifique o kernel de destino.
a finite positive integer Tempo limite explícito em segundos.
4294967295 Valor máximo de entrada sem sinal de 32 bits, não um token de infinito. A expressão do driver nvme_io_timeout * HZ pode sofrer estouro antes de se tornar o tempo limite efetivo da solicitação; em um kernel de 1000 Hz, esse valor pode resultar em cerca de 49.7 dias em vez de 136 anos.

Compromisso ou modo de falha

Um tempo limite muito grande ou que sofreu estouro pode deixar a E/S bloqueada por um período inesperado e atrasar a redefinição, a comutação por falha ou a recuperação da aplicação. Considere o valor observado em /sys/block/<device>/queue/io_timeout como o comportamento efetivo garantido.

Verificar após a inicialização

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 Número máximo de novas tentativas de comandos NVMe

Finalidade

Define o número máximo de novas tentativas para comandos NVMe elegíveis. O código upstream atual o armazena como um byte sem sinal e usa 5 como padrão.

Valores e variantes

0 Não tentar novamente os comandos elegíveis.
1–255 Número máximo de novas tentativas; 10 duplica o padrão upstream atual.
omitted Usar o padrão do kernel.

Compromisso ou modo de falha

Mais tentativas podem prolongar a tail latency e atrasar a comutação por falha. Menos tentativas podem expor erros transitórios de mídia ou transporte mais cedo.

Verificar após a inicialização

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

Como os perfis são projetados

Cinco camadas por trás de um perfil exato de inicialização para produção

Um perfil fácil de manter separa as escolhas invariáveis da plataforma das listas de CPU específicas da topologia e das substituições de segurança de alto risco. O HFTKernel avalia essas camadas em conjunto e entrega uma configuração revisável, testável e reversível.

01
Inicialização e recuperação

Dispositivo raiz, modo de montagem inicial, console serial e reserva de kdump testada.

02
Determinismo da plataforma

Driver de ociosidade, política de frequência, PCIe ASPM, clocksource, NUMA e política IOMMU.

03
Topologia

CPUs de manutenção, CPUs full-dynticks, transferência de RCU, máscara de IRQ padrão, afinidade de filas e cpusets de aplicações.

04
Aplicação de políticas em tempo de execução

Máscaras de filas de trabalho, afinidade de threads do kernel, política EPB/governor, filas de NIC, vinculação de memória e CPU affinity de serviços.

05
Controles de risco

Mitigações de segurança, LSM, auditoria, ASLR, watchdog e política de verificação de máquina revisados de forma independente.

Verificação após a inicialização

Confirme o estado efetivo antes de medir a latency

A linha de comando é apenas uma entrada. Esta lista de verificação confirma o kernel em execução, a topologia de CPU, o conjunto full-dynticks, o posicionamento de IRQ, o clocksource, a política de energia, IOMMU, o estado de segurança e a política de recuperação do NVMe.

Sequência de verificação somente para leitura
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