Serio Intel® Ethernet 700
Linuksa Efikeco-Agorda Gvidilo
NEX Cloud Networking Group (NCNG)
Rev. 1.2
decembro 2024
Historio de Revizio
Revizio | Dato | Komentoj |
1.2 | decembro 2024 | · Aldonita Plia Potenca Administrado-Gvidado. · Aldonita Intel* Turbo Boost. · Aldonita Reta Aparato Backlog. · Aldonitaj Platform-Specifikaj Agordoj kaj Agordado. · Aldonita 4-a Generacio Intel* %eon* Skaleblaj Procesoroj. · Aldonita AMD EPYC. · Ĝisdatigita Kontrolo Sistemo Aparataro Kapabloj. · Ĝisdatigita iPerf2. · Ĝisdatigita iPerf3. · Ĝisdatigitaj Tx/Rx Queues. · Ĝisdatigita Interrompa Moderigo. · Ĝisdatigita Ringa Grandeco. · Ĝisdatigita Platforma Agordo (i40e Ne-Specifika). · Ĝisdatigitaj BIOS-Agordoj. · Ĝisdatigita C-Ŝtata Kontrolo. · Ĝisdatigita CPU Frekvenca Skalado. · Ĝisdatigitaj Aplikaj Agordoj. · Ĝisdatigita Operaciumo/Kerno-Agordoj. · Ĝisdatigita IP-Plusendado. · Ĝisdatigita Malalta Latenco. |
Aŭgusto 2023 | Ŝanĝoj al ĉi tiu dokumento inkluzivas: · Aldonitaj Rilataj Referencoj. · Aldonita Certigu, ke DDP-Pako Ĝuste Ŝarĝas. · Aldonita iPerf2. · Aldonita iPerf3. · Aldonita netperf. · Ĝisdatigita IRQ-Afineco. · Aldonitaj Tx/Rx Queues. · Ĝisdatigita Ringa Grandeco. · Aldonita Jumbo Kadroj. · Aldonita Adaptila Ligado. · Aldonita Intel svr-info Ilo. |
|
1.0 | marto 2016 | Komenca Eldono (Intel Public). |
Enkonduko
Ĉi tiu gvidilo celas provizi gvidon por agordi mediojn por optimuma interreta rendimento uzante Intel® Ethernet 700 Series NICs en Linukso-medioj. Ĝi temigas aparataron, ŝoforon kaj operaciumajn kondiĉojn kaj agordojn, kiuj povus plibonigi retan rendimenton. Oni devas rimarki, ke interkonekta rendimento povas esti tuŝita de ajna nombro da eksteraj influoj, nur la plej oftaj kaj dramaj el ĉi tiuj estas kovritaj en ĉi tiu gvidilo.
1.1 Rilataj Referencoj
- Uzantgvidilo por ĉiuj Intel® Ethernet-adaptiloj kaj aparatoj, subtenantaj Vindozon kaj Linukso:
Intel ® Ethernet-Adaptiloj kaj Aparatoj Uzantgvidilo - Teknika Datumo:
Datenfolio de Intel® Ethernet Controller X710/XXV710/XL710 - Kompleta SW-pakaĵo por ĉiuj produktoj Intel® Ethernet (elŝutu ĉiujn ŝoforojn, NVM-ojn, ilojn ktp.):
Kompleta Ŝofor-Pako de Intel® Ethernet Adapter - Ĝisdatiga Pako de NVM (Ne Volatila Memoro):
Ĝisdatiga Utilo de Ne-Volatile Memory (NVM) por Intel® Ethernet Network Adapter 700 Series - svr-info-ilo por Linukso, kiu kaptas koncernajn aparataron kaj softvarajn detalojn de servilo: https://github.com/intel/svr-info
- Gvidilo pri Teknologio DDP:
Teknologia Gvidilo de Intel® Ethernet 700 Series Dynamic Device Personalization (DDP).
Komenca Kontrollisto
2.1 Ĝisdatigu Versiojn de Ŝofor/Firmware
Kontrolu la ŝoforajn/firmware versiojn uzante ethtool -i ethx.
Ĝisdatigu la jenajn laŭbezone:
- Ĝisdatigu i40e-ŝoforon
http://sourceforge.net/projects/e1000/files/i40e%20stable/ or https:// downloadcenter.intel.com/ download/24411/Network-Adapter-Driver-for-PCI-E-40- Gigabit-Network-Connections-under-Linux - Ĝisdatigu firmware
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel-Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Legu la README
Kontrolu konatajn problemojn kaj ricevu la plej novajn agordajn instrukciojn de la README file inkluzivita en la fontpakaĵo i40e.
2.3 Kontrolu, ke Via PCI Express (PCIe) Slot Estas x8
Kelkaj PCIe x8-fendoj estas fakte agorditaj kiel x4-fendoj. Ĉi tiuj fendoj havas nesufiĉan bendolarĝon por plena linio-rapideco kun duoblaj havenaj kaj kvaroblaj aparatoj. Krome, se vi metas PCIe v3.0-kapablan adaptilon en PCIe v2.x-fendeton, vi ne povas akiri plenan bendolarĝon. La programara aparato-ŝoforo detektas ĉi tiun situacion kaj skribas la sekvan mesaĝon en la sistema protokolo:
PCI-Express bendolarĝo disponebla por ĉi tiu karto ne sufiĉas por optimuma rendimento. Por optimuma rendimento necesas fendo x8 PCI-Express.
Se ĉi tiu eraro okazas, movu vian adaptilon al vera PCIe v3.0 x8 slot por solvi la problemon.
2.4 Kontrolu Sistemo-Aparataro Kapablojn
Je 10 Gbps, 25 Gbps kaj 40 Gbps Ethernet, ekzistas iuj minimumaj CPU- kaj sistemaj postuloj. Ĝenerale, moderna servila klasprocesoro kaj optimuma memoragordo por via platformo devus sufiĉi, sed la bezonoj varias depende de via laborkvanto. Ĉiuj memorkanaloj devas esti plenigitaj kaj memora agado-reĝimo estu ebligita en la BIOS. Kontrolu, ke via CPU kaj memora agordo kapablas subteni la nivelon de reto-agado, kiun vi postulas por via laborkvanto.
NOTO
La XL710 estas 40 GbE-regilo. La 2 x 40 GbE-adaptilo uzanta ĉi tiun regilon ne intencas esti 2 x 40 GbE sed 1 x 40 GbE kun aktiva rezerva haveno. Kiam oni provas uzi linio-rapidan trafikon engaĝante ambaŭ havenojn, la interna ŝaltilo estas saturita kaj la kombinita bendolarĝo inter la du havenoj estas limigita al totalo de SO Gbps.
2.4.1 Parametroj de Ekfunkciigo de Kerno
Se Intel® Virtualization Technology for Directed I/O (Intel® VT-d) estas ebligita en la BIOS, Intel rekomendas ke IOMMU estu en trapasa reĝimo por optimuma gastiga reto-rendimento. Ĉi tio forigas DMA-superkoston pri gastiga trafiko ebligante Virtualajn Maŝinojn (VMs) daŭre havi la avantaĝojn de Intel® VT-d. Ĉi tio estas plenumita aldonante la sekvan linion al la kernaj lanĉaj parametroj: fommu-pt.
2.5 Certigu, ke DDP-Pako Ĝuste Ŝarĝas
140ea kaj 140eb bazŝoforoj ne havas rektan subtenon por Dinamika Aparato-Personigo (DDP). Por uzi DDP kun aparatoj de la Serio 700, DDP-profesiulofile povas esti aplikata per la aplikaĵo testpmd.
Por detaloj pri DDP profiles, kaj kiel apliki DDP-profesiulofile kun testpmd sur aparatoj de la Serio 700, raportu al la Teknologia Gvidilo Intel® Ethernet 700 Serio Dinamika Personigo (DDP).
Por kontroli ĉu DDP-profesiulofile estis ŝarĝita sukcese:
testpmd> ddp akiri liston 0 Profile nombro estas: 1
NOTO
Se la profesiulofile numero estas 0, neniu DDP-pakaĵo estas ŝarĝita. Okaze de eraro pri ŝarĝo de DDP-pakaĵo, la aparato defaŭlte al sekura reĝimo kaj multaj agado-funkcioj ne estas disponeblaj. Se estas eraroj rilataj al ŝarĝo de la DDP-pakaĵo, ĝi kaŭzos rendimentajn problemojn. Por solvi problemojn, raportu al la Teknologia Gvidilo Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP).
Bazlinio-Efikeco-Mezuradoj kaj Agordado-Metodologio
3.1 Retaj Efikeco-Komarkoj
Antaŭ ol komenci agordan ekzercon, gravas havi bonan bazlinian mezuron de via reto-rendimento. Kutime krom ricevi komencan mezuradon de la rendimento de via specifa aplikaĵo/laborŝarĝo, estas bona ideo ankaŭ uzi norman retan rendimenton por kontroli, ke via reta aparato estas en bona stato.
Por ununura sistema optimumigo, netperf aŭ iperf kaj NetPIPE estas ĉiuj solidaj malfermfontaj senpagaj iloj, kiuj ebligas vin emfazi konekton kaj diagnozi rendimentajn problemojn.
Netperf estas forta por provoj de kaj trairo kaj latencia testado. NetPIPE estas latenta specifa ilo sed povas esti kompilita por ia medio.
NOTO
La TCP_RR-testo en netperf redonas latentecon en valoro de transakcioj/sek. Ĉi tio estas rondvetura nombro. La unudirekta latenco povas esti kalkulita uzante la sekvan ekvacion:
Latenteco (usec) = (1⁄2) / [Transakcioj/sec] * 1,000,000
3.1.1 iPerf2
Intel rekomendas iperf2 super iperf3 por plej multaj benchmark-situacioj pro la facileco de uzo kaj subteno de multoblaj fadenoj en ununura aplikaĵo. Intel rekomendas kuri kun la opcio -P kun 2-4 fadenoj por 25G-konektoj kaj ĉirkaŭ 4-6-fadenoj por 40G-konektoj.
- Por funkciigi unudirektan trafikon de kliento al servilo: Servila komando ekzample: iperf2 -s
Klienta komando ekzample: iperf2 -c -P - Por funkciigi dudirektan trafikon de kliento al servilo (kaj inverse): Servila komando ekzample: iperf2 –s –p
Klienta komando ekzample:
iperf2 -c -p -P -–full-duplex AŬ
iperf2 -c -p -P –d
NOTO
Ambaŭ la opcioj -full-duplex kaj -d en iperf2 permesas al uzanto fari dudirektan testadon. Tamen, –full-duplex opcio specife temigas plendupleksan testadon.
NOTO
Dum testado de iperf2 tra pluraj servilaj havenoj, la -d flago povas esti aldonita al la servila komando por ruli ĉiujn servilsesiojn en la fono de la sama fina fenestro. La -d flago ankaŭ povas esti uzata kiam la servila komando estas enigita en for-buklo en skripto.
NOTO
Kiam oni rulas la retan trafluan teston kun ununura fluo/fadeno (ekzample: P1), AMD-procesoroj eble ne disponigas atenditan trairon, precipe pli altajn bendolarĝajn NIC-ojn (se rapideco estas >= 25G-bendolarĝo). Kiel rezulto, aplikaĵo alpinglado al specifaj kernoj estas postulata por atingi pli altan trairon. Vidu Aplikaj Agordoj sur paĝo 22.
3.1.2 iPerf3
Se iperf3 estas uzata, pluraj okazoj de la aplikaĵo estas postulataj por utilitage de la multfadenoj, RSS kaj aparataj atendovicoj. Intel rekomendas funkcii kun la 2-4 aplikaĵsesioj por 25G-konektoj kaj ĉirkaŭ 4-6-sesioj por 40G-konektoj. Ĉiu sesio devus specifi unikan TCP-portvaloron uzante la opcion -p.
- Por funkciigi unudirektan trafikon de kliento al servilo:
Servila komando ekzample:
iperf3 -s -p
Klienta komando ekzample:
iperf3 -c -p - Por funkciigi dudirektan trafikon de kliento al servilo (kaj inverse):
Servila komando ekzample:
iperf3 –s –p
Klienta komando ekzample: iperf3 -c -p -P –-bidir - Por komenci plurajn okazojn (fadenojn) de iperf3, la rekomendo estas uzi for-buklon por mapi fadenojn al TCP-havenoj kaj ruli iperf3 en la fono uzante & por krei plurajn procezojn paralele.
Servila komando ekzample, komencu 4 fadenojn: port=""; por i en {0..3}; do haveno=520$i; bash -c “iperf3 -s -p $haveno &”; farita; Klienta komando ekzample, start 4 fadenoj – Transsendi testhavenon=””; por i en {0..3}; do haveno=520$i; bash -c “iperf3 -c $serviloIP -p $haveno &”; farita; Klienta komando ekzample, start 4 fadenoj – Ricevu testan havenon=""; por i en {0..3}; do haveno=520$i; bash -c “iperf3 -R -c $serviloIP -p $haveno &”; farita; Por 40G-konektoj, pliigu la for-buklon por krei ĝis 6 okazojn/fadenojn.
NOTO
Kiam oni rulas la retan trafluan teston kun ununura fluo/fadeno (ekzample: P1), AMD-procesoroj eble ne disponigas atenditan trairon, precipe pli altan bendolarĝon
NICoj (se rapideco estas >= 25G bendolarĝo). Kiel rezulto, aplikaĵo alpinglado al specifaj kernoj estas postulata por atingi pli altan trairon. Vidu Aplikaj Agordoj sur paĝo 22 kaj AMD EPYC sur paĝo 26.
3.1.3 netperf
La netperf-ilo estas forta elekto por provoj de kaj trairo kaj latencia testado.
- La TCP_STREAM-testo en netperf mezuras la traigajn kapablojn de la aparato. Servila komando ekzample: netserver Klienta komando ekzample: netperf -t TCP_STREAM -l 30 -H
- La TCP_RR-testo en netperf redonas latentecon en valoro de transakcioj/sekundo. Ĉi tio estas rondvetura nombro. Oni rekomendas uzi la opcion -T x,x, se x estas CPU loka al la aparato. La unudirekta latenco povas esti kalkulita uzante: Latencia (usec)=(1⁄2)/ [Transakcioj/sec]*1,000,\ Servila komando eksample: netservilo
Klienta komando ekzample: netperf -t TCP_RR -l 30 -H -T x,x - Por komenci plurajn okazojn (fadenojn) de netperf, la rekomendo estas uzi for-buklon por mapi fadenojn al TCP-havenoj kaj ruli netperf en la fono uzante & por krei plurajn procezojn paralele.
Servila komando ekzample, komencu 8 fadenojn:
haveno=””; por i en {0..7}; do haveno=520$i; bash -c “netservilo -L $serviloIP -p $haveno &”; farita;
Klienta komando ekzample, komenci 8 fadenojn: port=""; por i en {0..7}; do haveno=520$i; bash -c “netperf -H $serviloIP -p $haveno -t TCP_STREAM -l 30 &”; farita;
3.2 Agorda Metodologio
Fokusu unu agordan ŝanĝon samtempe, por ke vi sciu kian efikon havas ĉiu ŝanĝo al via testo. Ju pli metoda vi estas en la agorda procezo, des pli facile estos identigi kaj trakti la kaŭzojn de rendimento-protokolo.
Agordante i40e-ŝoforajn agordojn
4.1 IRQ-Afineco
Agordi IRQ-afinecon tiel ke interrompoj por malsamaj retaj atendovicoj estas afinigitaj al malsamaj CPU-kernoj povas havi grandegan efikon al efikeco, precipe multifadenaj trairaj testoj.
Por agordi IRQ-afinecon, ĉesigu irqbalance kaj tiam aŭ uzu la set_irq_affinity-skripton de la fontpakaĵo de i40e aŭ alpinglu vostojn permane. Malŝaltu uzantspacan IRQ-balancilon por ebligi la alpinglado de vostovicoj:
- systemctl malŝalti irqbalance
- systemctl haltigi irqbalance
Uzante la set_irq_affinity-skripton de la fontpakaĵo i40e (rekomendita): - Por uzi ĉiujn kernojn:
[path-to-i40epackage]/scripts/set_irq_affinity -X ĉiuj ethX - Por uzi nur kernojn sur la loka NUMA ingo: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Vi ankaŭ povas elekti gamon da kernoj. Evitu uzi cpu0 ĉar ĝi rulas temporizajn taskojn. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
NOTO
La afinecskripto ebligas Transmit Packet Steering (XPS) kiel parto de la alpingla procezo kiam la opcio -x estas specifita. Kiam XPS estas ebligita, Intel rekomendas, ke vi malŝaltu irqbalance, ĉar la kernelbalancilo kun XPS povas kaŭzi neantaŭvideblan rendimenton. La afinca skripto malŝaltas XPS kiam la opcio -X estas specifita. Malebligi XPS kaj ebligi simetriajn atendovicojn estas utila por laborkvantoj kie plej bona rendimento estas atingita kiam Tx kaj Rx-trafiko estas servita sur la sama vicoparo(j).
Agordi simetriajn atendovicojn en Linukso implikas agordi la retajn interfacajn ŝoforparametrojn por ebligi simetriajn ricevvicojn (Rx) kaj simetriajn elsendajn atendovicojn (Tx) por subtenataj retadaptiloj.
NOTO
- Simetriaj vostoj estas altnivela interkonekta funkcio, kaj ne ĉiuj retadaptiloj aŭ ŝoforoj de 700 serioj subtenas ilin.
- Certigu, ke vi havas la necesan ŝoforon kaj aparataron subtenon antaŭ provi agordi simetriajn atendovicojn.
Por agordi simetriajn atendovicojn, sekvu ĉi tiujn ĝeneralajn paŝojn:
- Redakti Retan Interfacon-Agordon File: Uzu tekstredaktilon (ekzample, vi, nano aŭ gedit) por redakti la retan interfacon agordon file. La file estas kutime situanta sub la dosierujo /etc/sysconfig/network-scripts/ kaj havas nomon kiel ifcfg-ethX, kie ethX estas la nomo de via retinterfaco.
- Aldonu Simetriajn Vidovicajn Parametrojn. Aldonu la sekvajn liniojn al la agordo de la reto-interfaco file: ETHTOOL_OPTS=”rx-vostoj 8 tx-vostoj 8″
- Rekomencu Retan Servon.
Post fari la ŝanĝojn, rekomencu la retan servon por apliki la novan agordon. sudo systemctl rekomencu reton
Mane:
-
Trovu la procesorojn ligitajn al ĉiu nodo uzante: numactl –hardware lscpu
-
Trovu la bitajn maskojn por ĉiu el la procesoroj:
- Supozante kernojn 0-11 por nodo 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Trovu la IRQ-ojn asignitajn al la haveno asignita: grep ethX /proc/interrupts kaj notu la IRQ-valorojn Ekz.ample, 181-192 por la 12 vektoroj ŝarĝitaj.
- Eĥu la SMP-afinecvaloron en la ekvivalentan IRQ-eniron. Notu, ke tio devas esti farita por ĉiu IRQ-eniro: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Montri IRQ-afinecon:
- Por montri la IRQ-afinecon por ĉiuj kernoj: /scripts/set_irq_affinity -s ethX
- Por montri nur kernojn sur la loka NUMA ingo: /scripts/set_irq_affinity -s loka ethX
- Vi ankaŭ povas elekti gamon da kernoj: /scripts/set_irq_affinity -s 40-0-8,16 ethX
NOTO
La set_irq_affinity-skripto subtenas la -s-flagon en i40e-ŝoforversio 2.16.11 kaj poste.
4.2 Tx/Rx vostoj
La defaŭlta nombro da atendovicoj ebligitaj por ĉiu Ethernet-haveno fare de la ŝoforo ĉe inicialigo estas egala al la tutsumo de CPUoj haveblaj en la platformo. Ĉi tio funkcias bone por multaj platformoj kaj laborŝarĝaj agordoj. Tamen, en platformoj kun altaj kernkalkuloj kaj/aŭ alta Ethernet-havendenso, tiu agordo povas kaŭzi rimeddisputon. Tial, eble en iuj kazoj necesus modifi la defaŭltan por ĉiu haveno en la sistemo.
La defaŭlta nombro da Tx/Rx-vostoj povas varii dependi de la specifa modelo kaj ŝoforversio. La nombro da vostoj povas esti ĝustigita per la komando ethtool -L listigita sube.
NOTO
En ĉi tiuj kazoj, Intel rekomendas ke vi reduktu la defaŭltan atendovickalkulon por ĉiu haveno al ne pli ol la nombro da CPUoj disponeblaj en la NUMA-nodo loka al la adaptila haveno. En iuj kazoj, kiam vi provas ekvilibrigi rimedojn sur efektivigoj de alta haveno-kalkulo, eble estos necese redukti ĉi tiun nombron eĉ plu.
Por modifi la agordon de vostovico:
La sekva ekzample fiksas la havenon al 32 Tx/Rx vostoj: ethtool -L ethX kombinita 32
Example eligo:
ethtool -l ethX
Kanalaj parametroj por ethX: Antaŭfiksitaj maksimumoj:
RX: 96
TX: 96
Aliaj: 1
Kombinitaj: 96
Nunaj aparataj agordoj:
RX: 0
TX: 0
Aliaj: 1
Kombinitaj: 32
4.3 Interrompa Moderigo
Adapta interrompa moderigo estas aktiva defaŭlte, kaj estas dizajnita por disponigi ekvilibran aliron inter malalta CPU-uzado kaj alta rendimento. Tamen, vi eble provu agordi interrompajn agordojn permane por konveni vian uzkazon.
La intervalo de 0-235 mikrosekundoj disponigas efikan gamon de 4,310 ĝis 250,000 interrompoj je sekundo. La valoro de rx-μsecs-high povas esti agordita sendependa de rx-μsecs kaj tx-μsecs en la sama ethtool-komando, kaj ankaŭ estas sendependa de la adapta interrompa moderiga algoritmo. La subesta aparataro subtenas granularecon en intervaloj de 2 mikrosekundoj, do apudaj valoroj povus rezultigi la saman interrompan indicon.
- Por malŝalti adaptan interrompan moderigon: ethtool -C ethX adaptive-rx off adaptive-tx off
- Por ŝalti adaptan interrompan moderigon: ethtool -C ethX adaptive-rx on adaptive-tx on
Bona loko por komenci por ĝenerala agordado estas 84 μs, aŭ ~12000 interrompoj/s. Se vi vidas, ke rx_dropped nombriloj funkcias dum trafiko (uzante ethtool -S ethX), tiam vi verŝajne havas tro malrapidan CPU, ne sufiĉajn bufrojn de la ringograndeco de la adaptilo (ethtool -G) por teni pakaĵetojn por 84 μs aŭ al malalta interrompa indico.
- Por agordi interrompan moderigon al fiksa interromporapideco de 84 μs inter interrompoj (12000 interrompoj/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 La sekva valoro por provi, se vi ne estas maksimuma je CPU-uzado, estas 62 μs. Ĉi tio uzas pli da CPU, sed ĝi servas bufrojn pli rapide, kaj postulas malpli da priskribiloj (ringa grandeco, ethtool -G).
- Por agordi interrompan moderigon al fiksa interrompa indico de 62 uzoj inter interrompoj (16000 interrompoj/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Se rx_dropped nombriloj pliiĝas dum trafiko (uzante ethtool -S ethX), vi verŝajne havas tro malrapidan CPU, ne sufiĉajn bufrojn de la ringograndeco de la adaptilo (ethtool -G), aŭ tro malaltan interrompon. Se vi ne estas maksimuma pri CPU-uzado, vi povas pliigi la interrompan indicon malaltigante la ITR-valoron. Ĉi tio uzas pli da CPU, sed servoj bufras pli rapide, kaj postulas malpli da priskribiloj (ringa grandeco, ethtool -G).
Se via CPU estas je 100%, tiam pliigi la interrompan indicon ne estas konsilita. En certaj cirkonstancoj kiel CPU-ligita laborkvanto, vi eble volas pliigi la μs-valoron por ebligi pli da CPU-tempo por aliaj aplikoj.
Se vi postulas malaltan latentecan agadon kaj/aŭ havas multe da CPU por dediĉi al reto-prilaborado, vi povas tute malŝalti interrompan moderigon, kio ebligas al la interrompoj pafi kiel eble plej rapide. - Por malŝalti interrompan moderecon ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
NOTO
Dum funkciado kun interrompa moderigo malebligita, la interrompa indico sur ĉiu atendovico povas esti tre alta. Konsideru inkluzivi la parametron rx-usec-high por agordi supran limon por interrompa indico. La sekva komando malŝaltas adaptan interrompan moderigon kaj permesas maksimume 5 mikrosekundojn antaŭ ol indiki ke ricevo aŭ elsendo estis kompleta. Anstataŭ rezultigi eĉ 200,000 interrompojn je sekundo, ĝi limigas totalajn interrompojn je sekundo al 50,000 per la rx-usec-alta parametro. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Provu ĝustigi la elsendi/ricevon/altprioritan kunfluan tempigilon pli altan (80/100/150/200) aŭ malpli altan (25/20/10) aŭ pli malaltan (5/XNUMX/XNUMX) por trovi optimuman valoron por laborŝarĝo.
4.4 Ringo Grandeco
Se vi vidas rx_dropped nombrilojn en ethtool -S ethX (rx_dropped, rx_dropped.nic), aŭ suspektas kaŝmemorpremon kun pluraj vostoj aktivaj, vi eble provu ĝustigi la ringograndecon de la defaŭlta valoro. La defaŭlta valoro estas 512, la maksimumo estas 4096.
- Por kontroli la aktualajn valorojn: ethtool -g ethX
Se oni suspektas, ke manko de bufro kaŭzas falojn ĉe la nuna interrompa indico, vi eble provu la maksimumon unue, poste la minimumon, poste daŭrigu en binara serĉo ĝis vi vidos optimuman rendimenton.
Se oni suspektas kaŝmemorpremon (multaj vicoj aktivaj) redukti bufrojn de defaŭlto povas helpi al Intel® Data Direct I/O (Intel® DDIO) funkcii pli bone efike. Intel rekomendas provi 128 aŭ 256 per atendovico, konsciante, ke pliiĝo de interrompa indico per ethtool -C eble estos necesa por eviti pliiĝon de rx_dropped. - Por agordi ringan grandecon al fiksa valoro: ethtool -G eth12 rx 256 tx 256
NOTO
Por ripari Rx-pakaĵetojn trovitajn kun ethtool -S ethX|grep drop, konsideru pliigi la ringan grandecon al 4096. Eksperimu por trovi la plej bonan agordon por la laborkvanto sed atentu pri troa memoruzado kun pli altaj valoroj.
4.5 Fluokontrolo
Fluokontrolo de Tavolo 2 povas konsiderinde efiki TCP-efikecon kaj rekomendas esti malŝaltita por plej multaj laborŝarĝoj. Ebla escepto estas eksploda trafiko kie la eksplodoj ne estas longaj en tempodaŭro.
Fluokontrolo estas malŝaltita defaŭlte.
- Por ebligi flukontrolon: ethtool -A ethX rx on tx on
- Por malŝalti fluokontrolon: ethtool -A ethX rx off tx off
NOTO
Vi devas havi kapablan ligan partneron de fluoregado por sukcese ebligi fluoregadon.
4.6 Jumbo Kadroj
Kiam la atendata trafika medio konsistas el grandaj blokoj de datumoj translokigitaj, eble estus utile ebligi la funkcion de jumbo-framo. Jumbo Frames-subteno estas ebligita ŝanĝante la Maksimuman Transmision-Unuon (MTU) al valoro pli granda ol la defaŭlta valoro de 1500. Ĉi tio permesas al la aparato transdoni datumojn en pli grandaj pakoj ene de la retomedio. Ĉi tiu agordo eble plibonigos trairon kaj reduktos CPU-uzadon por grandaj I/O-laborkvantoj. Tamen, ĝi povus influi malgrandajn pakaĵojn aŭ latentajn laborŝarĝojn.
NOTO
Jumbo-kadroj aŭ pli granda MTU-agordo devas esti taŭge agordita tra via retomedio.
Uzu la ifconfig komandon por pliigi la MTU-grandecon. Por ekzample, enigu la jenon, kie estas la interfaca numero: ifconfig mtu 9000 supren
Alternative, vi povas uzi la ip-komandon jene: ip link set mtu 9000 dev ip-ligo agordi dev
Agordo de platformo (i40e Ne-Specifika)
5.1 Agordoj de BIOS
- Ebligu Intel® VT-d por virtualigaj laborŝarĝoj.
- Hiper-fadenado (logikaj procesoroj) povas influi efikecon. Eksperimentu ĝin ŝaltita aŭ malŝaltita por via laborŝarĝo.
- Intel® Turbo Boost permesas al CPU-kernoj funkcii kun pli alta frekvenco ol la baza frekvenco de la CPU. Ebligi Intel® Turbo Boost povas plibonigi rendimenton por multaj laborŝarĝoj sed konsumas pli da potenco por konservi la kernojn je pli alta ofteco. Eksperimentu per Turbo Boost malŝaltita/ŝaltita por via laborkvanto.
NOTO
Turbo-frekvencoj ne estas garantiitaj se la platformo spertas altan ĝeneralan CPU-uzadon. Pli altaj kernturbofrekvencoj estas reduktitaj kiam totala CPU-utiligo pliiĝas.
5.2 Potenca Administrado
Potenca administrado povas influi efikecon, precipe en malaltaj latenciaj laborkvantoj. Se rendimento estas pli alta prioritato ol malpliigo de elektrokonsumo, Intel rekomendas, ke vi eksperimentu limigi la efikojn de potenco-administrado. Estas multaj malsamaj manieroj limigi potencan administradon per operaciumaj iloj, BIOS-agordoj kaj kernaj lanĉaj parametroj. Elektu la plej bonan metodon kaj nivelon laŭ via medio.
5.2.1 C-Ŝtata Kontrolo
Limigi C-ŝtatan eniron al CO aŭ C1 plibonigas efikecon kaj pliigas potenco-utiligon.
Malŝalti CPU Package C6-ŝtatan eniron povas plibonigi retan rendimenton. Tamen, ĉi tio pliigas potenco-uzon.
La jenaj opcioj disponeblas:
- Dinamike kontroli la C-ŝtatan eniron:
Malfermu
/dev/cpu_dma_latency kaj skribu la maksimuman permeseblan latentecon al ĝi.
NOTO
Estas malgranda programo nomata cpudmalatency.c, kiu povas esti elŝutita de la malfermkoda komunumo, kompilita, kaj ruliĝi de la komandlinio por fari ĝuste tion.
La sekva ekzample permesas kvin μs da vektempo, kaj tiel permesas C1-eniron: cpudmalatency 5 &
- Limigu la maksimuman C-stato en la kernaj lanĉaj agordoj:
Por Intel-CPUoj: intel_idle.max_cstates=1
Por ne-Intel CPUoj: processor.max_cstates=1 - Uzu la komandon cpupower por kontroli kaj malŝalti staton de CPU C6: Kontrolu: cpupower monitoro aŭ cpupower idle-info
Malebligu C6: cpupower idle-set -d3 aŭ
Malebligu C-Ŝtatojn: cpupower idle-set -D0
Notoj:
- Malebligu C-ŝtatojn sur la CPU se la servilo havas Intel® 4-a Gen Intel® Xeon® Scalable Processor(j). Kiam Hyper Threading estas ebligita aŭ malebligita, malfunkciigi neaktivajn ŝtatojn (-D0) malhelpas kernojn eniri malfortajn ŝtatojn dum neaktivaj periodoj kaj reduktas la latentecon por la CPU al transiro inter neaktivaj kaj aktivaj ŝtatoj.
- La potenca administrado de la Intel® 4-a Gen Intel® Xeon® Scalable Processor estas ekstreme agresema. Por eviti ke kernoj eniru malaltajn potencojn, provu redukti la nombron da uzataj kernoj por teni ilin nedormaj por pli longe (ethtool -L kombinita ). Ankaŭ, ligu interrompojn al specifaj kernoj uzante aran irq-afinecon (plej ofte kun -x loka aŭ listo de CPU-kernoj), kaj certigu, ke la laborkvanto funkcias sur tiuj samaj kernoj kun taskaro aŭ numactl. Ĉi tio plibonigas rendimenton tenante kernojn aktivaj kaj optimumigante interrompan uzadon.
Ebligu C6:
cpupower idle-set -d3
Ebligu C-Ŝtatojn:
cpupower idle-set -E
- Alia metodo estas uzi la agorditan ilon (inkluzive kun multaj Linuksaj distribuoj) por agordi agadonfile. Ĉi tiuj profiles modifas plurajn OS-agordojn, kiuj povas influi rendimenton tra multaj aplikoj. Oni trovis, ke la reto-traigo profile provizas plibonigon al plej multaj laborŝarĝoj.
Kontrolu:
tuned-adm aktiva
Aro:
agordita-adm profile reto-trairo
NOTO
Agordita servo devas funkcii por supraj komandoj. Por kontroli/rekomenci, agordis: systemctl status tuned systemctl restart tuned
Vi ankaŭ povas malpermesi ajnan C-ŝtatan eniron aldonante la jenon al la kerna startlinio:
idle=enketo - Limigu la C-ŝtaton per la agordoj de potenco-administrado de BIOS de la sistemo, kiuj povus havi agadonfile disponebla.
Iloj kiel turbostato aŭ x86_energy_perf_policy povas esti uzataj por kontroli aŭ agordi agordojn pri administrado de potenco.
5.2.2 PCIe Potenca Administrado
Aktiva Ŝtata Potenca Administrado (ASPM) ebligas pli malaltan potencan staton por PCIe-ligoj kiam ili ne estas aktivaj. Ĉi tio povas kaŭzi pli altan latentecon sur PCIe-retaj aparatoj, do Intel rekomendas, ke vi malŝaltu ASPM por latentec-sentemaj laborŝarĝoj. Malebligu ASPM aldonante la jenon al la kerna lanĉa linio: pcie_aspm=off
5.2.3 CPU Frekvenca Skalado
CPU-frekvenca skalado (aŭ CPU-rapideco-skalado) estas Linukso-potencadministradtekniko en kiu la sistema horloĝrapideco estas alĝustigita sur la flugo por ŝpari potencon kaj varmecon. Same kiel C-ŝtatoj, ĉi tio povas kaŭzi nedeziratan latentecon sur retaj konektoj.
La cpupower-ilo ankaŭ povas esti uzata por kontroli kaj modifi CPU-efikecdefaŭltojn kaj limojn:
- Kontrolu: cpupower monitoro aŭ
- Agordu CPU-ojn al rendimenta reĝimo: cpupower frekvenco-agordita -g rendimento
NOTO
Modifoj al CPU-frekvenclimoj povas havi efikon al multaj laborkvantoj kaj eble malfunkciigos aliajn funkciojn, kiel ekzemple CPU-turbo-reĝimo.
Por malŝalti CPU-frekvencan skalon, malŝaltu la CPU-potencservon per la sekvaj komandoj:
systemctl haltigu cpupower.service
systemctl malŝalti cpupower.service
5.2.4 Plia Gvidilo pri Potenca Administrado
Pliaj detaloj estas provizitaj en ĉi tiu altnivela superview de multaj el la potencaj administradfunkcioj en la 3-a Generaciaj Intel® Xeon® Scalable procesoroj, same kiel gvidon pri kiel ĉi tiuj funkcioj povas esti integritaj ĉe platformnivelo: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost igas la procesoron pli rapida kiam necesas sed povas konsumi plian potencon. Malŝalti Turbo Boost tenas la procesoron je konstanta rapideco, donante al vi konsekvencan agadonivelon por specifaj laborŝarĝoj.
5.4 Fajromuroj
Fajromuroj povas influi rendimenton, precipe latentecan rendimenton.
Malebligu iptables/firewalld se ne necesas.
5.5 Aplikaj agordoj
Ofte ununura fadeno (kiu egalrilatas al ununura retvico) ne sufiĉas por atingi maksimuman bendolarĝon. Iuj platformarkitekturoj, kiel ekzemple AMD, tendencas faligi pli da Rx-pakaĵetoj kun ununura fadeno kompare kun platformoj kun Intel-bazitaj procesoroj.
Konsideru uzi ilojn kiel taskset aŭ numactl por alpingli aplikojn al la NUMA-nodo aŭ CPU-kernoj lokaj al la reto-aparato. Por iuj laborkvantoj kiel stokado I/O, movi la aplikaĵon al ne-loka nodo provizas profiton.
Eksperimentu pliigante la nombron da fadenoj uzataj de via aplikaĵo se eble.
5.6 Kerna Versio
Plej modernaj enkesto-kernoj estas sufiĉe bone optimumigitaj por agado sed, depende de via uzkazo, ĝisdatigi la kernon povus havigi plibonigitan rendimenton. Elŝuti la fonton ankaŭ ebligas al vi ebligi/malŝalti iujn funkciojn antaŭ ol konstrui la kernon.
5.7 Operaciumo/Kernaj Agordoj
Konsultu gvidliniojn pri agordado de operaciumo, kiel Red Hat Enterprise Linux Network Performance Tuning Guide, por pli da kompreno pri ĝenerala agordado de operaciumo.
Kelkaj oftaj parametroj por agordi estas listigitaj en la sekva tabelo. Notu, ke ĉi tiuj estas nur proponitaj deirpunktoj, kaj ŝanĝi ilin de la defaŭltoj eble pliigos la rimedojn uzatajn en la sistemo. Kvankam pliigi la valorojn povas helpi plibonigi rendimenton, necesas eksperimenti kun malsamaj valoroj por determini kio funkcias plej bone por difinita sistemo, laborkvanto kaj trafika tipo.
La kernaj parametroj estas agordeblaj uzante la ilon sysctl en Linukso kiel indikite sube.
Al view la defaŭltaj valoroj por rmem kaj wmem en la sistemo:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Agordu la valorojn al maksimumo (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Socket-bufrgrandecoj, ankaŭ konataj kiel ricevbufro (rmem) kaj elsenda bufro (wmem), estas sistemparametroj kiuj precizigas la kvanton de memoro rezervita por envenanta kaj eksiĝinta rettrafiko.
Ruli sysctl sen la -w argumento listigas la parametron kun ĝia nuna agordo.
Staka Agordo | Priskribo |
net.core.rmem_default | Defaŭlta Ricevu Fenestra Grandeco |
net.core.wmem_default | Defaŭlta Transdona Fenestra Grandeco |
net.core.rmem_max | Maksimuma Riceva Fenestra Grandeco |
net.core.wmem_max | Maksimuma Transdona Fenestra Grandeco |
net.core.optmem_max | Maksimumaj Opciaj Memorbufroj |
net.core.netdev_max_backlog | Restaĵo de neprilaboritaj pakaĵoj antaŭ ol la kerno komencas fali |
net.ipv4.tcp_rmem | Memorrezervilo por TCP-legaj bufroj |
net.ipv4.tcp_wmem | Memorrezervilo por TCP-sendaj bufroj |
Kerno, reta stako, memortraktilo, CPU-rapideco kaj potencadministrada parametroj povas havi grandan efikon al reto-rendimento. Ofta rekomendo estas apliki al la reto-trairo profile uzante la agorditan komandon. Ĉi tio modifas kelkajn OS-agordojn por doni preferon al interkonektaj aplikoj.
Kontrolu:
tuned-adm aktiva
Aro:
agordita-adm profile reto-trairo
5.8 Reta Aparato Backlog
Ĉi tiu funkcio helpas plibonigi la agadon de la reto administrante efike envenantan trafikon, reduktante pakaĵetperdon, malaltigante latencian kaj pliigante trairon. Ĉi tio kondukas al pli bona uzantsperto kaj pli rapida sistema respondo.
Defaŭlte, ĝi estas ebligita en la plej multaj el la Linukso-operaciumoj. Por kontroli la defaŭltan valoron:
sysctl net.core.netdev_max_backlog
La maksimuma valoro por netdev_max_backlog povas varii depende de faktoroj kiel kernversio, aparataro, memoro kaj laborkvanto. En multaj kazoj, 8192 estas vidita kiel bona valoro. sysctl -w net.core.netdev_max_backlog=8192
5.9 Platform-Specifikaj Agordoj kaj Agordado
5.9.1 4-a Generacio Intel® Xeon® Skaleblaj Procesoroj
La potenco-administrado de la Intel® 4-a Generacia Intel® Xeon® Scalable-procesoro estas ekstreme agresema kompare kun la 3-a Generacia Intel® Xeon® Scalable-procesoroj. Por eviti ke kernoj eniru malaltajn potencojn, provu redukti la nombron da uzataj kernoj por teni ilin nedormaj por pli longe.
Rekomenditaj Bios-Agordoj por la Plej Alta Rendimento
- Hiper-fadenado ebligi/malŝalti (surbaze de la laborkvantopostulo kaj rendimentoceloj) sur la CPU.
- Agordu la sistemon profile al Performance por la maksimuma rendimento.
NOTO
Ĉi tio rezultigas pli altan energikonsumon - Agordu la CPU-potencadministradon al Maksimuma Efikeco por prioritati maksimuman CPU-efikecon super potenco-efikeco.
- Ebligu Turbo Boost. Malebligi Turbo Boost en la sistemaj BIOS-agordoj tipe malhelpas la CPU dinamike pligrandigi sian horloĝan rapidecon preter sia baza frekvenco.
- NOTO
Malebligi Turbo Boost povas esti taŭga por certaj uzkazoj kie konsekvenca efikeco, potenco-efikeco aŭ termika administrado estas prioritatitaj super maksimuma efikeco. - Malŝaltu la funkcion de Single Root I/O Virtualization (SR-IOV), se la sistemo ne uzas virtualigteknologiojn.
- Malebligu C-ŝtatojn por instrukcii la CPU resti aktiva kaj malhelpi eniri pli profundajn neaktivajn ŝtatojn.
- Malebligu C1E, por certigi, ke la CPU restas aktiva kaj ne eniras la C1E neaktivan staton.
- Agordu la nekernan frekvencon al maksimumo por instrui la sistemon funkcii kun la plej alta disponebla frekvenco.
- Sur Dell-platformoj, agordu Multiple APIC Description Table (MADT) kernan emuladon al Lineara (aŭ Round-Robin depende de BIOS) por disponigi klaran kaj antaŭvideblan mapadon de CPU-kernoj.
Rekomenditaj OS-nivelaj agordoj por Optimumigita Agado
- Agordu CPU-frekvencan skalan reganton al rendimento. cpupower frekvenco-aro -g rendimento cpupower frekvenco-info
- Malebligu C-Ŝtatojn. cpupower idle-set -D0
- Agordu kernajn Rx (rmem) kaj Tx (wmem) bufrojn al maksimuma valoro. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Agordu retan aparaton. sysctl -w net.core.netdev_max_backlog=8192
- Agordu profile (laborŝarĝo dependa por trairo/latenteco).
agordita-adm profile reto-trairo
Rekomenditaj Adaptaj Nivelaj Agordoj por Optimumigita Agado
- Limigu nombron da vostoj por uzi por aplika trafiko. Uzu la minimuman nombron da atendovicoj necesaj por teni la rilatajn CPU-kernojn aktivaj por malhelpi ilin eniri pli profundajn neaktivajn statojn (ĝustigu por la laborkvanto): ethtool -L kombinita 32
- Agordu interrompajn moderigajn indicojn. etilo -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Provu ĝustigi la elsendi/ricevon/altprioritan kunfluan tempigilon pli altan (80/100/150/200) aŭ pli malaltan (25/20/10/5) por trovi optimuman valoron por la laborkvanto. - Agordu la Rx/Tx-ringajn grandecojn. etilo -G rx 4096 tx 4096
NOTO
Se vi vidas Rx-pakaĵetojn kun ethtool -S| grep drop, provu redukti la ringan grandecon al <4096. Provu trovi la optimuman valoron por la laborkvanto kie pakoj ne estas faligitaj. - Agordu IRQ-Afinecon. Uzu kernojn lokajn al NIC, aŭ specifan kernmapadon (kie # kernoj estas egala al la nombro da vostoj agordita en 1 sur paĝo 26. systemctl stop irqbalance set_irq_affinity -X loka AŬ aro_irq_afineco -X
5.9.2 AMD EPYC
AMD EPYC-procesoroj estas potencaj CPUoj faritaj por serviloj kaj datumcentroj, konstruitaj sur la Zen-arkitekturo de AMD. La subaj agordoj estas de la 4-a generacio EPYC-serio de AMD.
Rekomenditaj BIOS-Agordoj por la Plej Alta Efikeco
- Ebligu kutiman reĝimon por permesi al uzantoj alĝustigi CPU-efikecon, elektrokonsumon kaj aliajn agordojn. Ĉi tio helpas agordi la sistemon por la plej bona ekvilibro inter rendimento kaj energia efikeco.
- Ebligu kernan rendimentan akcelon por permesi al CPU aŭtomate pliigi sian rapidecon por trakti pli intensajn taskojn, plibonigante ĝeneralan rendimenton.
- Malebligu tutmondan C-ŝtatan kontrolon, por malhelpi la CPU eniri pli profundajn energiŝparŝtatojn konatajn kiel C-ŝtatoj, kiuj povas konservi respondecon.
NOTO
Malebligi C-ŝtatojn povas kaŭzi plian energikonsumon kaj pliigi termikajn temperaturojn. Monitor ambaŭ por la laborkvanto. - Ebligu/malŝalti Samtempan Multithreading (SMT) sur la CPU, surbaze de la laborkvanto-postulo kaj rendimentoceloj. SMT estas ekvivalenta al Hyper Threading sur Intel-CPUoj.
NOTO
Por optimumigita agado, referu al Agordo de i40e Ŝoforaj agordoj sur paĝo 13 kaj Platformagordado (i40e Ne-Specifika) sur paĝo 19 por la rekomendita OS kaj adaptilo-nivela agordo.
Adaptilo Ligado
Linukso-ligado estas potenca trajto, kiu povas signife plibonigi la retan rendimenton, redundon kaj misfunkciadon en servilaj medioj. Tamen, estas grave noti, ke ĝi postulas kongruan retan aparataron kaj taŭgan agordon ĉe la servilo kaj la ŝaltilo por funkcii ĝuste.
La kunliga pelilo en Linukso permesas al vi kunigi plurajn fizikajn retajn interfacojn en ligitan interfacon. Ĉi tiu ligita interfaco aperas kiel ununura virtuala retinterfaco al la operaciumo kaj aplikoj.
NOTO
La ligo estas logika interfaco, do ne eblas agordi CPU-afinecon rekte sur la liginterfaco (ekz.ample, ligo0). Tio estas, ĝi ne havas rektan kontrolon pri interrompa uzado aŭ CPU-afineco. CPU-afineco devas esti agordita por la subestaj interfacoj kiuj estas parto de la ligo.
Ligado disponigas plurajn reĝimojn de operacioj, ĉiu kun siaj propraj karakterizaĵoj.
Reĝimo | Tajpu |
0 | Ĉirkaŭvojo |
1 | Aktiva Rezervo |
2 | XOR |
3 | Elsendo |
4 | LACP |
5 | Transsendi Ŝarĝekvilibron |
6 | Adapta Ŝarĝo Ekvilibro |
Estas malsamaj metodoj por krei ligon en Linukso. Unu el la plej oftaj metodoj estas uzi retan agordon files (ekzample, /etc/network/ interfaces aŭ /etc/sysconfig/network-scripts/ifcfg-bondX).
Agordo Uzante Retan Agordon Files
La sekvaj paŝoj kreas ligon tra la reto-agordo files.
- Elektu du aŭ pli da NIC-havenoj por ligo (ekzample, ethX kaj ethY)
- Malfermu NIC-Agordon Files sub /etc/sysconfig/network-scripts/ por la bezonata NIC-Interfaco (ekzempleample, vi ifcfg-ethX kaj vi ifcfg-ethY) kaj aldonu la sekvan tekston:
MASTER=obligacioN [Noto: N estas entjero por mencii la liga nombro.] SLAVE=jes - Kreu interligan retan skripton file uzante vi /etc/sysconfig/networkscripts/ifcfg-bondN kaj enigu la sekvan tekston:
DEVICE=obligacioN [Noto: N estas entjero por mencii la liga nombro] ONBOOT=jes USERCTL=ne BOOTPROTO=dhcp (aŭ) neniu
IPADDR=200.20.2.4 [bezonata se BOOTPROTO=neniu] RETMASKO=255.255.255.0 [bezonata se BOOTPROTO=neniu] RETO=200.20.2.0 [bezonata se BOOTPROTO=neniu] BROADCAST=200.20.2.255. BOOTPROTO=neniu] BONDING_OPTS=”reĝimo=1 miimon=100″
NOTO
Reĝimo povas esti ajna entjero de 0 ĝis 6 bazita sur la postulo. - Rekomencu la retajn servojn uzante servoreton rekomencon aŭ systemctl restart NetworkManager.service
Regado-Problemoj
7.1 Uzado de CPU
Kontrolu CPU-uzadon per kerno dum la laborkvanto funkcias.
Notu, ke utiligo per kerno estas pli grava al efikeco ol totala CPU-utiligo ĉar ĝi disponigas ideon pri la CPU-uzado per retvico. Se vi havas nur kelkajn fadenojn kurantajn retan trafikon, tiam vi eble nur uzas kelkajn kernojn. Tamen, se tiuj kernoj estas je 100%, tiam via reto-trairo verŝajne estas limigita de CPU-uzado kaj estas tempo fari la jenon:
- Agordu IRQ-moderigon/ringograndecon kiel detale en Interrupt Moderation.
- Pliigu la nombron da aplikaĵfadenoj por disvastigi la CPU-ŝarĝon super pli da kernoj. Se ĉiuj kernoj funkcias je 100%, tiam via aplikaĵo povus esti ligita al CPU anstataŭ al reto.
Ofte haveblaj iloj:
- supro
— Premu 1 por pligrandigi liston de CPU-oj kaj kontroli kiuj estas uzataj.
— Rimarku la nivelon de utiligo.
— Rimarku, kiuj procezoj estas listigitaj kiel plej aktivaj (supro de listo). - mpstat
La sekva ekzampla komandlinio estis testita sur Red Hat Enterprise Linux 7.x.
Ĝi montras CPU-uzadon per kerno (trovante la totalan procenton neaktiva kaj subtrahante de 100) kaj elstarigas la valorojn super 80% en ruĝa. mpstat -P ĈIUJ 1 1 | grep -v Mezumo | vosto -n +5 | kapo -n -1 | awk '{ print (100-$13)}' | egrep -color=ĉiam '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | kolumno - perf top Serĉu kie cikloj estas elspezitaj.
7.2 i40e Nombriloj
La i40e-ŝoforo provizas longan liston de nombriloj por interfaco-sencimigado kaj monitorado per la komando ethtool -S ethX. Povas esti helpe rigardi la produktaĵon dum laborkvanto funkcias kaj/aŭ kompari la nombrilvalorojn antaŭ kaj post laborŝarĝo.
- Por akiri plenan forĵetaĵon de i40e nombriloj: ethtool -S ethX
- Por rigardi nur nenulaj nombriloj: rigardu -d (ethtool -S ethX) | egrep -v :\ 0 | kolumno
Kelkaj aferoj por serĉi: - rx_dropped signifas, ke la CPU ne servas bufrojn sufiĉe rapide.
- port.rx_dropped signifas, ke io ne estas sufiĉe rapida en la fendo/memoro/sistemo.
7.3 Retaj Nombriloj
Kontrolu netstat -s antaŭ/post laborŝarĝo.
Netstat kolektas retajn informojn de ĉiuj retaj aparatoj en la sistemo. Tial, rezultoj povus esti trafitaj de retoj krom la reto sub testo. La eligo de netstat -s povas esti bona indikilo de rendimentaj problemoj en la Linukso operaciumo aŭ kerno. Konsultu gvidliniojn pri agordado de operaciumo, kiel Red Hat Enterprise Linux Network Performance Tuning Guide, por pli da kompreno pri ĝenerala agordado de operaciumo.
7.4 Sistemaj Protokoloj
Kontrolu sistemajn protokolojn por eraroj kaj avertoj (/var/log/messages, dmesg).
7.5 Intel svr-info Ilo
Intel disponigas svr-informilon (vidu https://github.com/intel/svr-info) por Linukso kiu kaptas koncernajn aparataron kaj softvardetalojn de servilo. svr-info-eligo povas esti ekstreme helpema por identigi sistemajn proplempunktojn aŭ agordojn/agordojn kiuj ne estas optimumigitaj por la laborkvanto. Kiam vi malfermas subtenan kazon kun Intel por problemoj de rendimento rilataj al Ethernet, nepre inkluzivu svr-info-eligon (tekston file) por ĉiu Linuksa servilo en la testa agordo.
- Elŝutu kaj instalu svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> gastiga nomo.txt - Kolektu la eligon:
./svr-info > hostname.txt - Alektu unu tekston (.txt) file por ĉiu servilo al via Intel-subtenkazo por analizo.
Rekomendoj por Oftaj Agado-Scenaroj
8.1 IP-Plusendado
- Ĝisdatigu la kernon.
Kelkaj lastatempaj en-distraj kernoj degradis enrutigan efikecon pro kernŝanĝoj en la enrutiga kodo komenciĝanta kun la forigo de la envojiga kaŝmemoro pro sekureco. Lastatempaj ekster-distro-kernoj devus havi diakilojn kiuj mildigas la efikecon de ĉi tiuj ŝanĝoj kaj povus provizi plibonigitan rendimenton. - Malebligu hiper-fadenadon (logikaj kernoj).
- Redaktu la kernaj lanĉaj parametroj.
— Devigu iommu malŝaltita (intel_iommu=off aŭ iommu=off) de la kerna lanĉlinio krom se necese por virtualigo
— Malŝaltu administradon de potenco: processor.max_cstates=1 idle=sondeto pcie_aspm=off - Limigu la nombron da vostoj por esti egala al la nombro da kernoj sur la loka ingo (12 en ĉi tiu eksample). ethtool -L ethX kombinita 12
- Pin interrompas nur al loka ingo. set_irq_affinity -X loka ethX AŬ set_irq_affinity -X loka ethX
NOTO
-X aŭ -x povas esti uzataj depende de la laborkvanto. - Ŝanĝu la grandecojn de ringoj Tx kaj Rx laŭbezone. Pli granda valoro bezonas pli da rimedoj sed povas provizi pli bonajn plusendan tarifojn. ethtool -G ethX rx 4096 tx 4096
- Malebligu GRO dum vojigo.
Pro konata problemo de la kerno, GRO devas esti malŝaltita dum vojigo/plusendado. ethtool -K ethX gro off kie ethX estas la Ethernet-interfaco modifinda. - Malebligu adaptan interrompan moderigon kaj starigu statikan valoron. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
NOTO
Depende de la speco de procesoro kaj laborkvanto, la kunfluaj parametroj por RX kaj TX povas esti alĝustigitaj por plibonigita efikeco (aŭ malpli da framperdo).
- Malebligu la fajroŝirmilon. sudo systemctl malŝalti firewalld sudo systemctl haltigi firewalld
- Ebligu IP-sendon. sysctl -w net.ipv4.ip_forward=1
- Agordu maksimumajn valorojn por la ricevaj kaj sendi ingaj bufrograndecoj. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
NOTO
Depende de la laborkvanto aŭ postulo, ĉi tiuj valoroj povas esti ŝanĝitaj de la defaŭlta.
8.2 Malalta Latenteco
- Malŝaltu hiperfadenadon (logikaj kernoj).
- Certigu, ke la reto-aparato estas loka al numa kerno 0.
- Alpinglu la komparnormon al kerno 0 uzante taskon -c 0.
- Malŝaltu irqbalance uzante systemctl haltigu irqbalance aŭ systemctl malŝalti irqbalance
- Rulu la afinan skripton por disvastigi tra kernoj. Provu aŭ tie aŭ ĉio.
- Malŝaltu interrompan moderigon. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- alta 0
- Limigu nombron da atendovicoj por esti egala al la nombro da kernoj sur la loka ingo (32 en ĉi tiu ekzample). ethtool -L ethX kombinita 32
- Pin-interrompoj nur al loka ingo (skripto pakita kun i40e-ŝoforfonto). set_irq_affinity -X loka ethX
- Uzu establitan komparnormon kiel netperf -t TCP_RR, netperf -t UDP_RR aŭ NetPipe. netperf -t TCP_RR aŭ netperf -t UDP_RR
- Alpinglu komparnormon al ununura kerno en la loka NUMA-nodo. taskaro -c
Serio Intel® Ethernet 700
Linuksa Efikeco-Agorda Gvidilo
decembro 2024
Doc. N-ro: 334019, Rev.: 1.2
Dokumentoj/Rimedoj
![]() |
Intel Ethernet 700 Series Linuksa Efikeco-Agordado [pdf] Uzantogvidilo 334019, Eterreto 700 Serio Linuksa Efikeco-Agordado, Eterreto 700-Serio, Linukso-Efikeco-Agordado, Efikeco-agordado, Agordado |