Intel LogoIntel® Ethernet 700 Series
Linux Performance Tuning Guide
NEX Cloud Networking Group (NCNG)
Pin. 1.2
Disyembre 2024

Kasaysayan sa Pagbag-o

Rebisyon Petsa Mga komento
1.2 Disyembre 2024 · Gidugang Dugang nga Giya sa Pagdumala sa Gahum.
· Gidugang ang Intel* Turbo Boost.
· Gidugang Network Device Backlog.
· Gidugang nga Piho sa Platform nga Mga Pag-configure ug Pag-tune.
· Gidugang ang 4th Generation Intel* %eon* Scalable Processors.
· Gidugang AMD EPYC.
· Gi-update nga Check System Hardware Capabilities.
· Gi-update nga iPerf2.
· Gi-update nga iPerf3.
· Gi-update nga Tx/Rx Queues.
· Gi-update nga Interrupt Moderation.
· Gi-update nga Gidak-on sa Singsing.
· Gi-update nga Platform Tuning (i40e Non-Specific).
· Gi-update nga Mga Setting sa BIOS.
· Gi-update nga C-State Control.
· Gi-update nga CPU Frequency Scaling.
· Gi-update nga Mga Setting sa Aplikasyon.
· Gi-update nga Operating System/Kernel Settings.
· Gi-update nga IP Forwarding.
· Gi-update nga Ubos nga Latency.
Agosto 2023 Ang mga pagbag-o sa kini nga dokumento naglakip:
· Gidugang nga May Kalabutan nga mga Reperensya.
· Gidugang Pagsiguro nga ang Pakete sa DDP Nag-load sa Maayo.
· Gidugang iPerf2.
· Gidugang iPerf3.
· Gidugang netperf.
· Gi-update nga IRQ Affinity.
· Gidugang Tx/Rx Queues.
· Gi-update nga Gidak-on sa Singsing.
· Gidugang nga Jumbo Frame.
· Gidugang ang Adapter Bonding.
· Gidugang Intel svr-info Tool.
1.0 Marso 2016 Inisyal nga Pagpagawas (Intel Public).

Pasiuna

Kini nga giya gituyo aron maghatag giya alang sa pag-tune sa mga palibot alang sa labing maayo nga performance sa networking gamit ang Intel ® Ethernet 700 Series NICs sa Linux environment. Naka-focus kini sa hardware, driver, ug operating system nga mga kondisyon ug setting nga mahimong makapauswag sa performance sa network. Kinahanglang hinumdoman nga ang pasundayag sa networking mahimong maapektuhan sa bisan unsang gidaghanon sa mga impluwensya sa gawas, ang labing kasagaran ug dramatiko niini ang nasakup niini nga giya.
1.1 May Kalabutan nga mga Reperensya

Inisyal nga Checklist

2.1 Pag-update sa Mga Bersyon sa Driver/ Firmware
Susiha ang mga bersyon sa driver/firmware gamit ang ethtool -i ethx.
I-update ang mosunod kung gikinahanglan:

2.2 Basaha ang README
Susiha ang nahibal-an nga mga isyu ug kuhaa ang pinakabag-o nga mga panudlo sa pag-configure gikan sa README file gilakip sa i40e source package.
2.3 Susiha nga ang Imong PCI Express (PCIe) Slot Mao ang x8
Ang ubang mga slot sa PCIe x8 aktuwal nga gi-configure isip mga x4 slots. Kini nga mga slots adunay dili igo nga bandwidth alang sa tibuuk nga linya sa rate nga adunay dual port ug quad port nga mga aparato. Dugang pa, kon imong ibutang ang PCIe v3.0-capable adapter ngadto sa PCIe v2.x slot, dili ka makakuha og full bandwidth. Ang driver sa software device nakamatikod niini nga sitwasyon ug nagsulat sa mosunod nga mensahe sa log sa sistema:
Ang bandwidth sa PCI-Express nga magamit alang niini nga kard dili igo alang sa labing maayo nga pasundayag. Alang sa labing maayo nga performance gikinahanglan ang x8 PCI-Express slot.
Kung mahitabo kini nga sayup, ibalhin ang imong adapter sa usa ka tinuod nga slot sa PCIe v3.0 x8 aron masulbad ang isyu.
2.4 Susihon ang mga Kapabilidad sa Hardware sa Sistema
Sa 10 Gbps, 25 Gbps, ug 40 Gbps Ethernet, adunay pipila ka minimum nga mga kinahanglanon sa CPU ug sistema. Sa kinatibuk-an, ang usa ka moderno nga processor sa klase sa server ug labing maayo nga pag-configure sa memorya alang sa imong plataporma kinahanglan nga igo, apan ang mga panginahanglanon magkalainlain depende sa imong workload. Ang tanan nga mga channel sa memorya kinahanglan nga mapuno ug ang mode sa performance sa memorya kinahanglan nga ma-enable sa BIOS. Tinoa nga ang imong CPU ug memory configuration makahimo sa pagsuporta sa lebel sa network performance nga imong gikinahanglan alang sa imong workload.
NOTA
Ang XL710 usa ka 40 GbE controller. Ang 2 x 40 GbE adapter nga naggamit niini nga controller wala gituyo nga mahimong 2 x 40 GbE apan usa ka 1 x 40 GbE nga adunay aktibong back-up port. Sa pagsulay sa paggamit sa line-rate nga trapiko nga naglambigit sa duha ka mga pantalan, ang internal nga switch saturated ug ang hiniusa nga bandwidth tali sa duha ka mga pantalan limitado sa kinatibuk-an nga SO Gbps.
2.4.1 Mga Parameter sa Kernel Boot
Kung ang Intel® Virtualization Technology for Directed I/O (Intel® VT-d) gi-enable sa BIOS, girekomenda sa Intel nga ang IOMMU naa sa pass-through mode para sa labing maayo nga performance sa host network. Giwagtang niini ang overhead sa DMA sa trapiko sa host samtang gi-enable ang Virtual Machines (VMs) nga makabaton gihapon sa mga benepisyo sa Intel® VT-d. Nahimo kini pinaagi sa pagdugang sa mosunod nga linya sa mga parameter sa kernel boot: fommu-pt.
2.5 Siguruha nga ang Pakete sa DDP Nag-load sa Maayo
Ang mga drayber sa base sa 140ea ug 140eb walay direktang suporta alang sa Dynamic Device Personalization (DDP). Aron magamit ang DDP nga adunay 700 Series nga mga aparato, usa ka DDP profile mahimong magamit sa aplikasyon sa testpmd.
Para sa mga detalye sa DDP profiles, ug unsaon paggamit sa DDP profile uban sa testpmd sa 700 Series nga mga device, tan-awa ang Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) Technology Guide.
Aron masusi kung ang usa ka DDP profile malampuson nga nakarga:
testpmd> ddp pagkuha sa listahan 0 Profile numero mao ang: 1
NOTA
Kung ang profile numero kay 0, walay DDP package nga gikarga. Sa panghitabo sa usa ka DDP package load error, ang device default ngadto sa luwas nga paagi ug daghang performance features dili magamit. Kung adunay mga kasaypanan nga may kalabutan sa pagkarga sa DDP nga pakete, kini magpahinabog mga isyu sa pasundayag. Para sa mga lakang sa pag-troubleshoot, tan-awa ang Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) Technology Guide.

Baseline Performance Measurements ug Tuning Methodology

3.1 Mga Benchmark sa Pagganap sa Network
Sa dili pa magsugod ang usa ka tuning exercise, importante nga adunay maayo nga baseline nga pagsukod sa performance sa imong network. Kasagaran agig dugang sa pagkuha og inisyal nga pagsukod sa imong espesipikong aplikasyon/trabaho sa performance, maayo nga ideya nga mogamit usab og standard nga network performance benchmark aron mapamatud-an nga ang imong network device anaa sa maayong kahimtang.
Alang sa us aka sistema nga pag-optimize, netperf o iperf ug NetPIPE tanan lig-on nga libre nga opensource nga mga himan nga makapahimo kanimo sa paghatag gibug-aton sa usa ka koneksyon ug pag-diagnose sa mga isyu sa pasundayag.
Kusog ang Netperf para sa throughput ug latency testing. Ang NetPIPE usa ka himan nga espesipiko sa latency apan mahimong i-compile para sa bisan unsang matang sa palibot.
NOTA
Ang TCP_RR nga pagsulay sa netperf nagbalik sa latency sa kantidad sa mga transaksyon/sec. Kini usa ka round-trip nga numero. Ang one-way latency mahimong kalkulado gamit ang mosunod nga equation:
Latency(usec) = (1⁄2) / [Mga Transaksyon/seg] * 1,000,000
3.1.1 iPerf2
Girekomenda sa Intel ang iperf2 kaysa iperf3 alang sa kadaghanan nga mga kahimtang sa pag-benchmark tungod sa kadali sa paggamit ug suporta sa daghang mga hilo sa usa ka pananglitan sa aplikasyon. Girekomenda sa Intel ang pagdagan gamit ang -P nga kapilian nga adunay 2-4 nga mga hilo alang sa mga koneksyon sa 25G ug mga 4-6 nga mga hilo alang sa mga koneksyon sa 40G.

  • Sa pagpadagan sa uni-directional nga trapiko gikan sa kliyente ngadto sa server: Server command example: iperf2 -s
    Pagmando sa kliyente exampug: iperf2 -c -P
  • Sa pagpadagan sa bi-directional nga trapiko gikan sa kliyente ngadto sa server (ug vice versa): Server command example: iperf2 –s –p
    Pagmando sa kliyente example:
    iperf2 -c -p -P -–full-duplex O
    iperf2 -c -p -P –d

NOTA
Ang duha nga -full-duplex ug -d nga mga kapilian sa iperf2 nagtugot sa tiggamit sa paghimo sa bidirectional nga pagsulay. Bisan pa, ang -full-duplex nga kapilian espesipikong nagpunting sa bug-os nga duplex nga pagsulay.
NOTA
Kung gisulayan ang iperf2 sa daghang mga pantalan sa server, ang -d nga bandila mahimong idugang sa mando sa server aron mapadagan ang tanan nga mga sesyon sa server sa background gikan sa parehas nga bintana sa terminal. Ang -d nga bandila mahimo usab nga gamiton kung ang server command na-embed sa sulod sa usa ka for-loop sa usa ka script.
NOTA
Kung nagdagan ang pagsulay sa throughput sa network nga adunay usa ka sapa / hilo (example: P1), ang mga processor sa AMD mahimong dili makahatag sa gipaabot nga throughput, ilabina ang mas taas nga bandwidth NICs (kon ang speed kay >= 25G bandwidth). Ingon usa ka sangputanan, gikinahanglan ang pag-pin sa aplikasyon sa piho nga mga cores aron makab-ot ang mas taas nga throughput. Tan-awa ang Application Settings sa pahina 22.
3.1.2 iPerf3
Kung gigamit ang iperf3, daghang mga higayon sa aplikasyon ang gikinahanglan aron makuha ang advantage sa multi-threads, RSS, ug hardware nga pila. Girekomenda sa Intel ang pagdagan gamit ang 2-4 nga mga sesyon sa aplikasyon alang sa mga koneksyon sa 25G ug mga 4-6 nga sesyon alang sa mga koneksyon sa 40G. Ang matag sesyon kinahanglang magtakda ug talagsaong bili sa TCP port gamit ang -p nga kapilian.

  • Sa pagpadagan sa uni-directional nga trapiko gikan sa kliyente ngadto sa server:
    Server command example:
    iperf3 -s -p
    Pagmando sa kliyente example:
    iperf3 -c -p
  • Sa pagpadagan sa bi-directional nga trapiko gikan sa kliyente ngadto sa server (ug vice versa):
    Server command example:
    iperf3 –s –p
    Pagmando sa kliyente exampug: iperf3 -c -p -P –-bidir
  • Aron masugdan ang daghang mga higayon (mga hilo) sa iperf3, ang rekomendasyon mao ang paggamit sa usa ka for-loop sa pagmapa sa mga hilo sa mga TCP port ug pagpadagan sa iperf3 sa background gamit ang & sa paghimo og daghang mga proseso nga managsama.
    Server command example, pagsugod sa 4 nga mga hilo: port = ""; kay ako sa {0..3}; buhaton port=520$i; bash -c "iperf3 -s -p $port &"; nahimo; Pagmando sa kliyente example, pagsugod sa 4 nga mga hilo - Ipadala ang pagsulay port = ""; kay ako sa {0..3}; buhaton port=520$i; bash -c "iperf3 -c $ serverIP -p $ port &"; nahimo; Pagmando sa kliyente example, pagsugod sa 4 nga mga hilo - Dawata ang pagsulay port = ""; kay ako sa {0..3}; buhaton port=520$i; bash -c "iperf3 -R -c $ serverIP -p $ port &"; nahimo; Alang sa 40G nga mga koneksyon, dugangi ang for-loop aron makamugna hangtod sa 6 nga mga higayon/mga hilo.

NOTA
Kung nagdagan ang pagsulay sa throughput sa network nga adunay usa ka sapa / hilo (example: P1), ang mga processor sa AMD dili makahatag sa gipaabot nga throughput, ilabina ang mas taas nga bandwidth
NICs (kung ang katulin kay >= 25G bandwidth). Ingon usa ka sangputanan, gikinahanglan ang pag-pin sa aplikasyon sa piho nga mga cores aron makab-ot ang mas taas nga throughput. Tan-awa ang Application Settings sa pahina 22 ug AMD EPYC sa pahina 26.
3.1.3 netperf
Ang tool sa netperf lig-on nga kapilian alang sa throughput ug latency nga pagsulay.

  • Ang TCP_STREAM nga pagsulay sa netperf nagsukod sa mga kapabilidad sa throughput sa device. Ang sugo sa server example: netserver Client command example: netperf -t TCP_STREAM -l 30 -H
  • Ang TCP_RR nga pagsulay sa netperf nagbalik sa latency sa kantidad sa mga transaksyon/segundo. Kini usa ka round-trip nga numero. Girekomenda nga gamiton ang -T x,x nga kapilian, kung ang x mao ang lokal nga CPU sa aparato. Ang one-way latency mahimong kalkulado gamit ang: Latency(usec)=(1⁄2)/ [Transactions/sec]*1,000,\ Server command exampug: netserver
    Pagmando sa kliyente example: netperf -t TCP_RR -l 30 -H -T x,x
  • Aron masugdan ang daghang mga higayon (mga hilo) sa netperf, ang rekomendasyon mao ang paggamit sa usa ka for-loop aron mapa ang mga hilo sa mga pantalan sa TCP ug ipadagan ang netperf sa background gamit ang & aron makahimo daghang mga proseso nga managsama.
    Server command example, sugdi ang 8 ka thread:
    pantalan = ""; kay ako sa {0..7}; buhaton port=520$i; bash -c "netserver -L $ serverIP -p $ port &"; nahimo;
    Pagmando sa kliyente example, sugdi ang 8 ka mga hilo: port = ""; kay ako sa {0..7}; buhaton port=520$i; bash -c "netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &"; nahimo;

3.2 Pamaagi sa Tuning
Pag-focus sa usa ka pagbag-o sa tuning matag higayon aron mahibal-an nimo kung unsa ang epekto sa matag pagbag-o sa imong pagsulay. Kon mas metodo ka sa proseso sa pag-tune, mas sayon ​​ang pag-ila ug pagsulbad sa mga hinungdan sa mga bottleneck sa performance.

Pag-tune sa i40e Driver Settings

4.1 IRQ Affinity
Ang pag-configure sa IRQ affinity aron ang mga interrupts alang sa lain-laing mga network queues ma-affinitize sa lain-laing mga CPU cores mahimong adunay dako nga epekto sa performance, ilabi na sa multithread throughput tests.
Aron ma-configure ang IRQ affinity, hunong ang irqbalance ug dayon gamita ang set_irq_affinity script gikan sa i40e source package o pin queues nga mano-mano. I-disable ang user-space IRQ balancer aron mahimo ang queue pinning:

  • systemctl disable irqbalance
  • systemctl ihunong ang irqbalance
    Gamit ang set_irq_affinity script gikan sa i40e source package (girekomendar):
  • Aron magamit ang tanan nga mga cores:
    [path-to-i40epackage]/scripts/set_irq_affinity -X tanan ethX
  • Sa paggamit lamang sa mga core sa lokal nga NUMA socket: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Mahimo ka usab makapili usa ka lainlaing mga cores. Likayi ang paggamit sa cpu0 tungod kay kini nagpadagan sa mga buluhaton sa timer. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

NOTA
Ang affinity script makahimo sa Transmit Packet Steering (XPS) isip kabahin sa proseso sa pag-pin kung ang -x nga kapilian gitakda. Kung gi-enable ang XPS, girekomenda sa Intel nga imong i-disable ang irqbalance, tungod kay ang kernel balancer nga adunay XPS mahimong hinungdan sa dili matag-an nga pasundayag. Ang affinity script nag-disable sa XPS kung ang -X nga kapilian gitakda. Ang pag-disable sa XPS ug pagpagana sa simetriko nga mga pila mapuslanon alang sa mga workloads diin ang labing maayo nga pasundayag makab-ot kung ang Tx ug Rx nga trapiko maserbisyohan sa parehas nga (mga) pares sa pila.
Ang pag-configure sa simetriko nga mga pila sa Linux nag-apil sa pag-tune sa mga parameter sa driver sa interface sa network aron mahimo ang simetriko nga makadawat mga pila (Rx) ug simetriko nga pagpasa sa mga pila (Tx) alang sa gisuportahan nga mga adapter sa network.
NOTA

  • Ang simetriko nga mga pila kay usa ka advanced networking feature, ug dili tanang 700 series network adapters o drivers nagsuporta niini.
  • Siguruha nga naa nimo ang kinahanglan nga suporta sa drayber ug hardware sa dili pa mosulay sa pag-configure sa simetriko nga mga pila.

Aron ma-configure ang simetriko nga mga pila, sunda kini nga mga kinatibuk-ang lakang:

  1. I-edit ang Network Interface Configuration File: Paggamit ug text editor (alang sa example, vi, nano, o gedit) aron ma-edit ang configuration sa interface sa network file. Ang file kasagaran nahimutang ubos sa /etc/sysconfig/network-scripts/ directory ug adunay ngalan sama sa ifcfg-ethX, diin ang ethX mao ang ngalan sa imong network interface.
  2. Idugang ang Symmetric Queue Parameter. Idugang ang mosunod nga mga linya sa configuration sa interface sa network file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
  3. I-restart ang Serbisyo sa Network.
    Pagkahuman sa paghimo sa mga pagbag-o, i-restart ang serbisyo sa network aron magamit ang bag-ong configuration. sudo systemctl i-restart ang network

Sa kamut:

  • Pangitaa ang mga processor nga gilakip sa matag node gamit ang: numactl –hardware lscpu
  • Pangitaa ang gamay nga maskara alang sa matag usa sa mga processor:
  • Nagtuo nga ang mga core 0-11 alang sa node 0: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Pangitaa ang mga IRQ nga gi-assign sa port nga gi-assign: grep ethX /proc/interrupts ug timan-i ang IRQ values ​​For example, 181-192 alang sa 12 ka mga vector nga gikarga.
  • Ipalanog ang SMP affinity value ngadto sa katugbang nga IRQ entry. Timan-i nga kini kinahanglan nga buhaton alang sa matag IRQ entry: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Ipakita ang IRQ affinity:
  • Aron ipakita ang IRQ affinity alang sa tanan nga mga cores: /scripts/set_irq_affinity -s ethX
  • Aron ipakita lamang ang mga core sa lokal nga NUMA socket: /scripts/set_irq_affinity -s lokal nga ethX
  • Mahimo ka usab makapili usa ka lainlaing mga cores: /scripts/set_irq_affinity -s 40-0-8,16 ethX

NOTA
Ang set_irq_affinity script nagsuporta sa -s flag sa i40e driver version 2.16.11 ug sa ulahi.
4.2 Tx/Rx Pila
Ang default nga gidaghanon sa mga pila nga gipalihok alang sa matag Ethernet port sa drayber sa pagsugod katumbas sa kinatibuk-ang gidaghanon sa mga CPU nga magamit sa plataporma. Maayo kini alang sa daghang mga platform ug mga pag-configure sa workload. Apan, sa mga plataporma nga adunay taas nga core count ug/o taas nga Ethernet port density, kini nga configuration mahimong hinungdan sa panagbingkil sa kapanguhaan. Busa, mahimong gikinahanglan sa pipila ka mga kaso nga usbon ang default alang sa matag pantalan sa sistema.
Ang default nga gidaghanon sa Tx/Rx nga mga pila mahimong magkalainlain depende sa piho nga modelo ug bersyon sa drayber. Ang gidaghanon sa mga pila mahimong i-adjust gamit ang ethtool -L nga sugo nga gilista sa ubos.
NOTA
Sa kini nga mga kaso, girekomenda sa Intel nga imong pakunhuran ang default nga ihap sa pila alang sa matag pantalan nga dili molapas sa gidaghanon sa mga CPU nga magamit sa lokal nga node sa NUMA sa adapter port. Sa pipila ka mga kaso, kung mosulay sa pagbalanse sa mga kapanguhaan sa taas nga pag-ihap sa port, mahimo’g kinahanglan nga pakunhuran pa kini nga numero.
Aron usbon ang configuration sa pila:
Ang mosunod nga exampGibutang ang pantalan sa 32 Tx/Rx nga pila: ethtool -L ethX gihiusa 32
Exampang output:
ethtool -l ethX
Mga parametro sa channel para sa ethX: Pre-set maximums:
RX: 96
TX: 96
Uban pa: 1
Gihiusa: 96
Mga setting sa hardware karon:
RX: 0
TX: 0
Uban pa: 1
Gihiusa: 32
4.3 Pagbalda sa Moderation
Ang adaptive interrupt moderation kay gi-on pinaagi sa default, ug gidesinyo sa paghatag og balanse nga pamaagi tali sa ubos nga paggamit sa CPU ug taas nga performance. Bisan pa, mahimo nimong sulayan ang pag-tune sa mga setting sa interrupt nga mano-mano aron mohaum sa imong kaso sa paggamit.
Ang sakup sa 0-235 microseconds naghatag usa ka epektibo nga sakup nga 4,310 hangtod 250,000 nga mga interrupts matag segundo. Ang bili sa rx-μsecs-high mahimong ibutang nga independente sa rx-μsecs ug tx-μsecs sa samang ethtool command, ug independente usab sa adaptive interrupt moderation algorithm. Ang nagpahiping hardware nagsuporta sa granularity sa 2microsecond nga mga agwat, mao nga ang kasikbit nga mga kantidad mahimong moresulta sa parehas nga interrupt rate.

  • Aron i-off ang adaptive interrupt moderation: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Aron ma-on ang adaptive interrupt moderation: ethtool -C ethX adaptive-rx on adaptive-tx on

Ang maayong dapit sa pagsugod alang sa kinatibuk-ang tuning mao ang 84 μs, o ~ 12000 interrupts/s. Kung nakita nimo ang mga rx_dropped nga mga counter nga nagdagan sa panahon sa trapiko (gamit ang ethtool -S ethX) nan tingali hinay ka kaayo sa usa ka CPU, dili igo nga mga buffer gikan sa gidak-on sa singsing sa adapter (ethtool -G) aron makuptan ang mga pakete sa 84 μs o ubos sa usa ka interrupt rate.

  • Aron itakda ang interrupt moderation ngadto sa fixed interrupt rate nga 84 μs tali sa mga interrupts (12000 interrupts/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Ang sunod nga bili nga sulayan, kung wala ka ma-maxed out sa CPU utilization, 62μs. Gigamit niini ang daghang CPU, apan mas paspas ang serbisyo niini, ug nanginahanglan gamay nga mga deskriptor (gidak-on sa singsing, ethtool -G).
  • Aron itakda ang interrupt moderation ngadto sa fixed interrupt rate nga 62 usecs tali sa interrupts (16000 interrupts/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Kung ang mga counter sa rx_dropped modaghan sa panahon sa trapiko (gamit ang ethtool -S ethX), lagmit hinay ka kaayo sa usa ka CPU, dili igo nga buffer gikan sa gidak-on sa singsing sa adapter (ethtool -G), o ubos kaayo sa usa ka interrupt rate. Kung dili ka mapataas sa paggamit sa CPU, mahimo nimong madugangan ang rate sa interrupt pinaagi sa pagpaubos sa kantidad sa ITR. Naggamit kini og mas daghang CPU, apan ang mga serbisyo nag-buffer nga mas paspas, ug nagkinahanglan og mas gamay nga mga deskriptor (ring size, ethtool -G).
    Kung ang imong CPU naa sa 100%, unya ang pagdugang sa rate sa pagkabalda wala gitambagan. Sa pipila ka mga kahimtang sama sa usa ka CPU bound workload, mahimo nimong usbon ang kantidad sa μs aron mahimo ang daghang oras sa CPU alang sa ubang mga aplikasyon.
    Kung nanginahanglan ka nga mubu nga pasundayag sa latency ug / o adunay daghang CPU nga igahin sa pagproseso sa network, mahimo nimong i-disable ang hingpit nga pag-moderate sa interrupt, nga makapahimo sa mga interrupts nga mosunog sa labing kadali nga mahimo.
  • Sa pag-disable sa interrupt moderation ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

NOTA
Kung ang pagdagan nga adunay interrupt moderation disabled, ang interrupt rate sa matag pila mahimong taas kaayo. Ikonsiderar ang paglakip sa rx-usec-high nga parametro para magbutang ug taas nga limitasyon sa interrupt rate. Ang mosunod nga sugo nag-disable sa adaptive interrupt moderation ug nagtugot sa labing taas nga 5 microseconds sa wala pa magpakita nga ang pagdawat o pagpadala kompleto na. Imbis nga moresulta sa ingon ka daghan sa 200,000 ka interrupts kada segundo, kini naglimite sa kinatibuk-ang interrupts kada segundo ngadto sa 50,000 pinaagi sa rx-usec-high parameter. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Sulayi ang pag-adjust sa transmit/receive/high-priority coalescing timer nga mas taas (80/100/150/200) o mas ubos (25/20/10) aron makit-an ang labing maayo nga kantidad sa trabaho.
4.4 Gidak-on sa singsing
Kung nakakita ka og mga rx_dropping counter sa ethtool -S ethX (rx_dropped, rx_dropped.nic), o nagduda nga presyur sa cache nga adunay daghang pila nga aktibo, mahimo nimong sulayan ang pag-adjust sa gidak-on sa singsing gikan sa default nga kantidad. Ang default nga kantidad mao ang 512, ang max mao ang 4096.

  • Aron masusi ang kasamtangan nga mga bili: ethtool -g ethX
    Kung gisuspetsahan nga ang kakulang sa buffering hinungdan sa pag-ubos sa kasamtangan nga interrupt rate, mahimo nimong sulayan una ang labing taas, dayon ang minimum, dayon magpadayon sa usa ka binary nga pagpangita hangtod makita nimo ang labing maayo nga pasundayag.
    Kung gisuspetsahan ang presyur sa cache (daghang pila nga aktibo) ang pagkunhod sa mga buffer gikan sa default makatabang sa Intel ® Data Direct I/O (Intel ® DDIO) nga molihok nga mas episyente. Girekomenda sa Intel nga sulayan ang 128 o 256 matag pila, nga nahibal-an nga ang pagtaas sa rate sa interrupt pinaagi sa ethtool -C mahimo’g kinahanglan aron malikayan ang pagtaas sa rx_dropped.
  • Aron itakda ang gidak-on sa singsing ngadto sa gitakdang bili: ethtool -G eth12 rx 256 tx 256

NOTA
Aron ayohon ang Rx packet drops nga nakit-an gamit ang ethtool -S ethX|grep drop, ikonsiderar ang pagdugang sa gidak-on sa singsing ngadto sa 4096. Eksperimento aron makit-an ang pinakamaayo nga setting alang sa workload apan pagbantay sa sobra nga paggamit sa memorya nga adunay mas taas nga kantidad.
4.5 Pagkontrol sa Agos
Ang Layer 2 flow control mahimong maka-epekto sa performance sa TCP ug girekomendar nga i-disable para sa kadaghanang workloads. Ang usa ka potensyal nga eksepsiyon mao ang pagbuto sa trapiko diin ang mga pagbuto dili dugay sa gidugayon.
Ang pagkontrol sa agos gi-disable pinaagi sa default.

  • Aron mahimo ang pagkontrol sa dagan: ethtool -A ethX rx on tx on
  • Aron ma-disable ang pagkontrol sa agos: ethtool -A ethX rx off tx off

NOTA
Kinahanglan nga adunay ka kauban sa pag-link nga makahimo sa pagkontrol sa dagan aron malampuson nga makontrol ang dagan.
4.6 Jumbo nga mga Frame
Kung ang gipaabot nga palibot sa trapiko naglangkob sa daghang mga bloke sa datos nga gibalhin, mahimo’g mapuslanon ang pagpaandar sa jumbo frame nga bahin. Ang suporta sa Jumbo Frames gipalihok pinaagi sa pagbag-o sa Maximum Transmission Unit (MTU) ngadto sa usa ka bili nga mas dako kay sa default value nga 1500. Kini nagtugot sa device sa pagbalhin sa data sa mas dagkong mga pakete sulod sa network environment. Kini nga setting mahimong makapauswag sa throughput ug makunhuran ang paggamit sa CPU alang sa dagkong mga workload sa I/O. Bisan pa, mahimo’g makaapekto kini sa gamay nga pakete o sensitibo sa latency nga mga workload.
NOTA
Ang mga jumbo frame o mas dako nga setting sa MTU kinahanglan nga husto nga i-configure sa imong palibot sa network.
Gamita ang ifconfig nga sugo aron madugangan ang gidak-on sa MTU. Kay example, isulod ang mosunod, diin mao ang numero sa interface: ifconfig mtu 9000 pataas
Sa laing paagi, mahimo nimong gamiton ang ip command sama sa mosunod: ip link set mtu 9000 dev ip link gipahimutang ang dev

Platform Tuning (i40e Dili Piho)

5.1 Mga Setting sa BIOS

  • I-enable ang Intel® VT-d alang sa virtualization workloads.
  • Ang hyper-threading (lohikal nga mga processor) mahimong makaapekto sa performance. Eksperimento niini on o off para sa imong workload.
  • Gitugotan sa Intel® Turbo Boost ang mga core sa CPU nga molihok sa mas taas nga frequency kaysa base frequency sa CPU. Ang pagpagana sa Intel® Turbo Boost makapausbaw sa performance alang sa daghang mga workloads apan mokonsumo og dugang gahum aron mapabilin ang mga core sa mas taas nga frequency. Eksperimento sa Turbo Boost off/on para sa imong workload.

NOTA
Ang mga frequency sa turbo dili garantiya kung ang plataporma nakasinati og taas nga kinatibuk-ang paggamit sa CPU. Ang mas taas nga core nga mga frequency sa turbo mikunhod samtang ang kinatibuk-ang paggamit sa CPU nagdugang.
5.2 Pagdumala sa Gahum
Ang pagdumala sa kuryente mahimong makaapekto sa performance, ilabina sa ubos nga latency workloads. Kung ang pasundayag usa ka mas taas nga prayoridad kaysa pagpaubos sa konsumo sa kuryente, girekomenda sa Intel nga mag-eksperimento ka sa paglimite sa mga epekto sa pagdumala sa kuryente. Adunay daghang lainlaing mga paagi aron limitahan ang pagdumala sa kuryente, pinaagi sa mga himan sa operating system, mga setting sa BIOS, ug mga parameter sa kernel boot. Pilia ang pinakamaayo nga paagi ug lebel nga mohaum sa imong palibot.
5.2.1 C-State Control
Ang paglimite sa pagsulod sa C-state sa CO o C1 makapauswag sa performance ug makadugang sa paggamit sa kuryente.
Ang pag-disable sa CPU Package C6 state entry makapauswag sa performance sa network. Bisan pa, kini nagdugang sa paggamit sa kuryente.
Ang mosunod nga mga opsyon anaa:

  • Dinamikong pagkontrol sa C-state entry:
    Bukas
    /dev/cpu_dma_latency ug isulat ang pinakataas nga gitugot nga latency niini.

NOTA
Adunay usa ka gamay nga programa nga gitawag cpudmalatency.c nga mahimong ma-download gikan sa open source nga komunidad, gihugpong, ug gipadagan gikan sa command line aron mahimo kini nga eksakto.
Ang mosunod nga exampGitugotan sa le ang lima ka μs nga oras sa pagmata, ug sa ingon gitugotan ang pagsulod sa C1: cpudmalatency 5 &

  • Limitahi ang pinakataas nga C-state sa kernel boot settings:
    Para sa mga Intel CPU: intel_idle.max_cstates=1
    Para sa dili-Intel nga mga CPU: processor.max_cstates=1
  • Gamita ang cpupower command aron masusi ug ma-disable ang CPU C6 state: Check: cpupower monitor o cpupower idle-info
    I-disable ang C6: cpupower idle-set -d3 o
    I-disable ang C-States: cpupower idle-set -D0

Mubo nga sulat:

  1. I-disable ang C-states sa CPU kung ang server adunay Intel® 4th Gen Intel® Xeon® Scalable Processor(s). Kung ang Hyper Threading ma-enable o ma-disable, ang pag-disable sa idle states (-D0) magpugong sa mga cores sa pagsulod sa low-power states atol sa idle nga mga panahon ug makunhuran ang latency alang sa CPU sa pagbalhin tali sa idle ug active states.
  2. Ang pagdumala sa gahum sa Intel® 4th Gen Intel® Xeon® Scalable Processor hilabihan ka agresibo. Aron malikayan ang mga core gikan sa pagsulod sa ubos nga gahum nga mga estado, sulayi ang pagkunhod sa gidaghanon sa mga core nga gigamit aron sila magpabilin nga magmata nga mas dugay (ethtool -L gihiusa ). Usab, ibugkos ang mga interrupt sa mga piho nga mga core gamit ang set irq affinity (kasagaran adunay -x lokal o lista sa mga CPU cores), ug siguroha nga ang workload modagan sa parehas nga mga core nga adunay taskset o numactl. Gipauswag niini ang pasundayag pinaagi sa pagpadayon nga aktibo ang mga cores ug pag-optimize sa pagdumala sa interrupt.

I-enable ang C6:
cpupower idle-set -d3
I-enable ang C-States:
cpupower idle-set -E

  • Ang laing paagi mao ang paggamit sa tuned tool (uban sa daghang mga distribusyon sa Linux) aron magtakda og performance profile. Kini nga mga profiles pag-usab sa daghang mga setting sa OS nga makaapekto sa performance sa daghang mga aplikasyon. Nakaplagan nga ang network-throughput profile naghatag kauswagan sa kadaghanan sa mga workloads.
    Susiha:
    tuned-adm aktibo
    Set:
    tuned-adm profile network-throughput
    NOTA
    Ang gipahiangay nga serbisyo kinahanglan nga nagdagan alang sa mga mando sa ibabaw. Sa pagsusi/pag-restart, tuned: systemctl status tuned systemctl restart tuned
    Mahimo usab nimo nga dili tugutan ang bisan unsang C-state entry pinaagi sa pagdugang sa mosunod sa kernel boot line:
    walay pulos=poll
  • Limitahi ang C-state pinaagi sa BIOS power management settings sa system, nga mahimong adunay performance profile anaa.
    Ang mga himan sama sa turbostat o x86_energy_perf_policy mahimong magamit sa pagsusi o pagtakda sa mga setting sa pagdumala sa kuryente.

5.2.2 Pagdumala sa Gahum sa PCIe
Ang Active-State Power Management (ASPM) makapahimo sa usa ka ubos nga power state alang sa PCIe links kung kini dili aktibo nga gigamit. Mahimo kini nga hinungdan sa labi ka taas nga latency sa mga aparato sa network sa PCIe, mao nga girekomenda sa Intel nga imong i-disable ang ASPM alang sa mga karga sa trabaho nga sensitibo sa latency. I-disable ang ASPM pinaagi sa pagdugang sa mosunod sa kernel boot line: pcie_aspm=off
5.2.3 CPU Frequency Scaling
Ang CPU frequency scaling (o CPU speed scaling) maoy usa ka Linux power management technique diin ang system clock speed gi-adjust sa langaw aron makadaginot sa kuryente ug init. Sama sa C-states, kini mahimong hinungdan sa dili gusto nga latency sa mga koneksyon sa network.
Ang cpupower tool mahimo usab nga gamiton sa pagsusi ug pag-usab sa mga default ug limitasyon sa performance sa CPU:

  • Susiha: cpupower monitor o
  • Ibutang ang mga CPU sa performance mode: cpupower frequency-set -g performance

NOTA
Ang mga pagbag-o sa mga limitasyon sa frequency sa CPU mahimong adunay epekto sa daghang mga karga sa trabaho ug mahimong ma-disable ang ubang mga bahin, sama sa CPU turbo mode.
Aron ma-disable ang CPU frequency scaling, i-disable ang CPU power service pinaagi sa mosunod nga mga command:
systemctl hunong cpupower.service
systemctl disable cpupower.service
5.2.4 Dugang nga Giya sa Pagdumala sa Gahum
Ang dugang nga mga detalye gihatag niining taas nga lebel sa ibabawview sa daghang mga bahin sa pagdumala sa kuryente sa 3rd Generation Intel® Xeon® Scalable nga mga processor, ingon man ang giya kung giunsa kini nga mga bahin mahimong mahiusa sa lebel sa plataporma: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Ang Intel® Turbo Boost naghimo sa processor nga mas paspas kung gikinahanglan apan makakonsumo og dugang nga gahum. Ang pagpalong sa Turbo Boost nagpugong sa processor sa makanunayon nga katulin, naghatag kanimo og makanunayon nga lebel sa performance alang sa piho nga mga workloads.
5.4 Mga firewall
Ang mga firewall mahimong makaapekto sa performance, ilabi na sa latency performance.
I-disable ang iptables/firewalld kung dili kinahanglan.
5.5 Mga Setting sa Aplikasyon
Kasagaran ang usa ka thread (nga katumbas sa usa ka network queue) dili igo aron makab-ot ang labing taas nga bandwidth. Ang ubang mga arkitektura sa plataporma, sama sa AMD, lagmit nga mag-drop sa mas daghang Rx packet nga adunay usa ka thread kumpara sa mga platform nga adunay Intel-based nga mga processor.
Ikonsiderar ang paggamit sa mga himan sama sa taskset o numactl aron i-pin ang mga aplikasyon sa NUMA node o mga CPU core nga lokal sa network device. Alang sa pipila ka mga workloads sama sa storage I/O, ang pagbalhin sa aplikasyon ngadto sa dili lokal nga node makahatag ug kaayohan.
Eksperimento sa pagdugang sa gidaghanon sa mga hilo nga gigamit sa imong aplikasyon kung mahimo.
5.6 Kernel nga Bersyon
Kadaghanan sa mga modernong in-box kernels makatarunganon nga na-optimize alang sa pasundayag apan, depende sa imong kaso sa paggamit, ang pag-update sa kernel mahimong makahatag og mas maayo nga performance. Ang pag-download sa tinubdan makapahimo usab kanimo sa pag-enable/disable sa pipila ka bahin sa dili pa magtukod sa kernel.
5.7 Operating System/Kernel Settings
Konsultaha ang mga giya sa pag-tune sa operating system, sama sa Red Hat Enterprise Linux Network Performance Tuning Guide, para sa dugang pagsabot sa general operating system tuning.
Ang pipila ka kasagarang mga parametro nga i-tune gilista sa mosunod nga lamesa. Timan-i nga kini gisugyot lamang nga mga punto sa pagsugod, ug ang pag-ilis niini gikan sa mga default mahimong makadugang sa mga kapanguhaan nga gigamit sa sistema. Bisan kung ang pagdugang sa mga kantidad makatabang sa pagpauswag sa pasundayag, kinahanglan nga mag-eksperimento sa lainlaing mga kantidad aron mahibal-an kung unsa ang labing maayo alang sa usa ka gihatag nga sistema, gibug-aton sa trabaho ug tipo sa trapiko.
Ang mga parameter sa kernel ma-configure gamit ang sysctl utility sa Linux ingon sa gipakita sa ubos.
Sa view ang default nga mga kantidad alang sa rmem ug wmem sa sistema:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Ibutang ang mga kantidad sa max (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Ang mga gidak-on sa socket buffer, nailhan usab nga receive buffer (rmem) ug transmit buffer (wmem), maoy mga parameter sa sistema nga nagtino sa gidaghanon sa memorya nga gitagana alang sa umaabot ug mogawas nga trapiko sa network.
Ang pagpadagan sa sysctl nga wala ang -w nga argumento naglista sa parameter nga adunay kasamtangan nga setting niini.

Setting sa Stack Deskripsyon
net.core.rmem_default Default nga Gidak-on sa Bintana sa Pagdawat
net.core.wmem_default Default nga Gipadala nga Gidak-on sa Bintana
net.core.rmem_max Pinakataas nga Gidak-on sa Bintana sa Pagdawat
net.core.wmem_max Pinakataas nga Gidak-on sa Bintana sa Pagpadala
net.core.optmem_max Maximum nga Opsyon nga Memory Buffers
net.core.netdev_max_backlog Ang backlog sa wala maproseso nga mga pakete sa wala pa magsugod ang paghulog sa kernel
net.ipv4.tcp_rmem Memory reserver para sa TCP read buffers
net.ipv4.tcp_wmem Memory reserver para sa TCP send buffers

Ang kernel, network stack, handler sa memorya, katulin sa CPU, ug mga parameter sa pagdumala sa kuryente mahimong adunay dakong epekto sa performance sa network. Ang kasagarang rekomendasyon mao ang pag-aplay sa network throughput profile gamit ang tuned command. Gibag-o niini ang pipila ka mga setting sa OS aron mahatagan ang gusto sa mga aplikasyon sa networking.
Susiha:
tuned-adm aktibo
Set:
tuned-adm profile network-throughput
5.8 Backlog sa Device sa Network
Kini nga feature makatabang sa pagpalambo sa performance sa network pinaagi sa pagdumala sa umaabot nga trapiko sa epektibong paagi, pagpamenos sa packet loss, pagpaubos sa latency, ug pagpausbaw sa throughput. Nagdala kini sa usa ka mas maayo nga kasinatian sa user ug mas paspas nga pagtubag sa sistema.
Sa kasagaran, kini gipagana sa kadaghanan sa mga operating system sa Linux. Aron masusi ang default nga kantidad:
sysctl net.core.netdev_max_backlog
Ang pinakataas nga bili para sa netdev_max_backlog mahimong magkalahi depende sa mga butang sama sa bersyon sa kernel, hardware, memorya, ug workload. Sa daghang mga kaso, ang 8192 nakita nga usa ka maayong kantidad. sysctl -w net.core.netdev_max_backlog=8192
5.9 Mga Configurasyon ug Pag-tune nga Piho sa Platform
5.9.1 4th Generation Intel® Xeon® Scalable Processors

Ang pagdumala sa gahum sa Intel® 4th Generation Intel® Xeon® Scalable processor hilabihan ka agresibo itandi sa 3rd Generation Intel® Xeon® Scalable processors. Aron malikayan ang mga core gikan sa pagsulod sa ubos nga gahum nga mga estado, sulayi ang pagkunhod sa gidaghanon sa mga core nga gigamit aron sila magpabilin nga magmata ug dugay.
Girekomenda nga Mga Setting sa Bios alang sa Labing Taas nga Pagganap

  1. Hyper-threading enable/disable (base sa workload requirement ug performance goals) sa CPU.
  2. Ibutang ang sistema profile sa Performance para sa pinakataas nga performance.
    NOTA
    Kini moresulta sa mas taas nga konsumo sa kuryente
  3. I-set ang CPU power management ngadto sa Maximum Performance aron unahon ang pinakataas nga performance sa CPU kay sa power efficiency.
  4. I-enable ang Turbo Boost. Ang pag-disable sa Turbo Boost sa sistema sa BIOS settings kasagarang magpugong sa CPU sa dinamikong pagpausbaw sa iyang clock speed lapas sa base frequency niini.
  5. NOTA
    Ang pag-disable sa Turbo Boost mahimong angayan alang sa pipila ka mga kaso sa paggamit diin ang makanunayon nga performance, episyente sa kuryente, o pagdumala sa thermal kay giuna sa pinakataas nga performance.
  6. I-off ang Single Root I/O Virtualization (SR-IOV) feature, kung ang sistema wala mogamit sa virtualization nga mga teknolohiya.
  7. I-disable ang mga C-states aron matudloan ang CPU nga magpabiling aktibo ug mapugngan ang pagsulod sa mas lawom nga idle states.
  8. I-disable ang C1E, aron masiguro nga ang CPU magpabilin nga aktibo ug dili mosulod sa C1E nga walay pulos nga kahimtang.
  9. I-set ang uncore frequency ngadto sa maximum aron pagtudlo sa sistema sa pag-operate sa pinakataas nga available frequency.
  10. Sa mga plataporma sa Dell, ibutang ang Multiple APIC Description Table (MADT) core emulation ngadto sa Linear (o Round-Robin depende sa BIOS) aron makahatag og klaro ug matag-an nga mapping sa mga CPU core.

Girekomenda nga OS Level Tunings para sa Optimized Performance

  1. Ibutang ang CPU frequency scaling governor sa performance. cpupower frequency-set -g performance cpupower frequency-info
  2. I-disable ang C-States. cpupower idle-set -D0
  3. Ibutang ang kinauyokan nga Rx (rmem) ug Tx (wmem) buffers sa kinatas-ang kantidad. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Ibutang ang backlog sa network device. sysctl -w net.core.netdev_max_backlog=8192
  5. I-set tuned profile (nagsalig sa workload para sa throughput/latency).
    tuned-adm profile network-throughput

Girekomendar nga Adapter Level Tunings para sa Optimized Performance

  1. Limitahi ang gidaghanon sa mga pila nga gamiton alang sa trapiko sa aplikasyon. Gamita ang minimum nga gidaghanon sa mga pila nga gikinahanglan aron magpabilin nga aktibo ang mga kaubang CPU cores aron mapugngan sila nga makasulod sa mas lawom nga idle states (adjust para sa workload): ethtool -L gihiusa 32
  2. Itakda ang interrupt moderation rate. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-taas 50 rx-usecs 50 tx-usecs 50
    Sulayi ang pag-adjust sa transmit/receive/high-priority coalescing timer nga mas taas (80/100/150/200) o mas ubos (25/20/10/5) aron makit-an ang labing maayo nga bili para sa workload.
  3. Ibutang ang Rx/Tx nga mga gidak-on sa singsing. ethtool -G rx 4096 tx 4096
    NOTA
    Kung makita nimo ang Rx packet nga nahulog sa ethtool -S| grep drop, sulayi ang pagkunhod sa gidak-on sa singsing ngadto sa <4096. Sulayi ang pagpangita sa labing maayo nga kantidad alang sa workload kung diin ang mga pakete dili ihulog.
  4. Ibutang ang IRQ Affinity. Gamita ang mga core nga lokal ngadto sa NIC, o espesipikong core mapping (diin ang # cores katumbas sa gidaghanon sa mga queues nga gibutang sa 1 sa pahina 26. systemctl stop irqbalance set_irq_affinity -X local O set_irq_affinity -X

5.9.2 AMD EPYC
Ang mga processor sa AMD EPYC kay gamhanang mga CPU nga gihimo para sa mga server ug data center, nga gitukod sa AMD's Zen architecture. Ang ubos nga mga setting gikan sa AMD's 4th generation EPYC series.
Girekomenda nga Mga Setting sa BIOS alang sa Labing Taas nga Pagganap

  1. I-enable ang custom mode aron tugotan ang mga tiggamit sa pag-adjust sa performance sa CPU, konsumo sa kuryente, ug uban pang mga setting. Nakatabang kini sa pag-ayo sa sistema alang sa labing kaayo nga balanse tali sa pasundayag ug kahusayan sa enerhiya.
  2. I-enable ang core performance boost aron tugotan ang CPU nga awtomatik nga madugangan ang iyang katulin sa pagdumala sa mas grabe nga mga buluhaton, pagpalambo sa kinatibuk-ang performance.
  3. I-disable ang global C-state control, aron mapugngan ang CPU nga makasulod sa mas lawom nga power saving states nga nailhang C-states, nga makapadayon sa pagtubag.
    NOTA
    Ang pag-disable sa mga C-state mahimong hinungdan sa dugang nga pagkonsumo sa kuryente ug pagdugang sa temperatura sa init. Pag-monitor sa duha alang sa workload.
  4. I-enable/disable ang Simultaneous Multithreading (SMT) sa CPU, base sa workload requirement ug performance goals. Ang SMT katumbas sa Hyper Threading sa mga Intel CPU.
    NOTA
    Para sa optimized performance, tan-awa ang Tuning i40e Driver Settings sa pahina 13 ug Platform Tuning (i40e Non-Specific) sa pahina 19 para sa girekomendar nga OS ug adapter level tuning.

Pagdugtong sa Adapter

Ang Linux bonding usa ka gamhanan nga bahin nga makapauswag sa performance sa network, redundancy, ug fault tolerance sa server environment. Bisan pa, hinungdanon nga timan-an nga nanginahanglan kini katugma nga hardware sa network ug husto nga pag-configure sa server ug switch aron molihok sa husto.
Ang bonding driver sa Linux nagtugot kanimo sa pag-aggregate sa daghang pisikal nga mga interface sa network ngadto sa usa ka bonded interface. Kini nga bonded interface makita isip usa ka virtual network interface sa operating system ug mga aplikasyon.
NOTA
Ang bugkos usa ka lohikal nga interface, mao nga dili posible nga itakda ang CPU affinity direkta sa interface sa bond (alang sa example, bond0). Sa ato pa, wala kini direktang kontrol sa interrupt handling o CPU affinity. Ang CPU affinity kinahanglang i-configure para sa nagpahiping mga interface nga kabahin sa bond.
Ang pagbugkos naghatag daghang mga paagi sa operasyon, ang matag usa adunay kaugalingon nga mga kinaiya.

Mode  Type
0 Round Robin
1 Aktibo nga Pag-backup
2 XOR
3 Sibya
4 LACP
5 Ipadala ang Balanse sa Load
6 Adaptive Load Balanse

Adunay lain-laing mga pamaagi sa paghimo sa usa ka bonding sa Linux. Usa sa labing komon nga mga paagi mao ang paggamit sa network configuration files (alang sa example, /etc/network/ interface o /etc/sysconfig/network-scripts/ifcfg-bondX).
Configuration Gamit ang Network Configuration Files
Ang mosunud nga mga lakang naghimo og bonding pinaagi sa pag-configure sa network files.

  1. Pagpili og duha o daghan pang NIC port para sa bonding (alang sa example, ethX ug ethY)
  2. Ablihi ang NIC Configuration Files ubos sa /etc/sysconfig/network-scripts/ para sa gikinahanglan nga NIC Interface (alang sa example, vi ifcfg-ethX ug vi ifcfg-ethY) ug idugang ang mosunod nga teksto:
    MASTER=bondN [Note: N maoy integer nga maghisgot sa bond number.] SLAVE=oo
  3. Paghimo og script sa bond network file gamit ang vi /etc/sysconfig/networkscripts/ifcfg-bondN ug isulod ang mosunod nga teksto:
    DEVICE=bondN [Note: N maoy integer nga maghisgot sa bond number] ONBOOT=oo USERCTL=no BOOTPROTO=dhcp (o) none
    IPADDR=200.20.2.4 [kinahanglan kung BOOTPROTO=wala] NETMASK=255.255.255.0 [kinahanglan kung BOOTPROTO=walay] NETWORK=200.20.2.0 [kinahanglan kung BOOTPROTO=wala] BROADCAST=200.20.2.255. BONDING_OPTS=”mode=1 miimon=100″
    NOTA
    Ang mode mahimong bisan unsang integer gikan sa 0 hangtod 6 base sa kinahanglanon.
  4. I-restart ang network services gamit ang service network restart o systemctl restart NetworkManager.service

Pagsulbad sa Kasamok sa Pagganap

7.1 Paggamit sa CPU
Susiha ang paggamit sa CPU kada core samtang nagdagan ang workload.
Timan-i nga ang paggamit matag kinauyokan mas may kalabotan sa pasundayag kaysa sa kinatibuk-ang paggamit sa CPU tungod kay naghatag kini usa ka ideya sa paggamit sa CPU matag pila sa network. Kung ikaw adunay pipila ra nga mga thread nga nagpadagan sa trapiko sa network, nan mahimo ka nga adunay pipila ra nga mga cores nga gigamit. Bisan pa, kung ang mga cores naa sa 100%, nan ang imong network throughput lagmit limitado sa paggamit sa CPU ug oras na aron himuon ang mga musunud:

  1. I-tune ang IRQ moderation/ring size nga detalyado sa Interrupt Moderation.
  2. Dugangi ang gidaghanon sa mga thread sa aplikasyon aron ipakaylap ang load sa CPU sa daghang mga core. Kung ang tanan nga mga cores nagdagan sa 100% nan ang imong aplikasyon mahimong CPU bound kaysa network bound.

Kasagaran nga magamit nga mga himan:

  • ibabaw
    — Pindota ang 1 aron mapalapad ang lista sa mga CPU ug susihon kung kinsa ang gigamit.
    - Matikdi ang lebel sa paggamit.
    — Matikdi kung unsang mga proseso ang gilista nga labing aktibo (ibabaw sa lista).
  • mpstat
    Ang mosunod nga example command line gisulayan sa Red Hat Enterprise Linux 7.x.
    Gipakita niini ang paggamit sa CPU matag core (pinaagi sa pagpangita sa kinatibuk-ang porsyento nga walay trabaho ug pagkubkob gikan sa 100) ug gipasiugda ang mga kantidad nga labaw sa 80% nga pula. mpstat -P TANAN 1 1 | grep -v Average | ikog -n +5 | ulo -n -1 | awk '{ print (100-$13)}' | egrep -color=kanunay '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | kolum
  • perf top Pangitaa kung asa gigasto ang mga siklo.

7.2 i40e nga mga Counter
Ang i40e driver naghatag ug taas nga listahan sa mga counter para sa interface debug ug monitoring pinaagi sa ethtool -S ethX command. Makatabang ang pagtan-aw sa output samtang nagdagan ang workload ug/o itandi ang counter values ​​sa wala pa ug pagkahuman sa workload run.

  • Aron makakuha og bug-os nga dump sa i40e counter: ethtool -S ethX
  • Sa pagtan-aw lang sa dili-zero nga mga counter: watch -d (ethtool -S ethX) | egrep -v :\ 0 | kolum
    Pipila ka mga butang nga pangitaon:
  • Ang rx_dropped nagpasabot nga ang CPU dili igo nga nagserbisyo sa mga buffer.
  • port.rx_dropped nagpasabot nga adunay dili igo nga paspas sa slot/memorya/ system.

7.3 Mga Kontra sa Network
Susiha ang netstat -s sa wala pa/human sa usa ka workload run.
Gikolekta sa Netstat ang kasayuran sa network gikan sa tanan nga mga aparato sa network sa sistema. Busa, ang mga resulta mahimong maapektuhan gikan sa mga network gawas sa network nga gisulayan. Ang output gikan sa netstat -s mahimong maayong timailhan sa mga isyu sa performance sa Linux operating system o kernel. Konsultaha ang mga giya sa pag-tune sa operating system, sama sa Red Hat Enterprise Linux Network Performance Tuning Guide, para sa dugang pagsabot sa general operating system tuning.
7.4 Mga Log sa Sistema
Susiha ang mga log sa sistema alang sa mga sayup ug mga pasidaan (/var/log/message, dmesg).
7.5 Intel svr-info Tool
Naghatag ang Intel og svr-info tool (tan-awa https://github.com/intel/svr-info) para sa Linux nga nagkuha sa may kalabutan nga mga detalye sa hardware ug software gikan sa usa ka server. Ang output sa svr-info mahimong makatabang kaayo sa pag-ila sa mga bottleneck sa sistema o mga setting/tuning nga wala ma-optimize para sa workload. Kung nagbukas sa usa ka kaso sa suporta sa Intel alang sa mga isyu sa performance nga may kalabutan sa Ethernet, siguroha nga ilakip ang svr-info output (text file) alang sa matag server sa Linux sa pagsumpo sa pagsulay.

  1. I-download ug i-install ang svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > hostname.txt
  2. Kolektaha ang output:
    ./svr-info > hostname.txt
  3. I-attach ang usa ka text (.txt) file alang sa matag server sa imong kaso sa suporta sa Intel alang sa pagtuki.

Mga Rekomendasyon para sa Komon nga Mga Sitwasyon sa Pagganap

8.1 IP Pagpasa

  • I-update ang kernel.
    Ang pipila ka bag-o nga in-distro kernels nakadaot sa routing performance tungod sa mga pagbag-o sa kernel sa routing code sugod sa pagtangtang sa routing cache tungod sa seguridad. Ang bag-o nga out-of-distro kernels kinahanglan adunay mga patch nga makapagaan sa epekto sa performance niini nga mga pagbag-o ug mahimong makahatag og mas maayo nga performance.
  • I-disable ang hyper-threading (logical cores).
  • I-edit ang mga parameter sa kernel boot.
    — Puwersa iommu off (intel_iommu=off o iommu=off) gikan sa kernel boot line gawas kon gikinahanglan alang sa virtualization
    — Ipalong ang pagdumala sa kuryente: processor.max_cstates=1 idle=poll pcie_aspm=off
  • Limitahi ang gidaghanon sa mga pila nga mahimong katumbas sa gidaghanon sa mga core sa lokal nga socket (12 niini nga example). ethtool -L ethX gihiusa 12
  • Pin interrupts sa lokal nga socket lamang. set_irq_affinity -X lokal nga ethX O set_irq_affinity -X lokal nga ethX
    NOTA
    -X o -x mahimong gamiton depende sa workload.
  • Usba ang Tx ug Rx nga mga gidak-on sa singsing kon gikinahanglan. Ang mas dako nga kantidad nagkinahanglan og dugang nga mga kapanguhaan apan makahatag og mas maayo nga mga rate sa pagpasa. ethtool -G ethX rx 4096 tx 4096
  • I-disable ang GRO kung mag-routing.
    Tungod sa usa ka nahibal-an nga isyu sa kernel, ang GRO kinahanglan nga i-off kung mag-routing/forwarding. ethtool -K ethX gro off diin ang ethX mao ang Ethernet interface nga usbon.
  • I-disable ang adaptive interrupt moderation ug itakda ang static nga bili. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

NOTA
Depende sa matang sa processor ug workload, ang coalescing parameters para sa RX ug TX mahimong i-adjust para sa mas maayo nga performance (o mas gamay nga frame loss).

  • I-disable ang firewall. sudo systemctl disable firewalld sudo systemctl stop firewalld
  • I-enable ang IP forwarding. sysctl -w net.ipv4.ip_forward=1
  • I-configure ang labing taas nga kantidad alang sa pagdawat ug pagpadala sa mga gidak-on sa socket buffer. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

NOTA
Depende sa workload o kinahanglanon, kini nga mga kantidad mahimong usbon gikan sa default.
8.2 Ubos nga Latency

  • I-OFF ang hyper-threading (logical cores).
  • Siguroha nga ang network device kay lokal sa numa core 0.
  • I-pin ang benchmark sa core 0 gamit ang taskset -c 0.
  • I-off ang irqbalance gamit ang systemctl stop irqbalance o systemctl disable irqbalance
  • Pagdalagan ang affinity script aron mokaylap sa mga cores. Sulayi ang lokal o tanan.
  • I-off ang interrupt moderation. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- taas 0
  • Limitahan ang gidaghanon sa mga pila nga katumbas sa gidaghanon sa mga core sa lokal nga socket (32 sa kini nga example). ethtool -L ethX gihiusa 32
  • Pin interrupts sa lokal nga socket lamang (script packaged uban sa i40e drayber tinubdan). set_irq_affinity -X lokal nga ethX
  • Gamit ug natukod nga benchmark sama sa netperf -t TCP_RR, netperf -t UDP_RR, o NetPipe. netperf -t TCP_RR o netperf -t UDP_RR
  • I-pin ang benchmark sa usa ka core sa lokal nga NUMA node. buluhaton -c

Intel® Ethernet 700 Series
Linux Performance Tuning Guide
Disyembre 2024
Dok. Num.: 334019, Pin.: 1.2

Mga Dokumento / Mga Kapanguhaan

Intel Ethernet 700 Series Linux Performance Tuning [pdf] Giya sa Gumagamit
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Mga pakisayran

Pagbilin ug komento

Ang imong email address dili mamantala. Ang gikinahanglan nga mga natad gimarkahan *