Seria Intel ® Ethernet 700
Udhëzuesi i akordimit të performancës Linux
NEX Cloud Networking Group (NCNG)
Rev. 1.2
dhjetor 2024
Historia e rishikimit
Rishikim | Data | Komentet |
1.2 | dhjetor 2024 | · Udhëzues shtesë për menaxhimin e energjisë elektrike. · U shtua Intel* Turbo Boost. · U shtua prapambetja e pajisjes së rrjetit. · U shtuan konfigurime dhe akordim specifik për platformën. · U shtuan procesorë të shkallëzuar të gjeneratës së 4-të Intel* %eon*. · U shtua AMD EPYC. · Përditësuar aftësitë e sistemit të kontrollit të harduerit. · Përditësuar iPerf2. · Përditësuar iPerf3. · Radhët Tx/Rx të përditësuara. · Moderimi i Ndërprerjes i përditësuar. · Madhësia e unazës e përditësuar. · Akordim i përditësuar i platformës (i40e jo-specifike). · Cilësimet e BIOS-it të përditësuara. · Kontrolli C-State i përditësuar. · Shkallëzimi i frekuencës së CPU-së i përditësuar. · Cilësimet e përditësuara të aplikacionit. · Cilësimet e Sistemit Operativ/Kernelit të përditësuar. · Përcjellja e IP e përditësuar. · Latencë e ulët e përditësuar. |
gusht 2023 | Ndryshimet në këtë dokument përfshijnë: · Shtuar Referenca të Lidhura. · U shtua Sigurohuni që paketa DDP është duke u ngarkuar siç duhet. · U shtua iPerf2. · U shtua iPerf3. · U shtua netperf. · Afiniteti IRQ i përditësuar. · Shtuar radhët Tx/Rx. · Madhësia e unazës e përditësuar. · Korniza të shtuara Jumbo. · Shtuar lidhjen e përshtatësit. · U shtua mjeti Intel svr-info. |
|
1.0 | Mars 2016 | Publikimi fillestar (Intel Public). |
Hyrje
Ky udhëzues synon të ofrojë udhëzime për akordimin e mjediseve për performancën optimale të rrjetit duke përdorur një NIC të Serisë Intel ® Ethernet 700 në mjediset Linux. Ai fokusohet në kushtet dhe cilësimet e harduerit, drejtuesit dhe sistemit operativ që mund të përmirësojnë performancën e rrjetit. Duhet të theksohet se performanca e rrjetit mund të ndikohet nga çdo numër ndikimesh të jashtme, vetëm më të zakonshmet dhe më dramatiket prej tyre trajtohen në këtë udhëzues.
1.1 Referencat përkatëse
- Udhëzues përdorimi për të gjithë përshtatësit dhe pajisjet Intel ® Ethernet, që mbështesin Windows dhe Linux:
Udhëzuesi i përdorimit të përshtatësve dhe pajisjeve të Ethernet Intel® - Fleta e të dhënave teknike:
Fletë e të dhënave Intel ® Ethernet Controller X710/XXV710/XL710 - Paketa e plotë SW për të gjitha produktet Intel ® Ethernet (shkarkoni të gjithë drejtuesit, NVM-të, veglat, etj.):
Paketa e plotë e drejtuesve të përshtatësit Ethernet Intel ® - Paketa e përditësimit NVM (Memorie jo e paqëndrueshme):
Shërbimi i përditësimit të memories jo të paqëndrueshme (NVM) për përshtatësin e rrjetit Ethernet Intel 700 Series - Mjet svr-info për Linux që kap detajet përkatëse të harduerit dhe softuerit nga një server: https://github.com/intel/svr-info
- Udhëzues teknologjik DDP:
Udhëzues teknologjik për Personalizimin Dinamik të Pajisjeve (DDP) të Serisë Ethernet 700 Intel®
Lista e kontrollit fillestar
2.1 Përditësoni versionet e drejtuesit/firmuerit
Kontrolloni versionet e drejtuesit/firmware duke përdorur ethtool -i ethx.
Përditësoni sa më poshtë sipas nevojës:
- Përditësoni shoferin i40e
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 - Përditëso firmware-in
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Lexoni README
Kontrolloni për probleme të njohura dhe merrni udhëzimet më të fundit të konfigurimit nga README file përfshirë në paketën burimore i40e.
2.3 Kontrolloni që sloti juaj PCI Express (PCIe) të jetë x8
Disa lojëra elektronike PCIe x8 janë konfiguruar në të vërtetë si lojëra elektronike x4. Këto lojëra elektronike kanë gjerësi bande të pamjaftueshme për shpejtësinë e plotë të linjës me pajisjet me porta të dyfishta dhe me katër porta. Përveç kësaj, nëse vendosni një përshtatës me aftësi PCIe v3.0 në një vend të caktuar PCIe v2.x, nuk mund të merrni gjerësinë e plotë të brezit. Drejtuesi i pajisjes së softuerit zbulon këtë situatë dhe shkruan mesazhin e mëposhtëm në regjistrin e sistemit:
Gjerësia e brezit PCI-Express e disponueshme për këtë kartë nuk është e mjaftueshme për performancë optimale. Për performancë optimale kërkohet një slot x8 PCI-Express.
Nëse ndodh ky gabim, zhvendoseni përshtatësin tuaj në një vend të vërtetë PCIe v3.0 x8 për të zgjidhur problemin.
2.4 Kontrolloni aftësitë e harduerit të sistemit
Në 10 Gbps, 25 Gbps dhe 40 Gbps Ethernet, ka disa kërkesa minimale të CPU-së dhe sistemit. Në përgjithësi, një procesor modern i klasës së serverit dhe konfigurimi optimal i memories për platformën tuaj duhet të jetë i mjaftueshëm, por nevojat ndryshojnë në varësi të ngarkesës suaj të punës. Të gjitha kanalet e kujtesës duhet të jenë të mbushura dhe modaliteti i performancës së kujtesës duhet të aktivizohet në BIOS. Verifikoni që CPU-ja juaj dhe konfigurimi i kujtesës janë në gjendje të mbështesin nivelin e performancës së rrjetit që ju nevojitet për ngarkesën tuaj të punës.
SHËNIM
XL710 është një kontrollues 40 GbE. Përshtatësi 2 x 40 GbE që përdor këtë kontrollues nuk është menduar të jetë një 2 x 40 GbE, por një 1 x 40 GbE me një portë rezervë aktive. Kur përpiqeni të përdorni trafikun me shpejtësi të linjës që përfshin të dy portet, çelësi i brendshëm është i ngopur dhe gjerësia e brezit të kombinuar midis dy porteve kufizohet në një total prej SO Gbps.
2.4.1 Parametrat e nisjes së kernelit
Nëse Teknologjia e Virtualizimit Intel® për I/O të drejtuar (Intel® VT-d) është aktivizuar në BIOS, Intel rekomandon që IOMMU të jetë në modalitetin e kalimit për performancë optimale të rrjetit pritës. Kjo eliminon shpenzimet e përgjithshme të DMA në trafikun e hostit, ndërkohë që mundëson që makinat virtuale (VM) të kenë ende përfitimet e Intel® VT-d. Kjo arrihet duke shtuar rreshtin e mëposhtëm në parametrat e nisjes së kernelit: fommu-pt.
2.5 Sigurohuni që paketa DDP është duke u ngarkuar siç duhet
Drejtuesit bazë 140ea dhe 140eb nuk kanë mbështetje të drejtpërdrejtë për Personalizimin e Pajisjeve Dinamike (DDP). Për të përdorur DDP me pajisjet e Serisë 700, një DDP profile mund të aplikohet me aplikacionin testpmd.
Për detaje mbi DDP profiles, dhe si të aplikoni një pro DDPfile me testpmd në pajisjet e Serisë 700, referojuni Udhëzuesit të Teknologjisë për Personalizimin Dinamik të Pajisjeve Dinamike (DDP) Intel® Ethernet 700.
Për të verifikuar nëse një pro DDPfile u ngarkua me sukses:
testpmd> ddp merrni listën 0 Profile numri është: 1
SHËNIM
Nëse profile numri është 0, asnjë paketë DDP nuk është ngarkuar. Në rast të një gabimi të ngarkimit të paketës DDP, pajisja vendoset në modalitetin e sigurt dhe shumë veçori të performancës nuk janë të disponueshme. Nëse ka gabime në lidhje me ngarkimin e paketës DDP, kjo do të shkaktojë probleme të performancës. Për hapat e zgjidhjes së problemeve, referojuni Udhëzuesit të Teknologjisë Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP).
Matjet e Performancës Bazë dhe Metodologjia e Akordimit
3.1 Standardet e performancës së rrjetit
Përpara se të filloni një ushtrim akordimi, është e rëndësishme të keni një matje të mirë bazë të performancës së rrjetit tuaj. Zakonisht, përveç matjes fillestare të performancës së aplikacionit/ngarkesës suaj specifike, është mirë të përdorni edhe një standard standard të performancës së rrjetit për të verifikuar që pajisja juaj e rrjetit është në gjendje të mirë.
Për optimizimin e një sistemi të vetëm, netperf ose iperf dhe NetPIPE janë të gjitha mjete të forta pa burim të hapur që ju mundësojnë të theksoni një lidhje dhe të diagnostikoni problemet e performancës.
Netperf është i fortë për testimin e xhiros dhe latente. NetPIPE është një mjet specifik për vonesën, por mund të përpilohet për çdo lloj mjedisi.
SHËNIM
Testi TCP_RR në netperf kthen vonesën në një vlerë transaksionesh/sek. Ky është një numër vajtje-ardhje. Vonesa e njëanshme mund të llogaritet duke përdorur ekuacionin e mëposhtëm:
Vonesa(usec) = (1⁄2) / [Transaksionet/sek] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Intel rekomandon iperf2 mbi iperf3 për shumicën e situatave të krahasimit për shkak të lehtësisë së përdorimit dhe mbështetjes së temave të shumta në një shembull të vetëm aplikacioni. Intel rekomandon funksionimin me opsionin -P me 2-4 threads për lidhjet 25G dhe rreth 4-6 threads për lidhjet 40G.
- Për të ekzekutuar trafikun me një drejtim nga klienti në server: Komanda e serverit p.shample: iperf2 -s
Komanda e klientit p.shample: iperf2 -c -P - Për të ekzekutuar trafikun me dy drejtime nga klienti në server (dhe anasjelltas): Komanda e serverit p.shample: iperf2 –s –p
Komanda e klientit p.shampe:
iperf2 -c -fq -P ---full-duplex OSE
iperf2 -c -fq -P –d
SHËNIM
Të dy opsionet –full-duplex dhe -d në iperf2 lejojnë përdoruesin të kryejë testim dydrejtimësh. Sidoqoftë, opsioni –full-duplex fokusohet në mënyrë specifike në testimin e plotë dupleks.
SHËNIM
Kur testoni iperf2 nëpër porta të shumta serveri, flamuri -d mund të shtohet në komandën e serverit për të ekzekutuar të gjitha seancat e serverit në sfond nga e njëjta dritare terminali. Flamuri -d mund të përdoret gjithashtu kur komanda e serverit është e ngulitur brenda një cikli for në një skript.
SHËNIM
Gjatë ekzekutimit të testit të xhiros së rrjetit me një transmetim/thread të vetëm (p.shample: P1), procesorët AMD mund të mos ofrojnë xhiro të pritshme, veçanërisht NIC me gjerësi brezi më të lartë (nëse shpejtësia është >= bandwidth 25G). Si rezultat, fiksimi i aplikacionit në bërthama specifike kërkohet për të arritur xhiros më të lartë. Shikoni Cilësimet e aplikacionit në faqen 22.
3.1.2 iPerf3
Nëse përdoret iperf3, kërkohen disa instanca të aplikacionit për të marrë advantage nga shumë fije, RSS dhe radhët e harduerit. Intel rekomandon ekzekutimin me 2-4 seanca aplikacioni për lidhjet 25G dhe rreth 4-6 seanca për lidhjet 40G. Çdo sesion duhet të specifikojë një vlerë unike të portit TCP duke përdorur opsionin -p.
- Për të ekzekutuar trafikun me një drejtim nga klienti në server:
Komanda e serverit p.shampe:
iperf3 -s -p
Komanda e klientit p.shampe:
iperf3 -c -fq - Për të ekzekutuar trafikun dydrejtues nga klienti në server (dhe anasjelltas):
Komanda e serverit p.shampe:
iperf3 –s –p
Komanda e klientit p.shample: iperf3 -c -fq -P –-bidir - Për të nisur instanca të shumta (threads) të iperf3, rekomandohet përdorimi i një cikli for-për të hartuar thread-ët në portet TCP dhe për të ekzekutuar iperf3 në sfond duke përdorur & për të krijuar procese të shumta paralelisht.
Komanda e serverit p.shample, filloni 4 threads: port=””; për i në {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; bërë; Komanda e klientit p.shample, start 4 threads – Transmit test port=””; për i në {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; bërë; Komanda e klientit p.shample, start 4 threads – Receive test port=””; për i në {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; bërë; Për lidhjet 40G, rrisni ciklin për të krijuar deri në 6 instanca/thread.
SHËNIM
Gjatë ekzekutimit të testit të xhiros së rrjetit me një transmetim/thread të vetëm (p.shample: P1), procesorët AMD mund të mos ofrojnë xhiro të pritshme, veçanërisht gjerësi bande më të lartë
NIC (nëse shpejtësia është >= gjerësia e brezit 25G). Si rezultat, fiksimi i aplikacionit në bërthama specifike kërkohet për të arritur xhiros më të lartë. Shikoni Cilësimet e aplikacionit në faqen 22 dhe AMD EPYC në faqen 26.
3.1.3 netperf
Mjeti netperf është një zgjedhje e fortë për testimin e xhiros dhe latente.
- Testi TCP_STREAM në netperf mat aftësitë e xhiros së pajisjes. Komanda e serverit p.shample: netserver Komanda e klientit example: netperf -t TCP_STREAM -l 30 -H
- Testi TCP_RR në netperf kthen vonesën në një vlerë transaksionesh/sekondë. Ky është një numër vajtje-ardhje. Rekomandohet të përdorni opsionin -T x,x, nëse x është CPU lokale në pajisje. Vonesa e njëanshme mund të llogaritet duke përdorur: Latency(usec)=(1⁄2)/ [Transactions/sek]*1,000,\ Komanda e serverit example: netserver
Komanda e klientit p.shample: netperf -t TCP_RR -l 30 -H -T x,x - Për të nisur instanca të shumta (threads) të netperf-it, rekomandohet përdorimi i një cikli for-për të hartuar thread-ët në portet TCP dhe për të ekzekutuar netperf në sfond duke përdorur & për të krijuar procese të shumta paralelisht.
Komanda e serverit p.shample, filloni 8 tema:
port=””; për i në {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; bërë;
Komanda e klientit p.shample, filloni 8 threads: port=””; për i në {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; bërë;
3.2 Metodologjia e akordimit
Përqendrohuni në një ndryshim akordimi në të njëjtën kohë, në mënyrë që të dini se çfarë ndikimi ka çdo ndryshim në testin tuaj. Sa më metodikë të jeni në procesin e akordimit, aq më e lehtë do të jetë të identifikoni dhe adresoni shkaqet e pengesave të performancës.
Akordimi i cilësimeve të shoferit i40e
4.1 Afiniteti IRQ
Konfigurimi i afinitetit IRQ në mënyrë që ndërprerjet për radhë të ndryshme të rrjetit të afinitizohen me bërthama të ndryshme të CPU-së, mund të ketë një ndikim të madh në performancë, veçanërisht në testet e xhiros me shumë fije.
Për të konfiguruar afinitetin IRQ, ndaloni irqbalance dhe më pas përdorni skriptin set_irq_affinity nga paketa burimore i40e ose pin radhët manualisht. Çaktivizo balancuesin IRQ të hapësirës së përdoruesit për të aktivizuar fiksimin e radhës:
- systemctl çaktivizoni irqbalance
- systemctl stop irqbalance
Përdorimi i skriptit set_irq_affinity nga paketa burimore i40e (rekomandohet): - Për të përdorur të gjitha bërthamat:
[path-to-i40epackage]/scripts/set_irq_affinity -X all ethX - Për të përdorur vetëm bërthamat në prizën lokale NUMA: [path-to-i40epackage]/scripts/set_irq_affinity -X lokal ethX
- Ju gjithashtu mund të zgjidhni një sërë bërthamash. Shmangni përdorimin e cpu0 sepse ekzekuton detyrat me kohëmatës. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
SHËNIM
Skripti i afinitetit mundëson Drejtimin e Transmetimit të Paketave (XPS) si pjesë e procesit të fiksimit kur specifikohet opsioni -x. Kur XPS është i aktivizuar, Intel rekomandon që të çaktivizoni irqbalance, pasi balancuesi i kernelit me XPS mund të shkaktojë performancë të paparashikueshme. Skripti i afinitetit çaktivizon XPS kur specifikohet opsioni -X. Çaktivizimi i XPS dhe aktivizimi i radhëve simetrike është i dobishëm për ngarkesat e punës ku arrihet performanca më e mirë kur trafiku Tx dhe Rx shërbehet në të njëjtin çift(a) radhësh.
Konfigurimi i radhëve simetrike në Linux përfshin akordimin e parametrave të drejtuesit të ndërfaqes së rrjetit për të mundësuar radhët e marrjes simetrike (Rx) dhe radhët simetrike të transmetimit (Tx) për përshtatësit e rrjetit të mbështetur.
SHËNIM
- Radhët simetrike janë një veçori e avancuar e rrjetit dhe jo të gjithë përshtatësit ose drejtuesit e rrjetit të serive 700 i mbështesin ato.
- Sigurohuni që keni mbështetjen e nevojshme të drejtuesit dhe harduerit përpara se të përpiqeni të konfiguroni radhët simetrike.
Për të konfiguruar radhët simetrike, ndiqni këto hapa të përgjithshëm:
- Redakto konfigurimin e ndërfaqes së rrjetit File: Përdorni një redaktues teksti (për shembullample, vi, nano ose gedit) për të modifikuar konfigurimin e ndërfaqes së rrjetit file. Të file zakonisht ndodhet nën drejtorinë /etc/sysconfig/network-scripts/ dhe ka një emër si ifcfg-ethX, ku ethX është emri i ndërfaqes së rrjetit tuaj.
- Shtoni parametrat simetrik të radhës. Shtoni linjat e mëposhtme në konfigurimin e ndërfaqes së rrjetit file: ETHTOOL_OPTS=”rx-radhë 8 tx-radhë 8″
- Rinis shërbimin e rrjetit.
Pasi të keni bërë ndryshimet, rinisni shërbimin e rrjetit për të aplikuar konfigurimin e ri. rinisni rrjetin sudo systemctl
Me dorë:
-
Gjeni procesorët e bashkangjitur në secilën nyje duke përdorur: numactl –hardware lscpu
-
Gjeni maskat e bitave për secilin prej procesorëve:
- Duke supozuar bërthamat 0-11 për nyjen 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Gjeni IRQ-të e caktuara në portin që po caktohet: grep ethX /proc/interrupts dhe vini re vlerat IRQ Për shembullample, 181-192 për 12 vektorët e ngarkuar.
- Jehoni vlerën e afinitetit SMP në hyrjen përkatëse IRQ. Vini re se kjo duhet bërë për çdo hyrje IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Trego afinitetin IRQ:
- Për të treguar afinitetin IRQ për të gjitha bërthamat: /scripts/set_irq_affinity -s ethX
- Për të shfaqur vetëm bërthamat në prizën lokale NUMA: /scripts/set_irq_affinity -s lokale ethX
- Ju gjithashtu mund të zgjidhni një sërë bërthamash: /scripts/set_irq_affinity -s 40-0-8,16 ethX
SHËNIM
Skripti set_irq_affinity mbështet flamurin -s në versionin 40 të shoferit i2.16.11e dhe më vonë.
4.2 Radhët Tx/Rx
Numri i parazgjedhur i radhëve të aktivizuara për secilën portë Ethernet nga drejtuesi gjatë inicializimit është i barabartë me numrin total të CPU-ve të disponueshme në platformë. Kjo funksionon mirë për shumë platforma dhe konfigurime të ngarkesës së punës. Megjithatë, në platformat me numër të lartë të bërthamave dhe/ose densitet të lartë të portës Ethernet, ky konfigurim mund të shkaktojë grindje mbi burimet. Prandaj, mund të jetë e nevojshme në disa raste të modifikohet parazgjedhja për çdo port në sistem.
Numri i paracaktuar i radhëve Tx/Rx mund të ndryshojë në varësi të modelit specifik dhe versionit të drejtuesit. Numri i radhëve mund të rregullohet duke përdorur komandën ethtool -L të renditur më poshtë.
SHËNIM
Në këto raste, Intel rekomandon që të zvogëloni numrin e radhëve të paracaktuar për çdo port në jo më shumë se numri i CPU-ve të disponueshme në nyjen NUMA lokale në portën e përshtatësit. Në disa raste, kur përpiqeni të balanconi burimet në zbatimin e numrit të lartë të porteve, mund të jetë e nevojshme të zvogëlohet edhe më tej ky numër.
Për të modifikuar konfigurimin e radhës:
Ish-i i mëposhtëmample vendos portin në 32 radhë Tx/Rx: ethtool -L ethX e kombinuar 32
Example output:
ethtool -l ethX
Parametrat e kanalit për ethX: Maksimale të paracaktuara:
RX: 96
TX: 96
Të tjera: 1
Të kombinuara: 96
Cilësimet aktuale të harduerit:
RX: 0
TX: 0
Të tjera: 1
Të kombinuara: 32
4.3 Moderimi i Ndërprerjes
Moderimi i ndërprerjeve adaptive është aktivizuar si parazgjedhje dhe është krijuar për të ofruar një qasje të ekuilibruar midis përdorimit të ulët të CPU-së dhe performancës së lartë. Megjithatë, mund të provoni të akordoni manualisht cilësimet e ndërprerjes për t'iu përshtatur rastit tuaj të përdorimit.
Gama prej 0-235 mikrosekonda siguron një interval efektiv prej 4,310 deri në 250,000 ndërprerje në sekondë. Vlera e rx-μsecs-high mund të vendoset e pavarur nga rx-μsecs dhe tx-μsecs në të njëjtën komandë ethtool, dhe është gjithashtu e pavarur nga algoritmi i moderimit të ndërprerjeve adaptive. Hardware-i themelor mbështet shkallëzimin në intervale 2 mikrosekonda, kështu që vlerat ngjitur mund të rezultojnë në të njëjtën shpejtësi ndërprerjeje.
- Për të çaktivizuar moderimin e ndërprerjeve adaptive: ethtool -C ethX adaptive-rx off adaptive-tx off
- Për të aktivizuar moderimin e ndërprerjeve adaptive: ethtool -C ethX adaptive-rx në adaptive-tx aktiv
Një vend i mirë për të filluar për sintonizimin e përgjithshëm është 84 μs, ose ~12000 ndërprerje/s. Nëse shihni se numëruesit rx_dropped po funksionojnë gjatë trafikut (duke përdorur ethtool -S ethX), atëherë me siguri keni një CPU shumë të ngadaltë, jo mjaftueshëm bufera nga madhësia e unazës së përshtatësit (ethtool -G) për të mbajtur paketat për 84 μs ose në një shkallë të ulët të ndërprerjes.
- Për të vendosur moderimin e ndërprerjeve në një shpejtësi fikse të ndërprerjeve prej 84 μs midis ndërprerjeve (12000 ndërprerje/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Vlera tjetër që duhet të provoni, nëse nuk jeni të maksimizuar në përdorimin e CPU62, është. Kjo përdor më shumë CPU, por shërben më shpejt dhe kërkon më pak përshkrues (madhësia e unazës, ethtool -G).
- Për të vendosur moderimin e ndërprerjeve në shpejtësinë fikse të ndërprerjeve prej 62 usecs ndërmjet ndërprerjeve (16000 ndërprerje/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Nëse numëruesit rx_dropped rriten gjatë trafikut (duke përdorur ethtool -S ethX), ndoshta keni një CPU shumë të ngadaltë, nuk ka bufera të mjaftueshëm nga madhësia e unazës së përshtatësit (ethtool -G) ose një shpejtësi shumë e ulët e ndërprerjes. Nëse nuk jeni të maksimizuar në përdorimin e CPU-së, mund të rrisni shkallën e ndërprerjes duke ulur vlerën ITR. Kjo përdor më shumë CPU, por shërbimet buferohen më shpejt dhe kërkon më pak përshkrues (madhësia e unazës, ethtool -G).
Nëse CPU-ja juaj është në 100%, atëherë nuk këshillohet rritja e shkallës së ndërprerjes. Në rrethana të caktuara, si p.sh. ngarkesa e lidhur me CPU-në, mund të dëshironi të rrisni vlerën μs për të mundësuar më shumë kohë CPU për aplikacionet e tjera.
Nëse keni nevojë për performancë të ulët vonesë dhe/ose keni shumë CPU për t'i kushtuar përpunimit të rrjetit, mund të çaktivizoni plotësisht moderimin e ndërprerjeve, gjë që mundëson që ndërprerjet të ndizen sa më shpejt që të jetë e mundur. - Për të çaktivizuar moderimin e ndërprerjes ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
SHËNIM
Kur funksionon me moderimin e ndërprerjeve të çaktivizuar, shkalla e ndërprerjeve në çdo radhë mund të jetë shumë e lartë. Merrni parasysh përfshirjen e parametrit rx-usec-high për të vendosur një kufi të sipërm në shpejtësinë e ndërprerjes. Komanda e mëposhtme çaktivizon moderimin e ndërprerjeve adaptive dhe lejon një maksimum prej 5 mikrosekonda përpara se të tregojë se marrja ose transmetimi ka përfunduar. Në vend që të rezultojë në deri në 200,000 ndërprerje në sekondë, ai kufizon ndërprerjet totale për sekondë në 50,000 nëpërmjet parametrit rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Provoni të rregulloni kohëmatësin e bashkimit të transmetimit/marrjes/prioritetit të lartë më të lartë (80/100/150/200) ose më të ulët për të gjetur vlerën optimale 25/20 për punën (10/5).
4.4 Madhësia e unazës
Nëse po shihni numërues rx_dropped në ethtool -S ethX (rx_dropped, rx_dropped.nic) ose dyshoni për presionin e cache-it me shumë radhë aktive, mund të provoni të rregulloni madhësinë e unazës nga vlera e paracaktuar. Vlera e paracaktuar është 512, maksimumi është 4096.
- Për të kontrolluar vlerat aktuale: ethtool -g ethX
Nëse dyshohet se mungesa e bufferimit po shkakton rënie në shkallën aktuale të ndërprerjes, mund të provoni fillimisht maksimumin, më pas minimumin, pastaj vazhdoni në një kërkim binar derisa të shihni performancën optimale.
Nëse dyshohet se presioni i memories së memories (shumë radhë aktive) reduktimi i buferave nga parazgjedhja mund të ndihmojë Intel® Data Direct I/O (Intel® DDIO) të funksionojë me më mirë efikasitet. Intel rekomandon të provoni 128 ose 256 për radhë, duke qenë i vetëdijshëm se një rritje në shkallën e ndërprerjeve përmes ethtool -C mund të jetë e nevojshme për të shmangur një rritje në rx_dropped. - Për të vendosur madhësinë e unazës në vlerë fikse: ethtool -G eth12 rx 256 tx 256
SHËNIM
Për të rregulluar rëniet e paketave Rx të gjetura me ethtool -S ethX|grep drop, merrni parasysh rritjen e madhësisë së unazës në 4096. Eksperimentoni për të gjetur cilësimin më të mirë për ngarkesën e punës, por kini kujdes nga përdorimi i tepërt i kujtesës me vlera më të larta.
4.5 Kontrolli i rrjedhës
Kontrolli i rrjedhës së shtresës 2 mund të ndikojë ndjeshëm në performancën e TCP dhe rekomandohet të çaktivizohet për shumicën e ngarkesave të punës. Një përjashtim i mundshëm është trafiku i rrëmbyeshëm ku shpërthimet nuk janë të gjata në kohëzgjatje.
Kontrolli i rrjedhës është i çaktivizuar si parazgjedhje.
- Për të aktivizuar kontrollin e rrjedhës: ethtool -A ethX rx në tx on
- Për të çaktivizuar kontrollin e rrjedhës: ethtool -A ethX rx off tx off
SHËNIM
Duhet të keni një partner lidhjeje të aftë për kontrollin e rrjedhës për të aktivizuar me sukses kontrollin e rrjedhës.
4.6 Korniza Jumbo
Kur mjedisi i pritshëm i trafikut përbëhet nga blloqe të mëdha të dhënash që transferohen, mund të jetë e dobishme të aktivizoni veçorinë e kornizës jumbo. Mbështetja Jumbo Frames mundësohet duke ndryshuar Njësinë Maksimale të Transmetimit (MTU) në një vlerë më të madhe se vlera e paracaktuar e 1500. Kjo i lejon pajisjes të transferojë të dhëna në paketa më të mëdha brenda mjedisit të rrjetit. Ky cilësim mund të përmirësojë xhiros dhe të zvogëlojë përdorimin e CPU-së për ngarkesa të mëdha pune I/O. Megjithatë, mund të ndikojë në ngarkesat e punës të paketave të vogla ose të ndjeshme ndaj vonesës.
SHËNIM
Kornizat Jumbo ose cilësimet më të mëdha MTU duhet të konfigurohen siç duhet në mjedisin e rrjetit tuaj.
Përdorni komandën ifconfig për të rritur madhësinë e MTU. Për shembullample, shkruani sa vijon, ku është numri i ndërfaqes: ifconfig mtu 9000 lart
Përndryshe, ju mund të përdorni komandën ip si më poshtë: ip link set mtu 9000 dev konfigurimi i lidhjes IP të dev
Sintonizimi i platformës (i40e jospecifike)
5.1 Cilësimet e BIOS-it
- Aktivizo Intel® VT-d për ngarkesat e punës së virtualizimit.
- Hyper-threading (përpunuesit logjikë) mund të ndikojnë në performancën. Eksperimentoni me të aktivizuar ose çaktivizuar për ngarkesën tuaj të punës.
- Intel® Turbo Boost lejon që bërthamat e CPU-së të funksionojnë me një frekuencë më të lartë se frekuenca bazë e CPU-së. Aktivizimi i Intel® Turbo Boost mund të përmirësojë performancën për shumë ngarkesa pune, por konsumon më shumë energji për të mbajtur bërthamat në frekuencë më të lartë. Eksperimentoni me Turbo Boost off/aktiv për ngarkesën tuaj të punës.
SHËNIM
Frekuencat Turbo nuk janë të garantuara nëse platforma po përjeton përdorim të lartë të përgjithshëm të CPU-së. Frekuencat më të larta turbo bërthamore reduktohen me rritjen e përdorimit të përgjithshëm të CPU-së.
5.2 Menaxhimi i energjisë
Menaxhimi i energjisë mund të ndikojë në performancën, veçanërisht në ngarkesat e punës me vonesë të ulët. Nëse performanca është një prioritet më i lartë se ulja e konsumit të energjisë, Intel rekomandon që të eksperimentoni me kufizimin e efekteve të menaxhimit të energjisë. Ka shumë mënyra të ndryshme për të kufizuar menaxhimin e energjisë, përmes veglave të sistemit operativ, cilësimeve të BIOS-it dhe parametrave të nisjes së kernelit. Zgjidhni metodën dhe nivelin më të mirë që i përshtatet mjedisit tuaj.
5.2.1 Kontrolli i Shtetit C
Kufizimi i hyrjes së gjendjes C në CO ose C1 përmirëson performancën dhe rrit përdorimin e energjisë.
Çaktivizimi i hyrjes në gjendjen e Paketës CPU C6 mund të përmirësojë performancën e rrjetit. Megjithatë, kjo rrit përdorimin e energjisë.
Opsionet e mëposhtme janë në dispozicion:
- Kontrolloni në mënyrë dinamike hyrjen e gjendjes C:
Hapur
/dev/cpu_dma_latency dhe shkruani vonesën maksimale të lejueshme në të.
SHËNIM
Ekziston një program i vogël i quajtur cpudmalatency.c që mund të shkarkohet nga komuniteti me burim të hapur, të kompilohet dhe të ekzekutohet nga linja e komandës për të bërë pikërisht këtë.
Ish-i i mëposhtëmample lejon pesë μs kohë zgjimi, dhe kështu lejon hyrjen në C1: cpudmalatency 5 &
- Kufizoni gjendjen maksimale C në cilësimet e nisjes së kernelit:
Për CPU-të Intel: intel_idle.max_cstates=1
Për CPU-të jo Intel: processor.max_cstates=1 - Përdor komandën cpupower për të kontrolluar dhe çaktivizuar gjendjen e CPU C6: Kontrollo: monitor cpupower ose cpupower idle-info
Çaktivizo C6: cpupower idle-set -d3 ose
Çaktivizo C-States: cpupower idle-set -D0
Shënime:
- Çaktivizoni gjendjet C në CPU nëse serveri ka procesorë të shkallëzueshëm Intel® Xeon® të gjeneratës së katërt. Kur aktivizohet ose çaktivizohet Hyper Threading, çaktivizimi i gjendjeve të papunë (-D4) parandalon hyrjen e bërthamave në gjendje me fuqi të ulët gjatë periudhave të boshtit dhe zvogëlon vonesën e CPU-së në kalimin midis gjendjeve joaktive dhe aktive.
- Menaxhimi i energjisë i procesorit të shkallëzueshëm të gjeneratës së 4-të Intel® Intel® Xeon® është jashtëzakonisht agresiv. Për të shmangur hyrjen e bërthamave në gjendje me fuqi të ulët, provoni të zvogëloni numrin e bërthamave në përdorim për t'i mbajtur ato zgjuar për më gjatë (ethtool -L të kombinuara ). Gjithashtu, lidhni ndërprerjet me bërthama specifike duke përdorur afinitetin e caktuar irq (më shpesh me -x lokale ose listë të bërthamave të CPU-së) dhe sigurohuni që ngarkesa e punës të funksionojë në të njëjtat bërthama me grupin e detyrave ose numactl. Kjo përmirëson performancën duke i mbajtur bërthamat aktive dhe duke optimizuar trajtimin e ndërprerjeve.
Aktivizo C6:
cpupower idle-set -d3
Aktivizo shtetet C:
cpupower boshe-set -E
- Një metodë tjetër është përdorimi i mjetit të akorduar (të përfshirë me shumë shpërndarje Linux) për të vendosur një performancë profesionalefile. Këto profiles modifikoni disa cilësime të OS që mund të ndikojnë në performancën në shumë aplikacione. Është konstatuar se profile ofron përmirësim për shumicën e ngarkesave të punës.
Kontrollo:
tuned-adm aktiv
Set:
tuned-adm profile rrjet-përdorimi
SHËNIM
Shërbimi i akorduar duhet të funksionojë për komandat e mësipërme. Për të kontrolluar/rifilluar, akorduar: statusi systemctl akorduar systemctl rinisni akorduar
Ju gjithashtu mund të ndaloni çdo hyrje të gjendjes C duke shtuar sa vijon në linjën e nisjes së kernelit:
boshe = sondazh - Kufizoni gjendjen C përmes cilësimeve të menaxhimit të energjisë të BIOS-it të sistemit, të cilat mund të kenë një performancë profile në dispozicion.
Mjete të tilla si turbostat ose x86_energy_perf_policy mund të përdoren për të kontrolluar ose vendosur cilësimet e menaxhimit të energjisë.
5.2.2 Menaxhimi i energjisë PCIe
Menaxhimi i energjisë në gjendje aktive (ASPM) mundëson një gjendje më të ulët të energjisë për lidhjet PCIe kur ato nuk janë në përdorim aktiv. Kjo mund të shkaktojë vonesë më të lartë në pajisjet e rrjetit PCIe, kështu që Intel rekomandon që të çaktivizoni ASPM për ngarkesat e punës të ndjeshme ndaj vonesës. Çaktivizoni ASPM duke shtuar sa vijon në linjën e nisjes së kernelit: pcie_aspm=off
5.2.3 Shkallëzimi i Frekuencës së CPU-së
Shkallëzimi i frekuencës së procesorit (ose shkallëzimi i shpejtësisë së CPU) është një teknikë e menaxhimit të energjisë Linux në të cilën shpejtësia e orës së sistemit rregullohet në lëvizje për të kursyer energji dhe nxehtësi. Ashtu si shtetet C, kjo mund të shkaktojë vonesë të padëshiruar në lidhjet e rrjetit.
Mjeti cpupower mund të përdoret gjithashtu për të kontrolluar dhe modifikuar standardet dhe kufijtë e performancës së CPU:
- Kontrolloni: monitori i fuqisë së procesorit ose
- Cakto CPU-të në modalitetin e performancës: frekuenca e përcaktimit të fuqisë së cpupower - performanca
SHËNIM
Ndryshimet në kufijtë e frekuencës së CPU-së mund të kenë ndikim në shumë ngarkesa pune dhe mund të çaktivizojnë veçori të tjera, të tilla si modaliteti turbo i CPU-së.
Për të çaktivizuar shkallëzimin e frekuencës së CPU-së, çaktivizoni shërbimin e energjisë së CPU me komandat e mëposhtme:
systemctl stop cpupower.shërbim
systemctl çaktivizon cpupower.service
5.2.4 Udhëzime shtesë për menaxhimin e energjisë
Detaje shtesë jepen në këtë nivel të lartëview e shumë prej veçorive të menaxhimit të energjisë në procesorët Intel® Xeon® Scalable të Gjeneratës së 3-të, si dhe udhëzime se si këto veçori mund të integrohen në një nivel platforme: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost e bën procesorin më të shpejtë kur nevojitet, por mund të konsumojë energji shtesë. Çaktivizimi i Turbo Boost e mban procesorin me një shpejtësi të qëndrueshme, duke ju dhënë një nivel të qëndrueshëm të performancës për ngarkesa specifike të punës.
5.4 Firewall-et
Firewall-et mund të ndikojnë në performancën, veçanërisht në performancën e vonesës.
Çaktivizoni iptables/firewalld nëse nuk kërkohet.
5.5 Cilësimet e aplikacionit
Shpesh një thread i vetëm (i cili korrespondon me një radhë të vetme rrjeti) nuk është i mjaftueshëm për të arritur gjerësinë maksimale të brezit. Disa arkitektura platformash, si AMD, priren të heqin më shumë paketa Rx me një fije të vetme në krahasim me platformat me procesorë të bazuar në Intel.
Konsideroni përdorimin e mjeteve si grupi i detyrave ose numactl për të ngjitur aplikacionet në nyjen NUMA ose bërthamat e CPU-së lokale në pajisjen e rrjetit. Për disa ngarkesa pune, si për shembull I/O ruajtëse, zhvendosja e aplikacionit në një nyje jo lokale ofron përfitime.
Eksperimentoni me rritjen e numrit të fijeve të përdorura nga aplikacioni juaj nëse është e mundur.
Versioni 5.6 Kernel
Shumica e bërthamave moderne në kuti janë mjaft të optimizuara për performancën, por, në varësi të rastit të përdorimit tuaj, përditësimi i kernelit mund të sigurojë performancë të përmirësuar. Shkarkimi i burimit ju mundëson gjithashtu të aktivizoni/çaktivizoni disa veçori përpara se të ndërtoni kernelin.
5.7 Sistemi operativ/Cilësimet e kernelit
Konsultohuni me udhëzuesit e akordimit të sistemit operativ, të tillë si Udhëzuesi i akordimit të performancës së rrjetit Red Hat Enterprise Linux, për më shumë informacion mbi akordimin e përgjithshëm të sistemit operativ.
Disa parametra të zakonshëm për tu sintonizuar janë renditur në tabelën e mëposhtme. Vini re se këto janë vetëm pika fillestare të sugjeruara dhe ndryshimi i tyre nga standardet mund të rrisë burimet e përdorura në sistem. Megjithëse rritja e vlerave mund të ndihmojë në përmirësimin e performancës, është e nevojshme të eksperimentoni me vlera të ndryshme për të përcaktuar se çfarë funksionon më mirë për një sistem të caktuar, ngarkesën e punës dhe llojin e trafikut.
Parametrat e kernelit mund të konfigurohen duke përdorur mjetin sysctl në Linux siç tregohet më poshtë.
te view vlerat e paracaktuara për rmem dhe wmem në sistem:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Vendosni vlerat në maksimum (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Madhësitë e buferit të foleve, të njohura gjithashtu si buffer pranimi (rmem) dhe bufferi i transmetimit (wmem), janë parametra të sistemit që specifikojnë sasinë e memories së rezervuar për trafikun e rrjetit hyrës dhe dalës.
Ekzekutimi i sysctl pa argumentin -w liston parametrin me cilësimin e tij aktual.
Cilësimi i stivës | Përshkrimi |
net.core.rmem_default | Madhësia e parazgjedhur e dritares së pranimit |
net.core.wmem_default | Madhësia e parazgjedhur e dritares së transmetimit |
net.core.rmem_max | Madhësia maksimale e dritares së pranimit |
net.core.wmem_max | Madhësia maksimale e dritares së transmetimit |
net.core.optmem_max | Buferat maksimale të memories së opsioneve |
net.core.netdev_max_backlog | Mbështetja e paketave të papërpunuara përpara se kerneli të fillojë të bjerë |
net.ipv4.tcp_rmem | Rezervuesi i memories për buferët e leximit të TCP |
net.ipv4.tcp_wmem | Rezervuesi i memories për buferët e dërgimit të TCP |
Kerneli, grupi i rrjetit, mbajtësi i kujtesës, shpejtësia e CPU-së dhe parametrat e menaxhimit të energjisë mund të kenë një ndikim të madh në performancën e rrjetit. Një rekomandim i zakonshëm është që të aplikoni për pro xhiros së rrjetitfile duke përdorur komandën e sintonizuar. Kjo modifikon disa cilësime të OS për t'u dhënë përparësi aplikacioneve të rrjetit.
Kontrollo:
tuned-adm aktiv
Set:
tuned-adm profile rrjet-përdorimi
5.8 Mbështetja e pajisjes së rrjetit
Kjo veçori ndihmon në përmirësimin e performancës së rrjetit duke menaxhuar trafikun në hyrje në mënyrë efektive, duke reduktuar humbjen e paketave, duke ulur vonesën dhe duke rritur xhiros. Kjo çon në një përvojë më të mirë të përdoruesit dhe përgjigje më të shpejtë të sistemit.
Si parazgjedhje, ai është i aktivizuar në shumicën e sistemeve operative Linux. Për të kontrolluar vlerën e paracaktuar:
sysctl net.core.netdev_max_backlog
Vlera maksimale për netdev_max_backlog mund të ndryshojë në varësi të faktorëve si versioni i kernelit, hardueri, memoria dhe ngarkesa e punës. Në shumë raste, 8192 shihet si një vlerë e mirë. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfigurimet dhe akordimi specifik për platformën
5.9.1 Procesorë të shkallëzuar të gjeneratës së 4-të Intel® Xeon®
Menaxhimi i energjisë i procesorit Intel® Xeon® Scalable i Gjeneratës së 4-të Intel® është jashtëzakonisht agresiv në krahasim me procesorët Intel® Xeon® Scalable të Gjeneratës së 3-të. Për të shmangur hyrjen e bërthamave në gjendje me fuqi të ulët, provoni të zvogëloni numrin e bërthamave në përdorim për t'i mbajtur ato zgjuar për më gjatë.
Cilësimet e rekomanduara të Bios për performancën më të lartë
- Aktivizo/çaktivizo Hyper-threading (bazuar në kërkesën e ngarkesës së punës dhe objektivat e performancës) në CPU.
- Vendosni sistemin profile te Performanca për performancën maksimale.
SHËNIM
Kjo rezulton në konsum më të lartë të energjisë - Cakto menaxhimin e fuqisë së CPU-së në Performancë maksimale për t'i dhënë përparësi performancës maksimale të CPU-së mbi efikasitetin e energjisë.
- Aktivizo Turbo Boost. Çaktivizimi i Turbo Boost në cilësimet e BIOS-it të sistemit zakonisht e pengon CPU-në të rrisë dinamikisht shpejtësinë e orës përtej frekuencës bazë.
- SHËNIM
Çaktivizimi i Turbo Boost mund të jetë i përshtatshëm për raste të caktuara përdorimi ku performanca e qëndrueshme, efikasiteti i energjisë ose menaxhimi termik kanë përparësi ndaj performancës maksimale. - Çaktivizo veçorinë Single Root I/O Virtualization (SR-IOV), nëse sistemi nuk po përdor teknologjitë e virtualizimit.
- Çaktivizoni gjendjet C për të udhëzuar CPU-në të qëndrojë aktive dhe të parandalojë hyrjen në gjendje më të thellë të papunësisë.
- Çaktivizoni C1E, për t'u siguruar që CPU të mbetet aktive dhe të mos hyjë në gjendjen e papunë C1E.
- Vendosni frekuencën uncore në maksimum për të udhëzuar sistemin të funksionojë në frekuencën më të lartë të disponueshme.
- Në platformat Dell, vendosni emulimin e bërthamës së Tabelës së Përshkrimit të Shumëfishtë APIC (MADT) në Linear (ose Round-Robin në varësi të BIOS) për të siguruar një hartë të qartë dhe të parashikueshme të bërthamave të CPU.
Rregullimet e rekomanduara të nivelit të sistemit operativ për performancë të optimizuar
- Cakto guvernatorin e shkallëzimit të frekuencës së CPU në performancë. cpupower frequency-set -g performance cpupower frekuenca-info
- Çaktivizo shtetet C. Cpupower-i papunë -D0
- Cakto buferat bërthamore Rx (rmem) dhe Tx (wmem) në vlerën maksimale. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Cakto ngarkesën e mbetur të pajisjes së rrjetit. sysctl -w net.core.netdev_max_backlog=8192
- Set tuned profile (ngarkesa e punës varet nga xhiroja/latenca).
tuned-adm profile rrjet-përdorimi
Rregullime të rekomanduara të nivelit të përshtatësit për performancë të optimizuar
- Kufizoni numrin e radhëve për t'u përdorur për trafikun e aplikacioneve. Përdorni numrin minimal të radhëve të kërkuara për të mbajtur aktive bërthamat e CPU-së të lidhura për t'i parandaluar ato të hyjnë në gjendje më të thellë të papunësisë (rregulloni për ngarkesën e punës): ethtool -L e kombinuar 32
- Cakto normat e moderimit të ndërprerjeve. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Provoni të rregulloni kohëmatësin e bashkimit të transmetimit/marrjes/prioritetit të lartë më të lartë (80/100/150/200) ose më të ulët (25/20/10/5) për të gjetur vlerën optimale për ngarkesën e punës. - Vendosni madhësitë e unazave Rx/Tx. ethtool -G rx 4096 tx 4096
SHËNIM
Nëse shihni rënie të paketave Rx me ethtool -S| grep drop, provo të zvogëlosh madhësinë e unazës në <4096. Përpiquni të gjeni vlerën optimale për ngarkesën e punës ku paketat nuk hidhen. - Cakto afinitetin IRQ. Përdorni bërthamat lokale në NIC, ose hartimin specifik të bërthamës (ku # bërthama është e barabartë me numrin e radhëve të vendosura në 1 në faqen 26. systemctl stop irqbalance set_irq_affinity -X local OSE vendos_irq_affinitet -X
5.9.2 AMD EPYC
Procesorët AMD EPYC janë CPU të fuqishme të krijuara për serverë dhe qendra të dhënash, të ndërtuara në arkitekturën Zen të AMD. Cilësimet e mëposhtme janë nga seria EPYC e gjeneratës së katërt të AMD.
Cilësimet e rekomanduara të BIOS-it për performancën më të lartë
- Aktivizo modalitetin e personalizuar për t'i lejuar përdoruesit të rregullojnë performancën e procesorit, konsumin e energjisë dhe cilësimet e tjera. Kjo ndihmon në rregullimin e mirë të sistemit për ekuilibrin më të mirë midis performancës dhe efikasitetit të energjisë.
- Aktivizo rritjen e performancës bazë për të lejuar CPU-në të rrisë automatikisht shpejtësinë e saj për të trajtuar detyra më intensive, duke përmirësuar performancën e përgjithshme.
- Çaktivizo kontrollin global të gjendjes C, për të parandaluar që CPU të hyjë në gjendje më të thella të kursimit të energjisë, të njohura si shtete C, të cilat mund të ruajnë reagimin.
SHËNIM
Çaktivizimi i gjendjeve C mund të shkaktojë konsum shtesë të energjisë dhe të rrisë temperaturat termike. Monitoroni të dyja për ngarkesën e punës. - Aktivizo/çaktivizo Multithreading Simultaneous (SMT) në CPU, bazuar në kërkesat e ngarkesës së punës dhe objektivat e performancës. SMT është ekuivalent me Hyper Threading në CPU-të Intel.
SHËNIM
Për performancë të optimizuar, referojuni Tuning i40e Driver Settings në faqen 13 dhe Platforma Tuning (i40e Jo-Specific) në faqen 19 për sintonizimin e rekomanduar të nivelit të OS dhe përshtatësit.
Lidhja e përshtatësit
Lidhja Linux është një veçori e fuqishme që mund të përmirësojë ndjeshëm performancën e rrjetit, tepricën dhe tolerancën e gabimeve në mjediset e serverit. Megjithatë, është e rëndësishme të theksohet se kërkon pajisje të pajtueshme rrjeti dhe konfigurim të duhur si në server ashtu edhe në çelës për të funksionuar siç duhet.
Drejtuesi i lidhjes në Linux ju lejon të grumbulloni ndërfaqe të shumta fizike të rrjetit në një ndërfaqe të lidhur. Kjo ndërfaqe e lidhur shfaqet si një ndërfaqe e vetme e rrjetit virtual për sistemin operativ dhe aplikacionet.
SHËNIM
Lidhja është një ndërfaqe logjike, kështu që nuk është e mundur të vendoset afiniteti i CPU-së drejtpërdrejt në ndërfaqen e lidhjes (p.sh.ample, bond0). Kjo do të thotë, nuk ka kontroll të drejtpërdrejtë mbi trajtimin e ndërprerjeve ose afinitetin e CPU-së. Afiniteti i CPU-së duhet të konfigurohet për ndërfaqet themelore që janë pjesë e lidhjes.
Lidhja siguron disa mënyra funksionimi, secila me karakteristikat e veta.
Modaliteti | Lloji |
0 | Round Robin |
1 | Rezervimi aktiv |
2 | XOR |
3 | Transmetimi |
4 | LACP |
5 | Bilanci i ngarkesës së transmetimit |
6 | Bilanci i ngarkesës adaptive |
Ka metoda të ndryshme për të krijuar një lidhje në Linux. Një nga metodat më të zakonshme është përdorimi i konfigurimit të rrjetit files (për shembullample, ndërfaqet /etc/network/ ose /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurimi duke përdorur konfigurimin e rrjetit Files
Hapat e mëposhtëm krijojnë lidhjen përmes konfigurimit të rrjetit files.
- Zgjidhni dy ose më shumë porte NIC për lidhje (për shembullample, ethX dhe ethY)
- Hapni konfigurimin e NIC Files nën /etc/sysconfig/network-scripts/ për ndërfaqen e kërkuar NIC (për shembullample, vi ifcfg-ethX dhe vi ifcfg-ethY) dhe bashkëngjitni tekstin e mëposhtëm:
MASTER=bondN [Shënim: N është një numër i plotë për të përmendur numrin e lidhjes.] SLAVE=po - Krijo një skrip rrjeti bond file duke përdorur vi /etc/sysconfig/networkscripts/ifcfg-bondN dhe shkruani tekstin e mëposhtëm:
DEVICE=bondN [Shënim: N është një numër i plotë për të përmendur numrin e lidhjes] ONBOOT=po USERCTL=jo BOOTPROTO=dhcp (ose) asnjë
IPADDR=200.20.2.4 [kërkohet nëse BOOTPROTO=asnjë] NETMASK=255.255.255.0 [kërkohet nëse BOOTPROTO=asnjë] NETWORK=200.20.2.0 [kërkohet nëse BOOTPROTO=asnjë] BROADCAST200.20.2.255=1kërkohet nëse kërkohet. BOOTPROTO=asnjë] BONDING_OPTS=”mode=100 miimon=XNUMX″
SHËNIM
Modaliteti mund të jetë çdo numër i plotë nga 0 në 6 në bazë të kërkesës. - Rinisni shërbimet e rrjetit duke përdorur rinisjen e rrjetit të shërbimit ose rinisni systemctl NetworkManager.service
Zgjidhja e problemeve të performancës
7.1 Përdorimi i CPU
Kontrolloni përdorimin e CPU-së për bërthamë ndërsa ngarkesa e punës është në punë.
Vini re se përdorimi për bërthamë është më i rëndësishëm për performancën sesa përdorimi i përgjithshëm i CPU-së pasi ofron një ide të përdorimit të CPU-së për radhë rrjeti. Nëse keni vetëm disa threads që drejtojnë trafikun e rrjetit, atëherë mund të keni vetëm disa bërthama duke u përdorur. Sidoqoftë, nëse ato bërthama janë në 100%, atëherë xhiroja e rrjetit tuaj ka të ngjarë të kufizohet nga përdorimi i CPU-së dhe është koha për të kryer sa më poshtë:
- Sintonizoni moderimin/madhësinë e unazës IRQ siç detajohet në Moderimin e Ndërprerjes.
- Rritni numrin e fijeve të aplikacionit për të shpërndarë ngarkesën e CPU-së mbi më shumë bërthama. Nëse të gjitha bërthamat funksionojnë në 100%, atëherë aplikacioni juaj mund të jetë i lidhur me CPU dhe jo në rrjet.
Mjetet e zakonshme të disponueshme:
- krye
— Shtypni 1 për të zgjeruar listën e CPU-ve dhe për të kontrolluar se cilat janë duke u përdorur.
— Vini re nivelin e përdorimit.
— Vini re se cilat procese janë renditur si më aktivet (në krye të listës). - mpstat
Ish-i i mëposhtëmamplinja e komandës u testua në Red Hat Enterprise Linux 7.x.
Ai shfaq përdorimin e CPU-së për bërthamë (duke gjetur përqindjen totale të papunë dhe duke zbritur nga 100) dhe thekson vlerat mbi 80% me të kuqe. mpstat -P LEK 1 1 | grep -v Mesatare | bisht -n +5 | kokë -n -1 | awk '{ print (100-$13)}' | egrep -color=gjithmonë '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | kolonë - perf top Kërkoni se ku po shpenzohen ciklet.
7.2 numërues i40e
Shoferi i40e ofron një listë të gjatë numëruesish për korrigjimin dhe monitorimin e ndërfaqes përmes komandës ethtool -S ethX. Mund të jetë e dobishme të shikoni rezultatin gjatë ekzekutimit të një ngarkese pune dhe/ose të krahasoni vlerat e numëruesit përpara dhe pas ekzekutimit të ngarkesës së punës.
- Për të marrë një grumbull të plotë të numëruesve i40e: ethtool -S ethX
- Për të parë vetëm numërues jo zero: shiko -d (ethtool -S ethX) | egrep -v :\ 0 | kolonë
Disa gjëra për të kërkuar: - rx_dropped do të thotë se CPU nuk po i shërben buferët mjaft shpejt.
- port.rx_dropped do të thotë se diçka nuk është mjaft e shpejtë në sistemin slot/memory/.
7.3 Numëruesit e rrjetit
Kontrolloni netstat -s para/pas një ekzekutimi të ngarkesës së punës.
Netstat mbledh informacionin e rrjetit nga të gjitha pajisjet e rrjetit në sistem. Prandaj, rezultatet mund të ndikohen nga rrjete të tjera përveç rrjetit në provë. Dalja nga netstat -s mund të jetë një tregues i mirë i problemeve të performancës në sistemin operativ Linux ose kernel. Konsultohuni me udhëzuesit e akordimit të sistemit operativ, të tillë si Udhëzuesi i akordimit të performancës së rrjetit Red Hat Enterprise Linux, për më shumë informacion mbi akordimin e përgjithshëm të sistemit operativ.
7.4 Regjistrat e sistemit
Kontrolloni regjistrat e sistemit për gabime dhe paralajmërime (/var/log/messages, dmesg).
7.5 Intel svr-info Tool
Intel ofron një mjet svr-info (shih https://github.com/intel/svr-info) për Linux që kap detajet përkatëse të harduerit dhe softuerit nga një server. Prodhimi svr-info mund të jetë jashtëzakonisht i dobishëm për të identifikuar pengesat e sistemit ose cilësimet/akordimet që nuk janë të optimizuara për ngarkesën e punës. Kur hapni një kasë mbështetëse me Intel për çështje të performancës që lidhen me Ethernet, sigurohuni që të përfshini daljen svr-info (tekst file) për çdo server Linux në konfigurimin e testit.
- Shkarkoni dhe instaloni svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> emri i hostit.txt - Mblidhni rezultatin:
./svr-info > emri i hostit.txt - Bashkangjit një tekst (.txt) file për çdo server në rastin tuaj të mbështetjes Intel për analizë.
Rekomandime për skenarë të përbashkët të performancës
8.1 Përcjellja e IP
- Përditëso kernelin.
Disa kernele të kohëve të fundit në shpërndarje kanë degraduar performancën e rrugëzimit për shkak të ndryshimeve të kernelit në kodin e rrugëtimit duke filluar me heqjen e cache-it të rrugëtimit për shkak të sigurisë. Kernelet e fundit jashtë shpërndarjes duhet të kenë arna që lehtësojnë ndikimin e performancës së këtyre ndryshimeve dhe mund të ofrojnë performancë të përmirësuar. - Çaktivizo hiper-threading (bërthamat logjike).
- Redaktoni parametrat e nisjes së kernelit.
— Detyro iommu off (intel_iommu=off ose iommu=off) nga linja e nisjes së kernelit përveç nëse kërkohet për virtualizim
— Fikni menaxhimin e energjisë: procesor.max_cstates=1 idle=poll pcie_aspm=off - Kufizoni numrin e radhëve që të jetë i barabartë me numrin e bërthamave në prizën lokale (12 në këtë ishample). ethtool -L ethX i kombinuar 12
- Pin ndërpret vetëm në prizën lokale. set_irq_affinity -X lokal ethX OSE set_irq_affinity -X lokal ethX
SHËNIM
-X ose -x mund të përdoret në varësi të ngarkesës së punës. - Ndryshoni madhësitë e unazave Tx dhe Rx sipas nevojës. Një vlerë më e madhe kërkon më shumë burime, por mund të sigurojë tarifa më të mira të dërgimit. ethtool -G ethX rx 4096 tx 4096
- Çaktivizoni GRO-në gjatë rrugëtimit.
Për shkak të një problemi të njohur të kernelit, GRO duhet të fiket gjatë rrugëtimit/përcjelljes. ethtool -K ethX gro jashtë ku ethX është ndërfaqja Ethernet që duhet modifikuar. - Çaktivizoni moderimin e ndërprerjeve adaptive dhe vendosni një vlerë statike. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
SHËNIM
Në varësi të llojit të procesorit dhe ngarkesës së punës, parametrat e bashkimit për RX dhe TX mund të rregullohen për performancë të përmirësuar (ose më pak humbje të kornizës).
- Çaktivizoni murin e zjarrit. sudo systemctl çaktivizon murin e zjarrit sudo systemctl ndal murin e zjarrit
- Aktivizo përcjelljen e IP-së. sysctl -w net.ipv4.ip_forward=1
- Konfiguro vlerat maksimale për madhësitë e buferit të prizës së pranimit dhe dërgimit. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
SHËNIM
Në varësi të ngarkesës ose kërkesës, këto vlera mund të ndryshohen nga parazgjedhja.
8.2 Vonesa e ulët
- Fikeni hiper-threading (bërthamat logjike).
- Sigurohuni që pajisja e rrjetit të jetë lokale në numa core 0.
- Vendosni pikën e referimit në bërthamën 0 duke përdorur grupin e detyrave -c 0.
- Çaktivizo irqbalance duke përdorur systemctl stop irqbalance ose systemctl çaktivizo irqbalance
- Ekzekutoni skriptin e afinitetit për t'u shpërndarë nëpër bërthama. Provoni ose lokale ose të gjitha.
- Çaktivizo moderimin e ndërprerjeve. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- lartë 0
- Kufizoni numrin e radhëve që të jetë i barabartë me numrin e bërthamave në prizën lokale (32 në këtë ishample). ethtool -L ethX i kombinuar 32
- Pin ndërpret vetëm në prizën lokale (skript i paketuar me burimin e drejtuesit i40e). set_irq_affinity -X lokal ethX
- Përdorni një standard të vendosur si netperf -t TCP_RR, netperf -t UDP_RR ose NetPipe. netperf -t TCP_RR ose netperf -t UDP_RR
- Pink standardin në një bërthamë të vetme në nyjen lokale NUMA. grup detyrash -c
Seria Intel ® Ethernet 700
Udhëzuesi i akordimit të performancës Linux
dhjetor 2024
Doc. Nr.: 334019, Rev.: 1.2
Dokumentet / Burimet
![]() |
Përshtatja e performancës Linux të Serisë Intel Ethernet 700 [pdfUdhëzuesi i përdoruesit 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |