{"id":19369,"date":"2026-05-15T11:51:18","date_gmt":"2026-05-15T09:51:18","guid":{"rendered":"https:\/\/webhosting.de\/server-irq-balancing-netzwerk-performance-optimierung-datacenter\/"},"modified":"2026-05-15T11:51:18","modified_gmt":"2026-05-15T09:51:18","slug":"servidor-irq-balancing-otimizacao-do-desempenho-da-rede-centro-de-dados","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pt\/server-irq-balancing-netzwerk-performance-optimierung-datacenter\/","title":{"rendered":"Equil\u00edbrio de IRQs de servidor e desempenho de rede para alojamento de alta carga"},"content":{"rendered":"<p>A carga elevada da rede \u00e9 determinada pelo processamento eficiente de <strong>IRQ do servidor<\/strong> sinais: Se voc\u00ea distribuir as interrup\u00e7\u00f5es de forma inteligente entre os n\u00facleos da CPU, voc\u00ea reduz a lat\u00eancia e evita quedas. Neste guia, mostrarei como combinar balanceamento de IRQ, RSS\/RPS e afinidade de CPU de forma pr\u00e1tica para tornar sustent\u00e1vel a hospedagem de alta carga. <strong>eficaz<\/strong> para funcionar.<\/p>\n\n<h2>Pontos centrais<\/h2>\n\n<ul>\n  <li><strong>Distribui\u00e7\u00e3o de IRQ<\/strong> evita pontos de acesso em n\u00facleos individuais da CPU.<\/li>\n  <li><strong>Fila m\u00faltipla<\/strong> mais RSS\/RPS paraleliza o processamento de pacotes.<\/li>\n  <li><strong>Aten\u00e7\u00e3o NUMA<\/strong> reduz o acesso e a lat\u00eancia entre n\u00f3s.<\/li>\n  <li><strong>Regulador da CPU<\/strong> e a fixa\u00e7\u00e3o de threads suavizam os tempos de resposta.<\/li>\n  <li><strong>Monitoriza\u00e7\u00e3o<\/strong> Verifica os pps, as lat\u00eancias, as quedas e a utiliza\u00e7\u00e3o do n\u00facleo.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/serverraum-hosting-0382.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Breve explica\u00e7\u00e3o dos IRQs: Por que eles controlam a carga da rede<\/h2>\n\n<p>Para cada pacote de entrada, a placa de rede informa via <strong>IRQ<\/strong>, que o trabalho est\u00e1 pendente, caso contr\u00e1rio o kernel teria de sondar ativamente. Se a atribui\u00e7\u00e3o permanecer num n\u00facleo, a sua utiliza\u00e7\u00e3o aumenta, enquanto outros n\u00facleos <strong>n\u00e3o utilizado<\/strong> permanecem. \u00c9 exatamente nesta altura que as lat\u00eancias aumentam, os buffers do anel RX ficam cheios e os controladores come\u00e7am a descartar os pacotes. Eu distribuo as interrup\u00e7\u00f5es pelos n\u00facleos adequados para manter o processamento de pacotes uniforme e previs\u00edvel. Isso alivia os gargalos, suaviza os tempos de resposta e mant\u00e9m as perdas de pacotes em um n\u00edvel m\u00ednimo.<\/p>\n\n<h2>Balanceamento de IRQ e afinidade de CPU no Linux<\/h2>\n\n<p>O servi\u00e7o <strong>equil\u00edbrio do Iraque<\/strong> distribui as interrup\u00e7\u00f5es dinamicamente, analisa a carga e muda as afinidades automaticamente ao longo do tempo. Para perfis de carga extremos, eu defino as afinidades manualmente via <code>\/proc\/irq\/\/smp_affinity<\/code> e ligam as pistas especificamente aos n\u00facleos do mesmo <strong>NUMA<\/strong>-n\u00f3s. Esta combina\u00e7\u00e3o de ajuste autom\u00e1tico e fino ajuda-me a processar cargas de base e picos de forma limpa. Uma introdu\u00e7\u00e3o aprofundada ao <a href=\"https:\/\/webhosting.de\/pt\/tratamento-de-interrupcoes-no-servidor-otimizacao-do-desempenho-do-cpu-7342\/\">Tratamento de interrup\u00e7\u00f5es e otimiza\u00e7\u00e3o da CPU<\/a> Utilizo-os para me ajudar no meu planeamento. Isso continua a ser importante: Eu sempre relaciono a topologia do hardware, a distribui\u00e7\u00e3o de IRQs e os threads de aplicativos entre si.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/server_irq_balance_performance_4821.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Utiliza\u00e7\u00e3o pr\u00e1tica de NICs com v\u00e1rias filas de espera, RSS e RPS<\/h2>\n\n<p>As placas de rede modernas fornecem v\u00e1rias filas RX\/TX, cada fila acciona o seu pr\u00f3prio <strong>IRQs<\/strong>, e o Receive Side Scaling (RSS) distribui os fluxos para os n\u00facleos. Se n\u00e3o houver filas de hardware suficientes, eu adiciono Receive Packet Steering (RPS) e Transmit Packet Steering (XPS) ao kernel para <strong>Paralelismo<\/strong>. Com <code>ethtool -L ethX combinado N<\/code> Ajusto o n\u00famero da fila para o n\u00famero do n\u00facleo do n\u00f3 NUMA associado. Verifico com <code>ettool -S<\/code> e <code>nstat<\/code>, se ocorrem quedas, sondagens de ocupado ou picos de pps elevados. Para uma suaviza\u00e7\u00e3o mais fina da carga, tamb\u00e9m utilizo <a href=\"https:\/\/webhosting.de\/pt\/coalescencia-de-interrupcoes-otimizacao-da-rede-serverflux\/\">Coalesc\u00eancia de interrup\u00e7\u00f5es<\/a> no planeamento, para que a placa de rede n\u00e3o gere demasiados IRQs individuais.<\/p>\n\n<p>A tabela seguinte mostra os componentes centrais e os comandos t\u00edpicos que utilizo para uma configura\u00e7\u00e3o coerente:<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Bloco de constru\u00e7\u00e3o<\/th>\n      <th>Objetivo<\/th>\n      <th>Exemplo<\/th>\n      <th>Nota<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>equil\u00edbrio do Iraque<\/strong><\/td>\n      <td>Distribui\u00e7\u00e3o autom\u00e1tica<\/td>\n      <td><code>systemctl enable --now irqbalance<\/code><\/td>\n      <td>Ponto de partida para cargas de trabalho mistas<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Afinidade<\/strong><\/td>\n      <td>Corrige a fixa\u00e7\u00e3o<\/td>\n      <td><code>echo mask &gt; \/proc\/irq\/XX\/smp_affinity<\/code><\/td>\n      <td>Observar a atribui\u00e7\u00e3o NUMA<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Tacos<\/strong><\/td>\n      <td>Mais paralelismo<\/td>\n      <td><code>ethtool -L ethX combinado N<\/code><\/td>\n      <td>Correspond\u00eancia com n\u00facleos de n\u00f3s<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>RSS\/RPS<\/strong><\/td>\n      <td>Distribui\u00e7\u00e3o do fluxo<\/td>\n      <td><code>sysfs: rps_cpus\/rps_flow_cnt<\/code><\/td>\n      <td>\u00datil para um pequeno n\u00famero de filas de espera de NIC<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>XPS<\/strong><\/td>\n      <td>N\u00facleos de trajet\u00f3ria TX ordenados<\/td>\n      <td><code>sysfs: xps_cpus<\/code><\/td>\n      <td>Evita o desgaste da cache<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Utiliza\u00e7\u00e3o sensata do balanceamento autom\u00e1tico de IRQ<\/h2>\n\n<p>Para servidores de alojamento mistos, \u00e9 muitas vezes suficiente ativar <strong>equil\u00edbrio do Iraque<\/strong>, porque o daemon reconhece constantemente as mudan\u00e7as de carga. Verifico o estado atrav\u00e9s de <code>systemctl status irqbalance<\/code> e dar uma vista de olhos em <code>\/proc\/interrup\u00e7\u00f5es<\/code>, para ver a distribui\u00e7\u00e3o por fila e n\u00facleo. Se as lat\u00eancias aumentarem em picos, defino n\u00facleos de teste que processam principalmente interrup\u00e7\u00f5es e comparo os valores medidos antes e depois da altera\u00e7\u00e3o. Eu mantenho a configura\u00e7\u00e3o <strong>simples<\/strong>, para que as auditorias e revers\u00f5es posteriores sejam r\u00e1pidas. S\u00f3 quando os padr\u00f5es s\u00e3o claros \u00e9 que me aprofundo na fixa\u00e7\u00e3o.<\/p>\n\n<h2>Afinidade manual da CPU para um controlo m\u00e1ximo<\/h2>\n\n<p>Com taxas de pps muito elevadas, coloco filas de RX em n\u00facleos selecionados do mesmo <strong>NUMA<\/strong>-e separo deliberadamente os threads de aplica\u00e7\u00e3o deles. Eu isolo n\u00facleos individuais para interrup\u00e7\u00f5es, executo trabalhadores em n\u00facleos vizinhos e presto aten\u00e7\u00e3o estrita \u00e0 localidade do cache. Desta forma, reduzo os acessos entre n\u00f3s e minimizo as dispendiosas mudan\u00e7as de contexto no hot path. Para obter resultados reproduz\u00edveis, documentei claramente as m\u00e1scaras de IRQ, a atribui\u00e7\u00e3o de filas e a afinidade de thread dos servi\u00e7os. Essa clareza mant\u00e9m os tempos de execu\u00e7\u00e3o dos pacotes <strong>constante<\/strong> e reduz os valores an\u00f3malos.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/server-performance-optimization-9876.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Coordena\u00e7\u00e3o limpa da otimiza\u00e7\u00e3o da CPU e das aplica\u00e7\u00f5es<\/h2>\n\n<p>Eu coloquei o <strong>Regulador da CPU<\/strong> frequentemente definido como \u201edesempenho\u201c porque as altera\u00e7\u00f5es de rel\u00f3gio aumentam os saltos de lat\u00eancia. Eu vinculo processos cr\u00edticos como Nginx, HAProxy ou bancos de dados a n\u00facleos que est\u00e3o pr\u00f3ximos aos n\u00facleos IRQ, ou eu os separo deliberadamente se o perfil de cache exigir isso. Continua a ser importante limitar as altera\u00e7\u00f5es de contexto e manter o kernel atualizado para que as optimiza\u00e7\u00f5es na pilha de rede tenham efeito. Me\u00e7o os efeitos de cada mudan\u00e7a em vez de fazer suposi\u00e7\u00f5es e adapto-me passo a passo. Isso resulta em uma configura\u00e7\u00e3o que funciona sob carga <strong>previs\u00edvel<\/strong> reage.<\/p>\n\n<h2>Configurar corretamente a monitoriza\u00e7\u00e3o e a medi\u00e7\u00e3o<\/h2>\n\n<p>Sem valores medidos, a afina\u00e7\u00e3o continua a ser um jogo de adivinha\u00e7\u00e3o, por isso vou come\u00e7ar com <strong>sar<\/strong>, <strong>mpstat<\/strong>, <strong>vmstat<\/strong>, <strong>nstat<\/strong>, <strong>ss<\/strong> e <code>ettool -S<\/code>. Para testes de carga estruturados, utilizo <code>iperf3<\/code> e analiso o d\u00e9bito, os pps, a lat\u00eancia, as retransmiss\u00f5es e a utiliza\u00e7\u00e3o do n\u00facleo. Registo tend\u00eancias a longo prazo utilizando sistemas de monitoriza\u00e7\u00e3o padr\u00e3o para reconhecer padr\u00f5es como picos noturnos, janelas de backup ou campanhas. Se quiser compreender o percurso dos dados de forma hol\u00edstica, beneficia de uma vis\u00e3o do <a href=\"https:\/\/webhosting.de\/pt\/servidor-pipeline-de-processamento-de-pacotes-alojamento-router-de-rede\/\">Pipeline de processamento de pacotes<\/a> do IRQ da placa de rede para o espa\u00e7o do utilizador. Somente a combina\u00e7\u00e3o desses sinais mostra se o balanceamento de IRQ e a afinidade alcan\u00e7aram o efeito desejado. <strong>Efeito<\/strong> trazer.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/server_irq_balancing_4356.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Compreender a NAPI, Softirqs e ksoftirqd<\/h2>\n<p>Para gerir os picos de lat\u00eancia com cargas elevadas de pps, tenho em conta a <strong>NAPI<\/strong>-e a intera\u00e7\u00e3o entre IRQs r\u00edgidos e IRQs suaves. Ap\u00f3s o primeiro IRQ de hardware, a NAPI recupera v\u00e1rios pacotes da fila de RX em modo de pesquisa para evitar tempestades de IRQ. Se os IRQs soft n\u00e3o forem processados prontamente, eles s\u00e3o movidos para <code>ksoftirqd\/N<\/code> Threads que s\u00f3 funcionam com prioridade normal - uma raz\u00e3o cl\u00e1ssica para aumentar as lat\u00eancias de cauda. Eu observo <code>\/proc\/softirqs<\/code> e <code>\/proc\/net\/softnet_stat<\/code>; um elevado \u201e<code>tempo de espera<\/code>\u201c indicam que o or\u00e7amento \u00e9 demasiado apertado. Com <code>sysctl -w net.core.netdev_budget_usecs=8000<\/code> e <code>sysctl -w net.core.netdev_budget=600<\/code> Aumento o tempo de processamento por pesquisa de NIC e o or\u00e7amento de pacotes como um teste. Importante: Aumento os valores gradualmente, me\u00e7o e verifico se ocorre jitter da CPU ou interfer\u00eancia com threads de aplicativos.<\/p>\n\n<h2>Ajuste fino do hash RSS e da tabela de indirec\u00e7\u00e3o<\/h2>\n<p>O RSS distribui fluxos para filas atrav\u00e9s da tabela de indirec\u00e7\u00e3o (RETA). Verifico a chave de hash e a tabela com <code>ethtool -n ethX rx-flow-hash tcp4<\/code> e definir a distribui\u00e7\u00e3o simetricamente, se necess\u00e1rio. Com <code>ethtool -X ethX igual N<\/code> ou especificamente por entrada (<code>ethtool -X ethX hkey ... hfunc toeplitz indir 0:1 1:3 ...<\/code>), fa\u00e7o corresponder as atribui\u00e7\u00f5es aos n\u00facleos preferenciais de um n\u00f3 NUMA. O objetivo \u00e9 <strong>Ader\u00eancia do fluxo<\/strong>Um fluxo permanece no mesmo n\u00facleo para que a localidade do cache e a reten\u00e7\u00e3o de bloqueios na pilha permane\u00e7am m\u00ednimas. Para ambientes com muitos fluxos UDP curtos, eu aumento o <code>rps_flow_cnt<\/code> por fila de RX para que a distribui\u00e7\u00e3o de software tenha baldes suficientes e n\u00e3o crie hotspots. N\u00e3o me esque\u00e7o de que os hashes sim\u00e9tricos ajudam nas topologias ECMP, mas no contexto do servidor, o equil\u00edbrio dos n\u00facleos \u00e9 o que mais conta.<\/p>\n\n<h2>Sele\u00e7\u00e3o sensata de descargas, GRO\/LRO e tamanhos de an\u00e9is<\/h2>\n<p>As descargas de hardware reduzem a carga na CPU, mas podem alterar os perfis de lat\u00eancia. Eu verifico com <code>ethtool -k ethX<\/code>, se <strong>TSO\/GSO\/UDP_SEG<\/strong> no TX e <strong>GRO\/LRO<\/strong> est\u00e3o activos no RX. O GRO agrupa pacotes no kernel e \u00e9 quase sempre \u00fatil para a taxa de transfer\u00eancia; o LRO pode ser problem\u00e1tico em configura\u00e7\u00f5es de roteamento ou filtragem e \u00e9 melhor deix\u00e1-lo de fora. Para APIs cr\u00edticas em termos de lat\u00eancia, eu testo uma agrega\u00e7\u00e3o GRO mais pequena (ou temporariamente desligada) se as lat\u00eancias p99 dominarem. Eu tamb\u00e9m ajusto o tamanho dos an\u00e9is via <code>ethtool -G ethX rx 1024 tx 1024<\/code>An\u00e9is maiores interceptam rajadas, mas aumentam a lat\u00eancia em caso de congestionamento; an\u00e9is demasiado pequenos conduzem a <code>rx_missed_errors<\/code>. Baseio-me em valores medidos a partir de <code>ettool -S<\/code> (por exemplo. <code>rx_no_buffer_count<\/code>, <code>rx_dropped<\/code>) e concordar com <strong>BQL<\/strong> (limites de filas de bytes, autom\u00e1ticos no lado do kernel) para que as filas TX n\u00e3o sejam sobrecarregadas.<\/p>\n\n<h2>Virtualiza\u00e7\u00e3o: IRQs em VMs e no hipervisor<\/h2>\n\n<p>Em configura\u00e7\u00f5es virtualizadas, controlo a distribui\u00e7\u00e3o f\u00edsica de NIC no anfitri\u00e3o e defino <strong>Equil\u00edbrio de IRQ<\/strong> claramente. As VMs obt\u00eam vCPUs suficientes, mas eu evito o comprometimento excessivo cego para que os atrasos de agendamento n\u00e3o aumentem a lat\u00eancia. Drivers paravirtualizados modernos, como virtio-net ou vmxnet3, me fornecem os melhores caminhos para altas taxas de pps. Dentro da VM, verifico novamente a afinidade e a contagem de filas para que o convidado n\u00e3o se torne um gargalo. \u00c9 crucial ter uma vis\u00e3o consistente do host e do convidado para que todo o caminho de dados <strong>verdadeiro<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/server_irq_balance_net_5678.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Aprofundar a virtualiza\u00e7\u00e3o: SR-IOV, vhost e OVS<\/h2>\n<p>Para taxas de pps muito elevadas, utilizo o hipervisor <strong>SR-IOV<\/strong>Eu vinculei fun\u00e7\u00f5es virtuais (VFs) da NIC f\u00edsica diretamente \u00e0s VMs e as fixei nos n\u00facleos dos n\u00f3s NUMA apropriados. Isso ignora partes da pilha do host e reduz a lat\u00eancia. Onde o SR-IOV n\u00e3o se encaixa, eu presto aten\u00e7\u00e3o a <strong>vhost-net<\/strong> e fixar os threads do vhost, como trabalhadores de aplicativos e n\u00facleos de IRQ, para que n\u00e3o ocorram saltos entre NUMAs. Em configura\u00e7\u00f5es de sobreposi\u00e7\u00e3o ou comuta\u00e7\u00e3o, avalio os custos adicionais da ponte Linux ou do OVS; para perfis extremos, s\u00f3 uso o OVS-DPDK se o esfor\u00e7o operacional justificar a vantagem mensur\u00e1vel. O mesmo se aplica aqui: eu me\u00e7o pps, lat\u00eancia e distribui\u00e7\u00e3o de CPU antes de tomar decis\u00f5es, n\u00e3o depois.<\/p>\n\n<h2>Sondagem de ocupa\u00e7\u00e3o e afina\u00e7\u00e3o do espa\u00e7o do utilizador<\/h2>\n<p>Para servi\u00e7os cr\u00edticos em termos de lat\u00eancia <strong>Sondagem ocupada<\/strong> reduzir o jitter. Activei o seguinte como teste <code>sysctl -w net.core.busy_read=50<\/code> e <code>net.core.busy_poll=50<\/code> (microssegundos) e definir a op\u00e7\u00e3o de socket <code>SO_BUSY_POLL<\/code> seletivamente para sockets afetados. O espa\u00e7o do usu\u00e1rio ent\u00e3o sonda pouco antes de bloquear e pega os pacotes antes que eles se movam mais profundamente nas filas. Isso custa tempo de CPU, mas geralmente fornece lat\u00eancias p99 mais est\u00e1veis. Eu mantenho os valores baixos, monitoro a utiliza\u00e7\u00e3o do n\u00facleo e s\u00f3 combino polling ocupado com afinidade clara de thread e um regulador de CPU fixo, caso contr\u00e1rio os efeitos se cancelam.<\/p>\n\n<h2>Resumo dos custos do filtro de encomendas, do Conntrack e do eBPF<\/h2>\n<p>A firewall e o NAT fazem parte do percurso dos dados. Por conseguinte, verifico o <strong>nftables\/iptables<\/strong>-e arrumo as regras mortas ou as cadeias profundas. Em configura\u00e7\u00f5es ocupadas, ajusto o tamanho da tabela do Conntrack (<code>nf_conntrack_max<\/code>, hash bucket number) ou desativar o Conntrack especificamente para fluxos sem estado. Se forem utilizados programas eBPF (XDP, tc-BPF), me\u00e7o os seus custos de tempo de execu\u00e7\u00e3o por hook e dou prioridade ao \u201eearly drop\/redirect\u201c para aliviar os caminhos dispendiosos. \u00c9 importante ter uma responsabilidade clara: ou a otimiza\u00e7\u00e3o tem efeito na descarga da placa de rede, no programa eBPF ou na pilha cl\u00e1ssica - a duplica\u00e7\u00e3o s\u00f3 aumenta a lat\u00eancia.<\/p>\n\n<h2>Isolamento da CPU e n\u00facleos de manuten\u00e7\u00e3o<\/h2>\n<p>Para uma lat\u00eancia absolutamente determin\u00edstica, guardo o trabalho de fundo em <strong>CPUs de limpeza<\/strong> off. Os par\u00e2metros do kernel, tais como <code>nohz_full=<\/code>, <code>rcu_nocbs=<\/code> e <code>irqaffinity=<\/code> ajudam a manter os n\u00facleos dedicados em grande parte livres de manipula\u00e7\u00e3o de ticks, retornos de chamada RCU e IRQs externos. Eu isolo um conjunto de n\u00facleos para os trabalhadores da aplica\u00e7\u00e3o e outro para IRQs e softirqs; os servi\u00e7os do sistema e os temporizadores s\u00e3o executados em n\u00facleos separados. Isso garante perfis de cache limpos e reduz os efeitos de preemp\u00e7\u00e3o. O hyper-threading pode aumentar o jitter em casos individuais; testo se a sua desativa\u00e7\u00e3o por par de n\u00facleos suaviza as lat\u00eancias p99 antes de tomar uma decis\u00e3o global.<\/p>\n\n<h2>Manual de diagn\u00f3stico e antipadr\u00f5es t\u00edpicos<\/h2>\n<p>Quando ocorrem quedas ou picos de lat\u00eancia, adoto uma abordagem estruturada: 1) <code>\/proc\/interrup\u00e7\u00f5es<\/code> Verificar se a distribui\u00e7\u00e3o \u00e9 desigual. 2) <code>ettool -S<\/code> em quedas RX\/TX, erros FIFO, <code>rx_no_buffer_count<\/code> verificar. 3) <code>\/proc\/net\/softnet_stat<\/code> para \u201e<code>tempo de espera<\/code>\" ou \"<code>gotas<\/code>\u201c. 4) <code>mpstat -P TODOS<\/code> e <code>topo<\/code> para a atividade ksoftirqd. 5) M\u00e9tricas da aplica\u00e7\u00e3o (n\u00famero de liga\u00e7\u00f5es activas, retransmiss\u00f5es com <code>ss -ti<\/code>). Anti-padr\u00f5es que evito: enormes an\u00e9is de RX (congestionamento oculto), ativa\u00e7\u00e3o\/desativa\u00e7\u00e3o selvagem de offloads sem medi\u00e7\u00e3o, mistura de afinidades fixas com irqbalance agressivo, ou RPS e RSS em simult\u00e2neo sem uma arquitetura alvo clara. Cada altera\u00e7\u00e3o \u00e9 objeto de uma medi\u00e7\u00e3o antes\/depois de uma compara\u00e7\u00e3o e de um breve protocolo.<\/p>\n\n<h2>Exemplos de conceitos para alojamento web e APIs<\/h2>\n\n<h3>Servidor de alojamento web cl\u00e1ssico<\/h3>\n<p>Para muitos s\u00edtios Web pequenos, ativo <strong>equil\u00edbrio do Iraque<\/strong>, Configuro v\u00e1rias filas e selecciono o regulador de desempenho. Me\u00e7o as lat\u00eancias L7 durante os picos e presto aten\u00e7\u00e3o aos picos de pps, que ocorrem principalmente com TLS e HTTP\/2. Se as filas de hardware n\u00e3o forem suficientes, adiciono RPS para distribui\u00e7\u00e3o adicional ao n\u00edvel do software. Este ajuste mant\u00e9m os tempos de resposta <strong>constante<\/strong>, mesmo que a utiliza\u00e7\u00e3o global da capacidade pare\u00e7a moderada. Controlos regulares de <code>\/proc\/interrup\u00e7\u00f5es<\/code> mostrar-me se os n\u00facleos individuais est\u00e3o a inclinar-se.<\/p>\n\n<h3>Proxy reverso de alta carga ou gateway de API<\/h3>\n<p>Para frontends com um grande n\u00famero de conex\u00f5es, eu fixo filas RX finamente em n\u00facleos definidos e posiciono proxy workers em n\u00facleos pr\u00f3ximos. Eu tomo uma decis\u00e3o consciente sobre se o irqbalance permanece ativo ou se a fixa\u00e7\u00e3o fixa fornece resultados mais claros. Se n\u00e3o houver filas suficientes, selecciono especificamente RPS\/XPS e calibro <strong>Coalesc\u00eancia<\/strong>, para evitar tempestades de IRQs. Isto permite-me obter uma baixa lat\u00eancia a uma taxa de pps muito elevada e manter as lat\u00eancias finais sob controlo. A documenta\u00e7\u00e3o de cada altera\u00e7\u00e3o facilita as auditorias subsequentes e mant\u00e9m o comportamento <strong>previs\u00edvel<\/strong>.<\/p>\n\n<h2>Escolha do fornecedor e crit\u00e9rios de hardware<\/h2>\n\n<p>Presto aten\u00e7\u00e3o aos NICs com <strong>Fila m\u00faltipla<\/strong>, lat\u00eancia fi\u00e1vel na espinha dorsal e vers\u00f5es actualizadas do kernel da plataforma. A topologia equilibrada da CPU e a separa\u00e7\u00e3o NUMA clara impedem que as interrup\u00e7\u00f5es de rede cheguem a zonas de mem\u00f3ria remotas. Para projectos com taxas de pps elevadas, a escolha da infraestrutura honra cada hora de afina\u00e7\u00e3o, porque o hardware fornece reservas. Em compara\u00e7\u00f5es pr\u00e1ticas, tenho trabalhado bem com fornecedores que divulgam perfis de desempenho e fornecem predefini\u00e7\u00f5es compat\u00edveis com IRQ, como fornecedores como webhoster.de. Essas configura\u00e7\u00f5es permitem-me usar o balanceamento de IRQ, RSS e afinidade de forma eficaz e minimizar os tempos de resposta. <strong>estreito<\/strong> para segurar.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/05\/serverraum-performance-2468.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Procedimento passo-a-passo para a sua pr\u00f3pria afina\u00e7\u00e3o<\/h2>\n\n<p><strong>Passo 1:<\/strong> Determino o estado atual com <code>iperf3<\/code>, <code>sar<\/code>, <code>mpstat<\/code>, <code>nstat<\/code> e <code>ettool -S<\/code>, para que eu tenha valores iniciais claros. <strong>Passo 2:<\/strong> Se o irqbalance n\u00e3o estiver em execu\u00e7\u00e3o, ativo o servi\u00e7o, aguardo sob carga e comparo a lat\u00eancia, os pps e as quedas. <strong>Passo 3:<\/strong> Ajusto o n\u00famero da fila e a configura\u00e7\u00e3o RSS para os n\u00facleos do n\u00f3 NUMA associado. <strong>Passo 4:<\/strong> Defino o regulador da CPU para \u201edesempenho\u201c e atribuo servi\u00e7os centrais aos n\u00facleos apropriados. <strong>Passo 5:<\/strong> S\u00f3 ent\u00e3o eu ajusto a afinidade manual e a fixa\u00e7\u00e3o NUMA se os valores medidos ainda mostrarem gargalos. <strong>Passo 6:<\/strong> Verifico as tend\u00eancias ao longo dos dias para classificar de forma fi\u00e1vel os picos de eventos, os backups ou os picos de marketing.<\/p>\n\n<h2>Brevemente resumido<\/h2>\n\n<p>Eficaz <strong>Equil\u00edbrio de IRQ<\/strong> distribui o trabalho de rede entre n\u00facleos adequados, reduz lat\u00eancias e evita quedas em altas taxas de pps. Em combina\u00e7\u00e3o com NICs de filas m\u00faltiplas, RSS\/RPS, um regulador de CPU adequado e afinidade de thread limpa, eu utilizo a pilha de rede de forma confi\u00e1vel. Valores medidos a partir de <code>ettool -S<\/code>, <code>nstat<\/code>, <code>sar<\/code> e <code>iperf3<\/code> me conduzam passo a passo ao meu objetivo em vez de andar \u00e0s voltas no escuro. Se pensar na topologia NUMA, na fixa\u00e7\u00e3o de IRQ e na coloca\u00e7\u00e3o de aplica\u00e7\u00f5es em conjunto, pode manter os tempos de resposta a um n\u00edvel m\u00ednimo. <strong>baixo<\/strong> - mesmo durante picos de carga. Isto significa que o alojamento de alta carga permanece visivelmente responsivo sem queimar reservas desnecess\u00e1rias de CPU.<\/p>","protected":false},"excerpt":{"rendered":"<p>Saiba como melhorar o desempenho da rede dos seus servidores Linux e tornar as configura\u00e7\u00f5es de alojamento mais eficientes, concentrando-se no equil\u00edbrio de IRQs do servidor.<\/p>","protected":false},"author":1,"featured_media":19362,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-19369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server_vm"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"110","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Server IRQ","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"19362","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/19369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/comments?post=19369"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/19369\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media\/19362"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media?parent=19369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/categories?post=19369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/tags?post=19369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}