Logotipo de IntelIntel® Ethernet serie 700
Guía de axuste do rendemento de Linux
Grupo de redes na nube NEX (NCNG)
Rev. 1.2
Decembro 2024

Historial de revisións

Revisión Data Comentarios
1.2 Decembro 2024 · Engadíronse instrucións adicionais para a xestión da enerxía.
· Engadiuse Intel* Turbo Boost.
· Engadiuse o atraso nos dispositivos de rede.
· Engadíronse configuracións e axustes específicos da plataforma.
· Engadíronse os procesadores escalables Intel* %eon* de 4.ª xeración.
· Engadido AMD EPYC.
· Actualización das capacidades do hardware do sistema de comprobación.
· iPerf2 actualizado.
· iPerf3 actualizado.
· Colas Tx/Rx actualizadas.
· Moderación de interrupcións actualizada.
· Talla de anel actualizada.
· Axuste de plataforma actualizado (i40e non específico).
· Configuración da BIOS actualizada.
· Control do estado C actualizado.
· Escalado de frecuencia da CPU actualizado.
· Configuración da aplicación actualizada.
· Configuración do sistema operativo/kernel actualizada.
· Reenvío de IP actualizado.
· Baixa latencia actualizada.
Agosto 2023 Os cambios neste documento inclúen:
· Engadíronse referencias relacionadas.
· Engadido o botón "Asegurarse de que o paquete DDP se carga correctamente".
· Engadiuse iPerf2.
· Engadiuse iPerf3.
· Engadido netperf.
· Afinidade de IRQ actualizada.
· Engadíronse colas Tx/Rx.
· Talla de anel actualizada.
· Engadíronse marcos xigantes.
· Engadiuse a vinculación do adaptador.
· Engadiuse a ferramenta svr-info de Intel.
1.0 marzo 2016 Versión inicial (Intel Public).

Introdución

Esta guía ten como obxectivo proporcionar orientación para axustar os entornos para un rendemento de rede óptimo mediante tarxetas de rede Intel® Ethernet serie 700 en entornos Linux. Céntrase nas condicións e configuracións do hardware, controlador e sistema operativo que poderían mellorar o rendemento da rede. Cómpre ter en conta que o rendemento da rede pode verse afectado por diversas influencias externas, pero nesta guía só se tratan as máis comúns e drásticas.
1.1 Referencias relacionadas

Lista de verificación inicial

2.1 Actualizar as versións do controlador/firmware
Comprobe as versións do controlador/firmware usando ethtool -i ethx.
Actualiza o seguinte segundo sexa necesario:

2.2 Ler o ficheiro README
Comproba se hai problemas coñecidos e obtén as instrucións de configuración máis recentes do ficheiro README file incluído no paquete fonte de i40e.
2.3 Comprobe que a súa ranura PCI Express (PCIe) sexa x8
Algunhas ranuras PCIe x8 están configuradas como ranuras x4. Estas ranuras non teñen ancho de banda suficiente para unha velocidade de liña completa con dispositivos de porto dual e de porto cuádruplo. Ademais, se colocas un adaptador compatible con PCIe v3.0 nunha ranura PCIe v2.x, non poderás obter o ancho de banda completo. O controlador de dispositivo de software detecta esta situación e escribe a seguinte mensaxe no rexistro do sistema:
O ancho de banda PCI-Express dispoñible para esta tarxeta non é suficiente para un rendemento óptimo. Para un rendemento óptimo, requírese unha ranura PCI-Express x8.
Se se produce este erro, mova o adaptador a unha ranura PCIe v3.0 x8 real para resolver o problema.
2.4 Comprobar as capacidades do hardware do sistema
A 10 Gbps, 25 Gbps e 40 Gbps Ethernet, hai algúns requisitos mínimos de CPU e sistema. En xeral, un procesador de clase servidor moderno e unha configuración de memoria óptima para a túa plataforma deberían ser suficientes, pero as necesidades varían dependendo da túa carga de traballo. Todos os canais de memoria deberían estar poboados e o modo de rendemento da memoria debería estar activado na BIOS. Verifica que a configuración da CPU e da memoria sexa capaz de soportar o nivel de rendemento de rede que necesitas para a túa carga de traballo.
NOTA
O XL710 é un controlador de 40 GbE. O adaptador de 2 x 40 GbE que usa este controlador non está pensado para ser un adaptador de 2 x 40 GbE, senón un adaptador de 1 x 40 GbE cun porto de copia de seguridade activo. Ao tentar usar tráfico de velocidade de liña que implique ambos os portos, o conmutador interno está saturado e o ancho de banda combinado entre os dous portos está limitado a un total de XNUMX Gbps.
2.4.1 Parámetros de arranque do núcleo
Se a tecnoloxía de virtualización Intel® para E/S dirixida (Intel® VT-d) está activada na BIOS, Intel recomenda que IOMMU estea en modo de paso a través para un rendemento óptimo da rede do host. Isto elimina a sobrecarga de DMA no tráfico do host e permite que as máquinas virtuais (VM) sigan tendo as vantaxes de Intel® VT-d. Isto conséguese engadindo a seguinte liña aos parámetros de arranque do kernel: fommu-pt.
2.5 Asegurarse de que o paquete DDP se carga correctamente
Os controladores básicos 140ea e 140eb non teñen compatibilidade directa coa Personalización dinámica de dispositivos (DDP). Para usar DDP con dispositivos da serie 700, é necesario un profesional de DDP.file pódese aplicar coa aplicación testpmd.
Para obter máis información sobre DDP profiles, e como aplicar un DDP profile con testpmd en dispositivos da serie 700, consulte a Guía tecnolóxica de personalización dinámica de dispositivos (DDP) da serie Intel® Ethernet 700.
Para verificar se un profesional de DDPfile cargouse correctamente:
testpmd> ddp obter lista 0 Profile o número é: 1
NOTA
Se o profile Se o número é 0, non se carga ningún paquete DDP. No caso dun erro de carga do paquete DDP, o dispositivo pasa ao modo seguro por defecto e moitas funcións de rendemento non estarán dispoñibles. Se hai erros relacionados coa carga do paquete DDP, isto provocará problemas de rendemento. Para coñecer os pasos de resolución de problemas, consulte a Guía tecnolóxica de personalización dinámica de dispositivos (DDP) da serie 700 de Inte/* Ethernet.

Medicións de rendemento de referencia e metodoloxía de axuste

3.1 Puntos de referencia do rendemento da rede
Antes de comezar un exercicio de axuste, é importante ter unha boa medición de referencia do rendemento da túa rede. Normalmente, ademais de obter unha medición inicial do rendemento da túa aplicación/carga de traballo específica, é unha boa idea usar tamén un punto de referencia de rendemento de rede estándar para verificar que o teu dispositivo de rede está nun bo estado.
Para a optimización dun só sistema, netperf ou iperf e NetPIPE son ferramentas sólidas de código aberto e gratuítas que che permiten sobrecargar unha conexión e diagnosticar problemas de rendemento.
Netperf é potente tanto para probas de rendemento como de latencia. NetPIPE é unha ferramenta específica para a latencia, pero pódese compilar para calquera tipo de ambiente.
NOTA
A proba TCP_RR en netperf devolve a latencia nun valor de transaccións/seg. Este é un número de ida e volta. A latencia unidireccional pódese calcular usando a seguinte ecuación:
Latencia(usec) = (1⁄2) / [Transaccións/seg] * 1,000,000
3.1.1 iPerf2
Intel recomenda iperf2 en lugar de iperf3 para a maioría das situacións de avaliación comparativa debido á facilidade de uso e á compatibilidade con varios fíos nunha única instancia de aplicación. Intel recomenda executar coa opción -P con 2-4 fíos para conexións de 25 G e arredor de 4-6 fíos para conexións de 40 G.

  • Para executar tráfico unidireccional do cliente ao servidor: Comando do servidor ex.ample: iperf2 -s
    Ex de comandos de clienteample: iperf2 -c -P
  • Para executar tráfico bidireccional do cliente ao servidor (e viceversa): Comando do servidor, ex.ampficheiro: iperf2 –s –p
    Ex de comandos de clienteampLe:
    iperf2 -c -p -P -–dúplex completo OU
    iperf2 -c -p -P –d

NOTA
Tanto as opcións –full-duplex como -d en iperf2 permiten ao usuario realizar probas bidireccionais. Non obstante, a opción –full-duplex céntrase especificamente nas probas full dúplex.
NOTA
Ao probar iperf2 en varios portos de servidor, pódese engadir o indicador -d ao comando server para executar todas as sesións do servidor en segundo plano desde a mesma xanela do terminal. O indicador -d tamén se pode usar cando o comando server está integrado dentro dun bucle for nun script.
NOTA
Ao executar a proba de rendemento da rede cun único fluxo/fío (por exemplo,amp(por exemplo: P1), os procesadores AMD poden non proporcionar o rendemento esperado, especialmente as NIC de maior ancho de banda (se a velocidade é >= 25 G de ancho de banda). Como resultado, é necesario fixar a aplicación a núcleos específicos para lograr un maior rendemento. Consulte Configuración da aplicación na páxina 22.
3.1.2 iPerf3
Se se usa iperf3, requírense varias instancias da aplicación para aproveitar as vantaxes.tage dos subprocesos múltiples, RSS e colas de hardware. Intel recomenda executar con 2-4 sesións de aplicación para conexións de 25G e arredor de 4-6 sesións para conexións de 40G. Cada sesión debe especificar un valor de porto TCP único mediante a opción -p.

  • Para executar tráfico unidireccional do cliente ao servidor:
    Ex de comandos do servidorampLe:
    iperf3 -s -p
    Ex de comandos de clienteampLe:
    iperf3 -c -p
  • Para executar tráfico bidireccional do cliente ao servidor (e viceversa):
    Ex de comandos do servidorampLe:
    iperf3 –s –p
    Ex de comandos de clienteample: iperf3 -c -p -P –-bidir
  • Para iniciar varias instancias (fíos) de iperf3, recoméndase usar un bucle for para mapear os fíos a portos TCP e executar iperf3 en segundo plano usando & para crear varios procesos en paralelo.
    Ex de comandos do servidorample, inicia 4 fíos: port=""; for i en {0..3}; do port=520$i; bash -c "iperf3 -s -p $port &"; done; Ex de comando do clienteample, inicia 4 fíos – Transmite o porto de proba=""; for i en {0..3}; do porto=520$i; bash -c "iperf3 -c $serverIP -p $porto &"; feito; Comando do cliente example, inicia 4 fíos – Recibe test port=""; for i in {0..3}; do port=520$i; bash -c "iperf3 -R -c $serverIP -p $port &"; done; Para conexións de 40G, aumenta o bucle for para crear ata 6 instancias/fíos.

NOTA
Ao executar a proba de rendemento da rede cun único fluxo/fío (por exemplo,ample: P1), os procesadores AMD poden non proporcionar o rendemento esperado, especialmente un maior ancho de banda
NIC (se a velocidade é >= 25 G de ancho de banda). Como resultado, é necesario fixar a aplicación a núcleos específicos para lograr un maior rendemento. Consulte Configuración da aplicación na páxina 22 e AMD EPYC na páxina 26.
3.1.3 netperf
A ferramenta netperf é unha boa opción tanto para probas de rendemento como de latencia.

  • A proba TCP_STREAM en netperf mide as capacidades de rendemento do dispositivo. Ex. de comando do servidorample: comando cliente netserver example: netperf -t TCP_STREAM -l 30 -H
  • A proba TCP_RR en netperf devolve a latencia nun valor de transaccións/segundo. Este é un número de ida e volta. Recoméndase usar a opción -T x,x, onde x é a CPU local do dispositivo. A latencia unidireccional pódese calcular usando: Latency(usec)=(1⁄2)/ [Transaccións/seg]*1,000,\ Ex de comando do servidorample: servidor de rede
    Ex de comandos de clienteampficheiro: netperf -t TCP_RR -l 30 -H -T x,x
  • Para iniciar varias instancias (fíos) de netperf, recoméndase usar un bucle for para mapear os fíos a portos TCP e executar netperf en segundo plano usando & para crear varios procesos en paralelo.
    Ex de comandos do servidorample, inicia 8 fíos:
    porto=""; para i en {0..7}; do porto=520$i; bash -c "servidor_de_red -L $IP_do_servidor -p $porto &"; feito;
    Ex de comandos de clienteample, inicia 8 fíos: porto=""; for i en {0..7}; do porto=520$i; bash -c "netperf -H $serverIP -p $porto -t TCP_STREAM -l 30 &"; feito;

3.2 Metodoloxía de axuste
Céntrate nun cambio de axuste á vez para saber o impacto que cada cambio ten na túa proba. Canto máis metódico sexas no proceso de axuste, máis doado será identificar e abordar as causas dos atrasos no rendemento.

Axuste da configuración do controlador do i40e

4.1 Afinidade de IRQ
Configurar a afinidade IRQ para que as interrupcións para diferentes colas de rede estean afinizadas a diferentes núcleos de CPU pode ter un grande impacto no rendemento, especialmente nas probas de rendemento multifío.
Para configurar a afinidade IRQ, detén irqbalance e logo usa o script set_irq_affinity do paquete fonte i40e ou fixa as colas manualmente. Desactiva o balanceador de IRQ no espazo de usuario para activar a fixación de colas:

  • systemctl desactivar irqbalance
  • systemctl detén irqbalance
    Usando o script set_irq_affinity do paquete fonte i40e (recomendado):
  • Para usar todos os núcleos:
    [ruta-ao-paquete-i40e]/scripts/set_irq_affinity -X all ethX
  • Para usar só núcleos no socket NUMA local: [ruta-ao-paquete-i40e]/scripts/set_irq_affinity -X local ethX
  • Tamén podes seleccionar un rango de núcleos. Evita usar cpu0 porque executa tarefas de temporizador. [ruta-ao-paquete-i40e]/scripts/set_irq_affinity 1-2 ethX

NOTA
O script de afinidade activa a Dirección de paquetes de transmisión (XPS) como parte do proceso de fixación cando se especifica a opción -x. Cando XPS está activado, Intel recomenda desactivar irqbalance, xa que o balanceador do núcleo con XPS pode causar un rendemento imprevisible. O script de afinidade desactiva XPS cando se especifica a opción -X. Desactivar XPS e activar colas simétricas é beneficioso para as cargas de traballo onde o mellor rendemento se consegue cando o tráfico Tx e Rx se atende nos mesmos pares de colas.
A configuración de colas simétricas en Linux implica axustar os parámetros do controlador da interface de rede para activar colas de recepción simétricas (Rx) e colas de transmisión simétricas (Tx) para os adaptadores de rede compatibles.
NOTA

  • As colas simétricas son unha funcionalidade de rede avanzada e non todos os adaptadores ou controladores de rede da serie 700 as admiten.
  • Asegúrate de ter o controlador e o soporte de hardware necesarios antes de tentar configurar colas simétricas.

Para configurar colas simétricas, siga estes pasos xerais:

  1. Editar a configuración da interface de rede FileUsa un editor de texto (por exemplo,ample, vi, nano ou gedit) para editar a configuración da interface de rede file. O file normalmente atópase no directorio /etc/sysconfig/network-scripts/ e ten un nome como ifcfg-ethX, onde ethX é o nome da interface de rede.
  2. Engadir parámetros de cola simétrica. Engadir as seguintes liñas á configuración da interface de rede file: ETHTOOL_OPTS=”colas-rx 8 colas-tx 8″
  3. Reiniciar o servizo de rede.
    Despois de facer os cambios, reinicie o servizo de rede para aplicar a nova configuración. sudo systemctl restart network

Manualmente:

  • Atopa os procesadores conectados a cada nodo usando: numactl –hardware lscpu
  • Atopa as máscaras de bits para cada un dos procesadores:
  • Asumindo os núcleos 0-11 para o nodo 0: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Atopa as IRQ asignadas ao porto que se está a asignar: grep ethX /proc/interrupts e anota os valores das IRQ Por exemploampé dicir, 181-192 para os 12 vectores cargados.
  • Reproduce o valor de afinidade SMP na entrada IRQ correspondente. Ten en conta que isto debe facerse para cada entrada IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Mostra a afinidade IRQ:
  • Para mostrar a afinidade IRQ para todos os núcleos: /scripts/set_irq_affinity -s ethX
  • Para mostrar só os núcleos no socket NUMA local: /scripts/set_irq_affinity -s ethX local
  • Tamén podes seleccionar unha gama de núcleos: /scripts/set_irq_affinity -s 40-0-8,16 ethX

NOTA
O script set_irq_affinity admite o indicador -s na versión 40 e posterior do controlador i2.16.11e.
4.2 Colas de transmisión/recepción
O número predeterminado de colas activadas para cada porto Ethernet polo controlador na inicialización é igual ao número total de CPU dispoñibles na plataforma. Isto funciona ben para moitas plataformas e configuracións de carga de traballo. Non obstante, en plataformas con alto número de núcleos e/ou alta densidade de portos Ethernet, esta configuración pode causar conflitos de recursos. Polo tanto, pode ser necesario nalgúns casos modificar o valor predeterminado para cada porto do sistema.
O número predeterminado de colas Tx/Rx pode variar dependendo do modelo e da versión do controlador específicos. O número de colas pódese axustar usando o comando ethtool -L que se indica a continuación.
NOTA
Nestes casos, Intel recomenda reducir o número de colas predeterminado para cada porto a un máximo do número de CPU dispoñibles no nodo NUMA local do porto do adaptador. Nalgúns casos, ao tentar equilibrar os recursos en implementacións con alto número de portos, pode ser necesario reducir aínda máis este número.
Para modificar a configuración da cola:
Os seguintes examp`le` configura o porto a 32 colas Tx/Rx: ethtool -L ethX combinado 32
Exampsaída do le:
ferramenta_eth -l ethX
Parámetros do canal para ethX: Máximos predefinidos:
RX: 96
TX: 96
Outros: 1
Combinado: 96
Configuración actual do hardware:
RX: 0
TX: 0
Outros: 1
Combinado: 32
4.3 Moderación de interrupcións
A moderación adaptativa de interrupcións está activada por defecto e está deseñada para proporcionar un enfoque equilibrado entre un baixo uso da CPU e un alto rendemento. Non obstante, podes tentar axustar a configuración de interrupcións manualmente para que se axuste ao teu caso de uso.
O rango de 0 a 235 microsegundos proporciona un rango efectivo de 4,310 a 250,000 interrupcións por segundo. O valor de rx-μsecs-high pódese configurar independentemente de rx-μsecs e tx-μsecs no mesmo comando ethtool e tamén é independente do algoritmo de moderación de interrupcións adaptativa. O hardware subxacente admite granularidade en intervalos de 2 microsegundos, polo que valores adxacentes poden dar lugar á mesma taxa de interrupcións.

  • Para desactivar a moderación adaptativa de interrupcións: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Para activar a moderación adaptativa de interrupcións: ethtool -C ethX adaptive-rx on adaptive-tx on

Un bo punto de partida para o axuste xeral é de 84 μs, ou ~12000 interrupcións/s. Se ves que os contadores rx_dropped están a executarse durante o tráfico (usando ethtool -S ethX), probablemente teñas unha CPU demasiado lenta, non teñas suficientes búferes do tamaño do anel do adaptador (ethtool -G) para conter paquetes durante 84 μs ou unha taxa de interrupcións demasiado baixa.

  • Para definir a moderación de interrupcións a unha taxa de interrupcións fixa de 84 μs entre interrupcións (12000 interrupcións/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 O seguinte valor a probar, se non tes o uso da CPU ao máximo, é de 62 μs. Isto usa máis CPU, pero serve os búferes máis rápido e require menos descritores (tamaño do anel, ethtool -G).
  • Para definir a moderación de interrupcións a unha taxa de interrupcións fixa de 62 usos entre interrupcións (16000 interrupcións/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Se os contadores rx_dropped aumentan durante o tráfico (usando ethtool -S ethX), probablemente teñas unha CPU demasiado lenta, non teñas suficientes búferes do tamaño do anel do adaptador (ethtool -G) ou unha taxa de interrupcións demasiado baixa. Se non tes a utilización da CPU ao máximo, podes aumentar a taxa de interrupcións reducindo o valor de ITR. Isto usa máis CPU, pero serve os búferes máis rápido e require menos descritores (tamaño do anel, ethtool -G).
    Se a CPU está ao 100 %, non se recomenda aumentar a taxa de interrupcións. En determinadas circunstancias, como unha carga de traballo limitada pola CPU, pode que queiras aumentar o valor de μs para habilitar máis tempo de CPU para outras aplicacións.
    Se precisas un rendemento de baixa latencia e/ou tes moita CPU para dedicar ao procesamento de rede, podes desactivar a moderación de interrupcións por completo, o que permite que as interrupcións se activen o máis rápido posible.
  • Para desactivar a moderación de interrupcións ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

NOTA
Ao executarse coa moderación de interrupcións desactivada, a taxa de interrupcións en cada cola pode ser moi alta. Considere incluír o parámetro rx-usec-high para establecer un límite superior na taxa de interrupcións. O seguinte comando desactiva a moderación adaptativa de interrupcións e permite un máximo de 5 microsegundos antes de indicar que se completou unha recepción ou transmisión. En lugar de provocar ata 200,000 interrupcións por segundo, limita o total de interrupcións por segundo a 50,000 mediante o parámetro rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Tente axustar o temporizador de coalescencia de transmisión/recepción/alta prioridade a unha altura superior (80/100/150/200) ou inferior (25/20/10/5) para atopar o valor óptimo para a carga de traballo.
4.4 Tamaño do anel
Se ves contadores rx_dropped en ethtool -S ethX (rx_dropped, rx_dropped.nic) ou sospeitas de presión da caché con varias colas activas, podes tentar axustar o tamaño do anel desde o valor predeterminado. O valor predeterminado é 512 e o máximo é 4096.

  • Para comprobar os valores actuais: ethtool -g ethX
    Se se sospeita que a falta de almacenamento en búfer está a causar caídas na taxa de interrupcións actual, pode probar primeiro o máximo, despois o mínimo e, a continuación, continuar nunha busca binaria ata que vexa un rendemento óptimo.
    Se se sospeita que hai presión na caché (moitas colas activas), reducir os búferes desde o valor predeterminado pode axudar a que Intel® Data Direct I/O (Intel® DDIO) funcione de forma máis eficiente. Intel recomenda probar 128 ou 256 por cola, tendo en conta que pode ser necesario aumentar a taxa de interrupcións mediante ethtool -C para evitar un aumento de rx_dropped.
  • Para axustar o tamaño do anel a un valor fixo: ethtool -G eth12 rx 256 tx 256

NOTA
Para corrixir as perdas de paquetes Rx atopadas con ethtool -S ethX|grep drop, considere aumentar o tamaño do anel a 4096. Experimente para atopar a mellor configuración para a carga de traballo, pero teña coidado co uso excesivo de memoria con valores máis altos.
4.5 Control de fluxo
O control de fluxo de capa 2 pode afectar considerablemente ao rendemento de TCP e recoméndase desactivalo para a maioría das cargas de traballo. Unha posible excepción é o tráfico en ráfagas, onde as ráfagas non son de longa duración.
O control de fluxo está desactivado por defecto.

  • Para activar o control de fluxo: ethtool -A ethX rx on tx on
  • Para desactivar o control de fluxo: ethtool -A ethX rx off tx off

NOTA
Debe ter un socio de ligazón compatible con control de fluxo para activar o control de fluxo correctamente.
4.6 Cadros Jumbo
Cando o entorno de tráfico previsto consiste en transferir grandes bloques de datos, pode ser beneficioso activar a función de tramas xigantes. A compatibilidade con tramas xigantes habilítase cambiando a Unidade de Transmisión Máxima (MTU) a un valor maior que o valor predeterminado de 1500. Isto permite que o dispositivo transfira datos en paquetes máis grandes dentro do entorno de rede. Esta configuración pode mellorar o rendemento e reducir a utilización da CPU para cargas de traballo de E/S grandes. Non obstante, pode afectar a cargas de traballo de paquetes pequenos ou sensibles á latencia.
NOTA
As tramas xigantes ou unha configuración de MTU maior deben configurarse correctamente no seu entorno de rede.
Usa o comando ifconfig para aumentar o tamaño da MTU. Por exemploampé dicir, introduza o seguinte, onde é o número de interface: ifconfig mtu 9000 arriba
De xeito alternativo, podes usar o comando ip do seguinte xeito: ip link set mtu 9000 dev configuración de ligazóns IP en desenvolvemento

Axuste da plataforma (i40e non específico)

5.1 Configuración da BIOS

  • Activar Intel® VT-d para cargas de traballo de virtualización.
  • Os subprocesos hiperactivos (procesadores lóxicos) poden afectar o rendemento. Experimenta con eles activados ou desactivados para a túa carga de traballo.
  • Intel® Turbo Boost permite que os núcleos da CPU funcionen a unha frecuencia máis alta que a frecuencia base da CPU. Activar Intel® Turbo Boost pode mellorar o rendemento de moitas cargas de traballo, pero consome máis enerxía para manter os núcleos a unha frecuencia máis alta. Experimenta con Turbo Boost desactivado/activado para a túa carga de traballo.

NOTA
As frecuencias turbo non están garantidas se a plataforma experimenta unha utilización xeral da CPU elevada. As frecuencias turbo do núcleo máis altas redúcense a medida que aumenta a utilización xeral da CPU.
5.2 Xestión de enerxía
A xestión de enerxía pode afectar ao rendemento, especialmente en cargas de traballo de baixa latencia. Se o rendemento é unha prioridade maior que a redución do consumo de enerxía, Intel recomenda que experimentes coa limitación dos efectos da xestión de enerxía. Hai moitas maneiras diferentes de limitar a xestión de enerxía, a través das ferramentas do sistema operativo, a configuración da BIOS e os parámetros de arranque do kernel. Escolle o mellor método e nivel que se adapte ao teu entorno.
5.2.1 Control do estado C
Limitar a entrada do estado C a CO ou C1 mellora o rendemento e aumenta a utilización de enerxía.
Desactivar a entrada de estado do paquete C6 da CPU pode mellorar o rendemento da rede. Non obstante, isto aumenta o consumo de enerxía.
As seguintes opcións están dispoñibles:

  • Controlar dinamicamente a entrada do estado C:
    Aberto
    /dev/cpu_dma_latency e escribir nel a latencia máxima permitida.

NOTA
Existe un pequeno programa chamado cpudmalatency.c que se pode descargar da comunidade de código aberto, compilar e executar desde a liña de comandos para facer exactamente isto.
Os seguintes example permite cinco μs de tempo de vixilia e, polo tanto, permite a entrada C1: cpudmalatency 5 e

  • Limitar o estado C máximo na configuración de arranque do kernel:
    Para CPU Intel: intel_idle.max_cstates=1
    Para CPU que non sexan de Intel: processor.max_cstates=1
  • Usa o comando cpupower para comprobar e desactivar o estado C6 da CPU: Comproba: cpupower monitor ou cpupower idle-info
    Desactivar C6: cpupower idle-set -d3 ou
    Desactivar os estados C: cpupower idle-set -D0

Notas:

  1. Desactiva os estados C na CPU se o servidor ten procesadores escalables Intel® Xeon® de 4.ª xeración. Cando Hyper Threading está activado ou desactivado, a desactivación dos estados inactivos (-D0) impide que os núcleos entren en estados de baixo consumo durante os períodos de inactividade e reduce a latencia da CPU para a transición entre os estados inactivo e activo.
  2. A xestión de enerxía do procesador escalable Intel® Xeon® de 4.ª xeración é extremadamente agresiva. Para evitar que os núcleos entren en estados de baixo consumo, intente reducir o número de núcleos en uso para mantelos activos durante máis tempo (ethtool -L combinado ). Ademais, vincula as interrupcións a núcleos específicos usando set irq affinity (a miúdo con -x local ou list of CPU cores) e asegúrate de que a carga de traballo se execute neses mesmos núcleos con taskset ou numactl. Isto mellora o rendemento mantendo os núcleos activos e optimizando a xestión de interrupcións.

Activar C6:
cpupower inactivo-configurar -d3
Activar estados C:
conxunto de ralentí da CPU -E

  • Outro método é utilizar a ferramenta sintonizada (incluída en moitas distribucións de Linux) para configurar un profesional de rendemento.file. Estes profilemodificar varias configuracións do sistema operativo que poden afectar o rendemento en moitas aplicacións. Descubriuse que o rendemento da redefile proporciona melloras á maioría das cargas de traballo.
    Comprobar:
    administrador sintonizado activo
    Conxunto:
    tuned-adm profile rendemento da rede
    NOTA
    O servizo sintonizado debe estar executándose para os comandos anteriores. Para comprobar/reiniciar, sintonizado: systemctl status sintonizado systemctl restart sintonizado
    Tamén podes desactivar calquera entrada de estado C engadindo o seguinte á liña de arranque do kernel:
    inactivo=enquisa
  • Limita o estado C mediante a configuración de xestión de enerxía da BIOS do sistema, que pode ter un pro de rendementofile dispoñible.
    Ferramentas como turbostat ou x86_energy_perf_policy pódense usar para comprobar ou configurar a configuración da xestión de enerxía.

5.2.2 Xestión de enerxía PCIe
A xestión de enerxía en estado activo (ASPM) permite un estado de menor consumo de enerxía para as ligazóns PCIe cando non están en uso activo. Isto pode causar unha maior latencia nos dispositivos de rede PCIe, polo que Intel recomenda desactivar ASPM para cargas de traballo sensibles á latencia. Desactiva ASPM engadindo o seguinte á liña de inicio do kernel: pcie_aspm=off
5.2.3 Escalado de frecuencia da CPU
A escala de frecuencia da CPU (ou escala de velocidade da CPU) é unha técnica de xestión de enerxía de Linux na que a velocidade do reloxo do sistema se axusta sobre a marcha para aforrar enerxía e calor. Do mesmo xeito que os estados C, isto pode causar latencia non desexada nas conexións de rede.
A ferramenta cpupower tamén se pode usar para comprobar e modificar os valores predeterminados e os límites do rendemento da CPU:

  • Comprobación: monitor de potencia da CPU ou
  • Configurar as CPU ao modo de rendemento: cpupower frequency-set -g performance

NOTA
As modificacións nos límites de frecuencia da CPU poden afectar a moitas cargas de traballo e poden desactivar outras funcións, como o modo turbo da CPU.
Para desactivar a escala de frecuencia da CPU, desactive o servizo de alimentación da CPU cos seguintes comandos:
systemctl detén cpupower.service
systemctl desactivar cpupower.service
5.2.4 Guía adicional de xestión de enerxía
Ofrécense detalles adicionais neste informe de alto nivelview de moitas das funcións de xestión de enerxía dos procesadores escalables Intel® Xeon® de 3.ª xeración, así como orientación sobre como se poden integrar estas funcións a nivel de plataforma: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost fai que o procesador sexa máis rápido cando é necesario, pero pode consumir enerxía adicional. Desactivar Turbo Boost mantén o procesador a unha velocidade constante, o que che proporciona un nivel de rendemento consistente para cargas de traballo específicas.
5.4 Cortafuegos
Os cortafuegos poden afectar ao rendemento, especialmente ao rendemento de latencia.
Desactiva iptables/firewalld se non é necesario.
5.5 Configuración da aplicación
A miúdo, un só fío (que corresponde a unha única cola de rede) non é suficiente para acadar o máximo ancho de banda. Algunhas arquitecturas de plataforma, como AMD, tenden a descartar máis paquetes Rx cun só fío en comparación coas plataformas con procesadores baseados en Intel.
Considere o uso de ferramentas como taskset ou numactl para fixar aplicacións ao nodo NUMA ou aos núcleos da CPU locais do dispositivo de rede. Para algunhas cargas de traballo, como as de E/S de almacenamento, mover a aplicación a un nodo non local ofrece vantaxes.
Experimenta aumentando o número de fíos que usa a túa aplicación se é posible.
Versión do núcleo 5.6
A maioría dos núcleos modernos integrados están razoablemente ben optimizados para o rendemento, pero dependendo do caso de uso, actualizar o núcleo pode proporcionar un mellor rendemento. Descargar o código fonte tamén che permite activar/desactivar certas funcións antes de compilar o núcleo.
5.7 Configuración do sistema operativo/kernel
Consulta as guías de axuste do sistema operativo, como a Guía de axuste do rendemento da rede de Red Hat Enterprise Linux, para obter máis información sobre o axuste xeral do sistema operativo.
Algúns parámetros comúns para axustar indícanse na seguinte táboa. Teña en conta que estes son só puntos de partida suxeridos e que cambialos dos valores predeterminados pode aumentar os recursos utilizados no sistema. Aínda que aumentar os valores pode axudar a mellorar o rendemento, é necesario experimentar con diferentes valores para determinar o que funciona mellor para un sistema, unha carga de traballo e un tipo de tráfico determinados.
Os parámetros do núcleo pódense configurar coa utilidade sysctl en Linux, como se indica a continuación.
Para view os valores predeterminados para rmem e wmem no sistema:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Definir os valores ao máximo (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Os tamaños do búfer de sockets, tamén coñecidos como búfer de recepción (rmem) e búfer de transmisión (wmem), son parámetros do sistema que especifican a cantidade de memoria reservada para o tráfico de rede entrante e saínte.
Ao executar sysctl sen o argumento -w, aparece o parámetro coa súa configuración actual.

Configuración da pila Descrición
net.core.rmem_default Tamaño predeterminado da xanela de recepción
net.core.wmem_default Tamaño predeterminado da xanela de transmisión
net.core.rmem_max Tamaño máximo da xanela de recepción
net.core.wmem_max Tamaño máximo da xanela de transmisión
net.core.optmem_max Buffers de memoria de opcións máximos
net.core.netdev_max_backlog Acumulación de paquetes sen procesar antes de que o núcleo comece a descartarse
net.ipv4.tcp_rmem Reserva de memoria para búferes de lectura TCP
net.ipv4.tcp_wmem Reserva de memoria para búferes de envío TCP

Os parámetros do núcleo, a pila de rede, o controlador de memoria, a velocidade da CPU e a xestión de enerxía poden ter un grande impacto no rendemento da rede. Unha recomendación común é aplicar ao programa de rendemento da redefile usando o comando tuned. Isto modifica algunhas configuracións do sistema operativo para dar preferencia ás aplicacións de rede.
Comprobar:
administrador sintonizado activo
Conxunto:
tuned-adm profile rendemento da rede
5.8 Atrasos nos dispositivos de rede
Esta funcionalidade axuda a mellorar o rendemento da rede xestionando o tráfico entrante de forma eficaz, reducindo a perda de paquetes, diminuíndo a latencia e aumentando o rendemento. Isto leva a unha mellor experiencia de usuario e a unha resposta do sistema máis rápida.
Por defecto, está activado na maioría dos sistemas operativos Linux. Para comprobar o valor predeterminado:
sysctl net.core.netdev_max_backlog
O valor máximo para netdev_max_backlog pode variar dependendo de factores como a versión do kernel, o hardware, a memoria e a carga de traballo. En moitos casos, 8192 considérase un bo valor. sysctl -w net.core.netdev_max_backlog=8192
5.9 Configuracións e axustes específicos da plataforma
5.9.1 Procesadores escalables Intel® Xeon® de 4.ª xeración

A xestión de enerxía do procesador Intel® Xeon® escalable de 4.ª xeración é extremadamente agresiva en comparación cos procesadores Intel® Xeon® escalables de 3.ª xeración. Para evitar que os núcleos entren en estados de baixo consumo, intente reducir o número de núcleos en uso para mantelos activos durante máis tempo.
Configuración da BIOS recomendada para o máximo rendemento

  1. Activación/desactivación do hiperproceso (segundo os requisitos da carga de traballo e os obxectivos de rendemento) na CPU.
  2. Configurar o sistema profesionalfile a Rendemento para obter o máximo rendemento.
    NOTA
    Isto resulta nun maior consumo de enerxía
  3. Configura a xestión de enerxía da CPU en Rendemento máximo para priorizar o rendemento máximo da CPU sobre a eficiencia enerxética.
  4. Activar Turbo Boost. Desactivar Turbo Boost na configuración do BIOS do sistema normalmente impide que a CPU aumente dinamicamente a súa velocidade de reloxo máis alá da súa frecuencia base.
  5. NOTA
    Desactivar Turbo Boost pode ser axeitado para certos casos de uso nos que se prioriza o rendemento consistente, a eficiencia enerxética ou a xestión térmica sobre o rendemento máximo.
  6. Desactive a funcionalidade de virtualización de E/S de raíz única (SR-IOV) se o sistema non utiliza tecnoloxías de virtualización.
  7. Desactiva os estados C para indicarlle á CPU que permaneza activa e evitar entrar en estados de inactividade máis profundos.
  8. Desactive C1E para garantir que a CPU permaneza activa e non entre no estado inactivo de C1E.
  9. Axuste a frecuencia non núcleo ao máximo para indicarlle ao sistema que funcione á frecuencia máis alta dispoñible.
  10. Nas plataformas Dell, configure a emulación de núcleos de táboa de descrición de APIC múltiple (MADT) en lineal (ou por rotación rotativa dependendo da BIOS) para proporcionar unha asignación clara e predicible dos núcleos da CPU.

Axustes de nivel de sistema operativo recomendados para un rendemento optimizado

  1. Definir o regulador de escala de frecuencia da CPU en rendemento. cpupower frequency-set -g rendemento cpupower frequency-info
  2. Desactivar os estados C. cpupower idle-set -D0
  3. Define os búferes principais Rx (rmem) e Tx (wmem) ao valor máximo. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Definir o rexistro de tarefas pendentes do dispositivo de rede. sysctl -w net.core.netdev_max_backlog=8192
  5. Configurar profesional sintonizadofile (carga de traballo dependente do rendemento/latencia).
    tuned-adm profile rendemento da rede

Axustes de nivel de adaptador recomendados para un rendemento optimizado

  1. Limitar o número de colas para o tráfico das aplicacións. Usar o número mínimo de colas necesario para manter activos os núcleos da CPU asociados para evitar que entren en estados de inactividade máis profundos (axustar para a carga de traballo): ethtool -L combinado 32
  2. Definir as taxas de moderación de interrupcións. ethtool -C recepción-adaptativa desactivada transmisión-adaptativa desactivada secuencias-rx-altas 50 secuencias-rx 50 secuencias-tx 50
    Tenta axustar o temporizador de coalescencia de transmisión/recepción/alta prioridade a unha altura maior (80/100/150/200) ou menor (25/20/10/5) para atopar o valor óptimo para a carga de traballo.
  3. Define os tamaños dos aneis Rx/Tx. ethtool -G RX 4096 Transmisión 4096
    NOTA
    Se ves que se perden paquetes Rx con ethtool -S| grep drop, tenta reducir o tamaño do anel a <4096. Tenta atopar o valor óptimo para a carga de traballo onde non se perdan paquetes.
  4. Definir a afinidade IRQ. Usar núcleos locais na NIC ou un mapeo de núcleos específico (onde o número de núcleos é igual ao número de colas definido en 1 na páxina 26). systemctl stop irqbalance set_irq_affinity -X local OU set_irq_affinity -X

5.9.2 AMD EPYC
Os procesadores AMD EPYC son CPU potentes deseñadas para servidores e centros de datos, baseadas na arquitectura Zen de AMD. A configuración que se mostra a continuación corresponde á serie EPYC de cuarta xeración de AMD.
Configuración da BIOS recomendada para o máximo rendemento

  1. Activa o modo personalizado para permitir que os usuarios axusten o rendemento da CPU, o consumo de enerxía e outras configuracións. Isto axuda a axustar o sistema para obter o mellor equilibrio entre rendemento e eficiencia enerxética.
  2. Activa a mellora do rendemento do núcleo para permitir que a CPU aumente automaticamente a súa velocidade para xestionar tarefas máis intensivas, mellorando o rendemento xeral.
  3. Desactiva o control global do estado C para evitar que a CPU entre en estados de aforro de enerxía máis profundos, coñecidos como estados C, que poden manter a capacidade de resposta.
    NOTA
    Desactivar os estados C pode causar un consumo de enerxía adicional e aumentar as temperaturas térmicas. Supervisa ambos para a carga de traballo.
  4. Activar/desactivar a multiprocesamento simultánea (SMT) na CPU, segundo os requisitos de carga de traballo e os obxectivos de rendemento. SMT é equivalente a Hyper Threading nas CPU Intel.
    NOTA
    Para obter un rendemento optimizado, consulte Axuste da configuración do controlador do i40e na páxina 13 e Axuste da plataforma (i40e non específico) na páxina 19 para obter o axuste recomendado a nivel de sistema operativo e adaptador.

Unión do adaptador

A vinculación de Linux é unha potente funcionalidade que pode mellorar significativamente o rendemento da rede, a redundancia e a tolerancia a fallos en entornos de servidor. Non obstante, é importante ter en conta que require hardware de rede compatible e unha configuración axeitada tanto no servidor como no conmutador para funcionar correctamente.
O controlador de enlace en Linux permíteche agregar varias interfaces de rede físicas nunha interface vinculada. Esta interface vinculada aparece como unha única interface de rede virtual para o sistema operativo e as aplicacións.
NOTA
O enlace é unha interface lóxica, polo que non é posible configurar a afinidade da CPU directamente na interface do enlace (por exemploample, bond0). É dicir, non ten control directo sobre o manexo de interrupcións ou a afinidade da CPU. A afinidade da CPU debe configurarse para as interfaces subxacentes que forman parte do bond.
A vinculación proporciona varios modos de operación, cada un coas súas propias características.

Modo  Tipo
0 Round Robin
1 Copia de seguranza activa
2 XOR
3 Emisión
4 LACP
5 Balance de carga de transmisión
6 Balanceo de carga adaptativo

Hai diferentes métodos para crear unha conexión en Linux. Un dos métodos máis comúns é usar a configuración de rede files (por example, /etc/network/ interfaces ou /etc/sysconfig/network-scripts/ifcfg-bondX).
Configuración mediante a configuración de rede Files
Os seguintes pasos crean conexións a través da configuración da rede files.

  1. Selecciona dous ou máis portos NIC para a vinculación (por exemplo,ample, ethX e ethY)
  2. Abrir configuración da NIC Files en /etc/sysconfig/network-scripts/ para a interface NIC requirida (por exemplo,ample, vi ifcfg-ethX e vi ifcfg-ethY) e engade o seguinte texto:
    MESTRE=vínculoN [Nota: N é un número enteiro para mencionar o número de enlace.] ESCRAVO=si
  3. Crear un script de rede de enlaces file usando vi /etc/sysconfig/networkscripts/ifcfg-bondN e introduza o seguinte texto:
    DISPOSITIVO=vínculoN [Nota: N é un número enteiro para mencionar o número de enlace] ONBOOT=si USERCTL=non BOOTPROTO=dhcp (ou) ningún
    IPADDR=200.20.2.4 [obrigatorio se BOOTPROTO=ningún] MÁSCARA DE RED=255.255.255.0 [obrigatorio se BOOTPROTO=ningún] REDE=200.20.2.0 [obrigatorio se BOOTPROTO=ningún] DIFUSIÓN=200.20.2.255 [obrigatorio se BOOTPROTO=ningún] OPCIÓNS_DE_LIGACION=”modo=1 miimon=100″
    NOTA
    O modo pode ser calquera número enteiro de 0 a 6 segundo o requisito.
  4. Reinicie os servizos de rede usando service network restart ou systemctl restart NetworkManager.service

Resolución de problemas de rendemento

7.1 Utilización da CPU
Comproba a utilización da CPU por núcleo mentres se executa a carga de traballo.
Ten en conta que a utilización por núcleo é máis relevante para o rendemento que a utilización xeral da CPU, xa que proporciona unha idea da utilización da CPU por cola de rede. Se só tes uns poucos fíos executando tráfico de rede, é posible que só teñas uns poucos núcleos en uso. Non obstante, se eses núcleos están ao 100 %, é probable que o rendemento da túa rede estea limitado pola utilización da CPU e sexa hora de realizar o seguinte:

  1. Axusta a moderación de IRQ/tamaño do timbre como se detalla en Moderación de interrupcións.
  2. Aumenta o número de fíos da aplicación para distribuír a carga da CPU entre máis núcleos. Se todos os núcleos se executan ao 100 %, é posible que a túa aplicación estea limitada á CPU en lugar de á rede.

Ferramentas comúns dispoñibles:

  • arriba
    — Prema 1 para expandir a lista de CPU e comprobar cales se están a usar.
    — Observar o nivel de utilización.
    — Observe que procesos aparecen na lista como máis activos (na parte superior da lista).
  • mpstat
    Os seguintes exampA liña de comandos foi probada en Red Hat Enterprise Linux 7.x.
    Mostra a utilización da CPU por núcleo (atopando a porcentaxe total de inactividade e restando de 100) e destaca os valores superiores ao 80 % en vermello. mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | column
  • perf top Busca onde se están a pasar os ciclos.

7.2 Contadores i40e
O controlador i40e proporciona unha longa lista de contadores para a depuración e monitorización da interface mediante o comando ethtool -S ethX. Pode ser útil ver a saída mentres se executa unha carga de traballo e/ou comparar os valores dos contadores antes e despois da execución dunha carga de traballo.

  • Para obter un volcado completo dos contadores i40e: ethtool -S ethX
  • Para ver só os contadores distintos de cero: watch -d (ethtool -S ethX) | egrep -v :\ 0 | columna
    Algunhas cousas que debes buscar:
  • rx_dropped significa que a CPU non está a atender os búferes con suficiente rapidez.
  • port.rx_dropped significa que algo non é o suficientemente rápido na ranura/memoria/sistema.

7.3 Contadores de rede
Comprobar netstat -s antes/despois da execución dunha carga de traballo.
Netstat recompila información de rede de todos os dispositivos de rede do sistema. Polo tanto, os resultados poden verse afectados por redes distintas da rede que se está a probar. A saída de netstat -s pode ser un bo indicador de problemas de rendemento no sistema operativo ou kernel Linux. Consulta as guías de axuste do sistema operativo, como a Guía de axuste do rendemento da rede Red Hat Enterprise Linux, para obter máis información sobre o axuste xeral do sistema operativo.
7.4 Rexistros do sistema
Comprobe os rexistros do sistema para detectar erros e avisos (/var/log/messages, dmesg).
Ferramenta de información sobre o servidor Intel 7.5
Intel proporciona unha ferramenta svr-info (véxase https://github.com/intel/svr-info) para Linux que captura detalles relevantes de hardware e software dun servidor. A saída svr-info pode ser extremadamente útil para identificar obstáculos do sistema ou configuracións/axustes que non están optimizados para a carga de traballo. Ao abrir un caso de soporte con Intel para problemas de rendemento relacionados con Ethernet, asegúrese de incluír a saída svr-info (texto file) para cada servidor Linux na configuración de proba.

  1. Descarga e instala svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > nome do servidor.txt
  2. Recoller a saída:
    ./svr-info > nome do servidor.txt
  3. Adxuntar un texto (.txt) file para cada servidor no seu caso de soporte de Intel para a súa análise.

Recomendacións para escenarios de rendemento comúns

8.1 Reenvío de IP

  • Actualizar o núcleo.
    Algúns kernels recentes dentro da distribución degradaron o rendemento do enrutamento debido a cambios no código de enrutamento do kernel, comezando pola eliminación da caché de enrutamento por motivos de seguridade. Os kernels recentes fóra da distribución deberían ter parches que mitiguen o impacto destes cambios no rendemento e que poidan proporcionar un mellor rendemento.
  • Desactivar o hiperprocesamento (núcleos lóxicos).
  • Editar os parámetros de arranque do kernel.
    — Forzar a desactivación de iommu (intel_iommu=off ou iommu=off) desde a liña de arranque do kernel a non ser que sexa necesario para a virtualización
    — Desactivar a xestión de enerxía: processor.max_cstates=1 idle=poll pcie_aspm=off
  • Limitar o número de colas para que sexa igual ao número de núcleos no socket local (12 neste exemplo)ample). ethtool -L ethX combinado 12
  • Conecta as interrupcións só ao socket local. set_irq_affinity -X local ethX OU set_irq_affinity -X local ethX
    NOTA
    Pódese usar -X ou -x dependendo da carga de traballo.
  • Cambia os tamaños dos anel Tx e Rx segundo sexa necesario. Un valor maior require máis recursos pero pode proporcionar mellores taxas de reenvío. ethtool -G ethX rx 4096 tx 4096
  • Desactivar GRO ao facer enrutamento.
    Debido a un problema coñecido do kernel, GRO debe estar desactivado ao enrutar/reenviar. ethtool -K ethX gro off onde ethX é a interface Ethernet que se vai modificar.
  • Desactiva a moderación adaptativa de interrupcións e define un valor estático. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

NOTA
Dependendo do tipo de procesador e da carga de traballo, os parámetros de coalescencia para RX e TX pódense axustar para mellorar o rendemento (ou reducir a perda de fotogramas).

  • Desactiva o cortafuegos. sudo systemctl desactiva firewalld sudo systemctl stop firewalld
  • Activar o reenvío de IP. sysctl -w net.ipv4.ip_forward=1
  • Configura os valores máximos para os tamaños do búfer do socket de recepción e envío. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

NOTA
Dependendo da carga de traballo ou do requisito, estes valores pódense modificar con respecto aos predeterminados.
8.2 Baixa latencia

  • Desactiva o hyper-threading (núcleos lóxicos).
  • Asegúrate de que o dispositivo de rede sexa local no núcleo 0 de Numa.
  • Fixa o benchmark ao núcleo 0 usando taskset -c 0.
  • Desactivar irqbalance usando systemctl stop irqbalance ou systemctl disable irqbalance
  • Executa o script de afinidade para distribuír entre núcleos. Proba con local ou con todos.
  • Desactivar a moderación de interrupcións. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • Número límite de colas para que sexa igual ao número de núcleos no socket local (32 neste exemplo)ample). ethtool -L ethX combinado 32
  • Conecta as interrupcións só ao socket local (script incluído co código fonte do controlador i40e). set_irq_affinity -X local ethX
  • Usa un punto de referencia establecido como netperf -t TCP_RR, netperf -t UDP_RR ou NetPipe. netperf -t TCP_RR ou netperf -t UDP_RR
  • Fixar o benchmark a un único núcleo no nodo NUMA local. taskset -c

Intel® Ethernet serie 700
Guía de axuste do rendemento de Linux
Decembro 2024
Nº de documento: 334019, Rev.: 1.2

Documentos/Recursos

Axuste do rendemento de Linux da serie Intel Ethernet 700 [pdfGuía do usuario
334019, Ethernet serie 700 Axuste do rendemento de Linux, Ethernet serie 700, Axuste do rendemento de Linux, Axuste do rendemento, Axuste

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *