Mfululizo wa Intel ® Ethernet 700
Mwongozo wa Kurekebisha Utendaji wa Linux
Kikundi cha Mtandao cha Wingu cha NEX (NCNG)
Ufunuo 1.2
Desemba 2024
Historia ya Marekebisho
Marekebisho | Tarehe | Maoni |
1.2 | Desemba 2024 | · Mwongozo wa Ziada wa Usimamizi wa Nguvu. · Imeongezwa Intel* Turbo Boost. · Rejea ya Nyuma ya Kifaa cha Mtandao. · Usanidi na Urekebishaji wa Mfumo Maalumu ulioongezwa. · Imeongeza Kizazi cha 4 cha Intel* %eon* Vichakataji Vinavyoweza Kuongezeka. · Imeongezwa AMD EPYC. · Ilisasisha Uwezo wa Kuangalia Maunzi ya Mfumo. · Ilisasishwa iPerf2. · Ilisasishwa iPerf3. · Foleni za Tx/Rx Zilizosasishwa. · Udhibiti Uliosasishwa wa Kukatiza. · Ukubwa wa Pete Uliosasishwa. · Urekebishaji wa Mfumo Uliosasishwa (i40e Isiyo Maalum). · Mipangilio ya BIOS iliyosasishwa. · Udhibiti wa Jimbo la C uliosasishwa. · Imesasishwa ya Kuongeza Masafa ya CPU. · Mipangilio ya Programu Iliyosasishwa. · Mipangilio ya Mfumo wa Uendeshaji/Kernel iliyosasishwa. · Usambazaji wa IP uliosasishwa. · Hali ya Kuchelewa Kuchelewa. |
Agosti 2023 | Mabadiliko ya hati hii yanajumuisha: · Marejeleo Husika yaliyoongezwa. · Imeongezwa Hakikisha Kifurushi cha DDP kinapakia Ipasavyo. Imeongezwa iPerf2. Imeongezwa iPerf3. · Aliongeza netperf. · Uhusiano wa IRQ uliosasishwa. · Foleni za Tx/Rx zimeongezwa. · Ukubwa wa Pete Uliosasishwa. · Muafaka wa Jumbo ulioongezwa. · Uunganishaji wa Adapta. · Zana ya maelezo ya Intel svr. |
|
1.0 | Machi 2016 | Toleo la Awali (Intel Public). |
Utangulizi
Mwongozo huu unakusudiwa kutoa mwongozo wa kurekebisha mazingira kwa utendakazi bora wa mtandao kwa kutumia Intel ® Ethernet 700 Series NICs katika mazingira ya Linux. Inaangazia maunzi, kiendeshi, na hali ya mfumo wa uendeshaji na mipangilio ambayo inaweza kuboresha utendakazi wa mtandao. Ikumbukwe kwamba utendaji wa mitandao unaweza kuathiriwa na idadi yoyote ya athari za nje, ni zile za kawaida na za kushangaza tu ndizo zimeangaziwa katika mwongozo huu.
1.1 Marejeleo Husika
- Mwongozo wa Mtumiaji kwa adapta na vifaa vyote vya Intel ® Ethernet, vinavyoauni Windows na Linux:
Mwongozo wa Watumiaji wa Adapta za Intel ® Ethernet na Vifaa - Karatasi ya data ya Kiufundi:
Karatasi ya data ya Intel ® Ethernet Controller X710/XXV710/XL710 - Kamilisha kifurushi cha SW kwa bidhaa zote za Intel ® Ethernet (pakua viendeshaji vyote, NVM, zana, n.k.):
Intel ® Adapta ya Ethaneti Kamili ya Kifurushi cha Dereva - Kifurushi cha Usasishaji cha NVM (Kumbukumbu Isiyo na Tete):
Huduma ya Usasishaji ya Kumbukumbu Isiyo Tete (NVM) kwa Mfululizo wa Adapta 700 za Mtandao wa Intel ® Ethernet XNUMX - svr-info zana ya Linux ambayo inachukua maelezo ya maunzi na programu kutoka kwa seva: https://github.com/intel/svr-info
- Mwongozo wa Teknolojia ya DDP:
Mwongozo wa Teknolojia wa Kubinafsisha Kifaa Kinachobadilika cha Intel ® Ethernet 700 (DDP).
Orodha ya Hakiki ya Awali
2.1 Sasisha Matoleo ya Kiendeshaji/Firmware
Angalia matoleo ya kiendeshi/programu kwa kutumia ethtool -i ethx.
Sasisha yafuatayo kama inahitajika:
- Sasisha kiendesha 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 - Sasisha programu dhibiti
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Soma SOMA
Angalia matatizo yanayojulikana na upate maagizo ya hivi punde ya usanidi kutoka kwa README file imejumuishwa kwenye kifurushi cha chanzo cha i40e.
2.3 Angalia Kuwa Nafasi Yako ya PCI Express (PCIe) Ni x8
Sehemu zingine za PCIe x8 zimesanidiwa kama nafasi za x4. Nafasi hizi hazina kipimo data cha kutosha kwa kiwango cha laini kamili na vifaa vya bandari mbili na quad. Kwa kuongeza, ukiweka adapta yenye uwezo wa PCIe v3.0 kwenye slot ya PCIe v2.x, huwezi kupata kipimo data kamili. Kiendesha kifaa cha programu hugundua hali hii na huandika ujumbe ufuatao kwenye logi ya mfumo:
Kipimo data cha PCI-Express kinachopatikana kwa kadi hii hakitoshi kwa utendakazi bora. Kwa utendaji bora wa x8 PCI-Express slot inahitajika.
Hitilafu hii ikitokea, sogeza adapta yako kwenye eneo la kweli la PCIe v3.0 x8 ili kutatua suala hilo.
2.4 Angalia Uwezo wa Vifaa vya Mfumo
Katika 10 Gbps, 25 Gbps, na 40 Gbps Ethernet, kuna baadhi ya mahitaji ya chini ya CPU na mfumo. Kwa ujumla, kichakataji cha kisasa cha darasa la seva na usanidi bora wa kumbukumbu kwa jukwaa lako vinapaswa kutosha, lakini mahitaji yanatofautiana kulingana na mzigo wako wa kazi. Njia zote za kumbukumbu zinapaswa kujazwa na hali ya utendakazi wa kumbukumbu inapaswa kuwezeshwa kwenye BIOS. Thibitisha kuwa usanidi wako wa CPU na kumbukumbu unaweza kusaidia kiwango cha utendakazi wa mtandao unachohitaji kwa mzigo wako wa kazi.
KUMBUKA
XL710 ni kidhibiti cha 40 GbE. Adapta ya 2 x 40 GbE inayotumia kidhibiti hiki haikusudiwi kuwa 2 x 40 GbE lakini 1 x 40 GbE iliyo na mlango mbadala wa kuhifadhi. Wakati wa kujaribu kutumia trafiki ya kiwango cha laini inayohusisha milango yote miwili, swichi ya ndani imejaa na kipimo data kilichounganishwa kati ya milango miwili ni kikomo kwa jumla ya SO Gbps.
2.4.1 Vigezo vya Kernel Boot
Kama Intel® Virtualization Technology for Directed I/O (Intel® VT-d) imewashwa kwenye BIOS, Intel inapendekeza IOMMU iwe katika hali ya kupita kwa utendakazi bora wa mtandao wa seva pangishi. Hii huondoa onyesho la juu la DMA kwenye trafiki ya waandaji huku kuwezesha Mashine Pembeni (VM) bado ziwe na manufaa za Intel® VT-d. Hii inakamilishwa kwa kuongeza laini ifuatayo kwa vigezo vya boot ya kernel: fommu-pt.
2.5 Hakikisha Kifurushi cha DDP kinapakia Ipasavyo
Viendeshaji msingi vya 140ea na 140eb havina usaidizi wa moja kwa moja wa Kubinafsisha Kifaa Kinachobadilika (DDP). Ili kutumia DDP na vifaa vya 700 Series, mtaalamu wa DDPfile inaweza kutumika na programu ya testpmd.
Kwa maelezo juu ya DDP profiles, na jinsi ya kutumia mtaalamu wa DDPfile ukiwa na testpmd kwenye vifaa vya 700 Series, rejelea Mwongozo wa Teknolojia wa Kubinafsisha Kifaa Kinachobadilika cha Intel® Ethernet 700 Series (DDP).
Ili kuthibitisha kama mtaalamu wa DDPfile ilipakiwa kwa ufanisi:
testpmd> ddp pata orodha 0 Profile nambari ni: 1
KUMBUKA
Ikiwa profile nambari ni 0, hakuna kifurushi cha DDP kilichopakiwa. Ikitokea hitilafu ya upakiaji wa kifurushi cha DDP, kifaa hubadilika kuwa hali salama na vipengele vingi vya utendakazi havipatikani. Ikiwa kuna makosa kuhusiana na upakiaji wa kifurushi cha DDP, itasababisha masuala ya utendaji. Kwa hatua za utatuzi, rejelea Mwongozo wa Teknolojia wa Kubinafsisha Kifaa Kinachobadilika cha Inte/* Ethernet 700 (DDP).
Vipimo vya Msingi vya Utendaji na Mbinu ya Kurekebisha
3.1 Vigezo vya Utendaji wa Mtandao
Kabla ya kuanza zoezi la kurekebisha, ni muhimu kuwa na kipimo kizuri cha msingi cha utendaji wa mtandao wako. Kwa kawaida, pamoja na kupata kipimo cha awali cha utendakazi wa programu/mzigo wako mahususi, ni vyema pia kutumia kipimo cha kawaida cha utendakazi wa mtandao ili kuthibitisha kuwa kifaa chako cha mtandao kiko katika hali nzuri.
Kwa uboreshaji wa mfumo mmoja, netperf au iperf na NetPIPE zote ni zana dhabiti zisizo na rasilimali ambazo hukuwezesha kusisitiza muunganisho na kutambua masuala ya utendakazi.
Netperf ina nguvu kwa majaribio ya upitishaji na muda wa kusubiri. NetPIPE ni zana mahususi ya latency lakini inaweza kukusanywa kwa aina yoyote ya mazingira.
KUMBUKA
Jaribio la TCP_RR katika netperf hurejesha muda wa kusubiri katika thamani ya miamala/sekunde. Hii ni nambari ya safari ya kwenda na kurudi. Muda wa kusubiri wa njia moja unaweza kuhesabiwa kwa kutumia mlinganyo ufuatao:
Kuchelewa(matumizi) = (1⁄2) / [Shughuli/sekunde] * 1,000,000
3.1.1 iPerf2
Intel inapendekeza iperf2 juu ya iperf3 kwa hali nyingi za kuweka alama kwa sababu ya urahisi wa utumiaji na usaidizi wa nyuzi nyingi katika mfano mmoja wa programu. Intel inapendekeza kutumia chaguo la -P na nyuzi 2-4 kwa miunganisho ya 25G na karibu nyuzi 4-6 kwa miunganisho ya 40G.
- Kuendesha trafiki ya mwelekeo mmoja kutoka kwa mteja hadi seva: Amri ya seva example: iperf2 -s
Amri ya mteja example: iperf2 -c -P - Kuendesha trafiki ya pande mbili kutoka kwa mteja hadi seva (na kinyume chake): Amri ya seva example: iperf2 -s -p
Amri ya mteja example:
iperf2 -c -p -P --full-duplex AU
iperf2 -c -p -P -d
KUMBUKA
Chaguo zote mbili -full-duplex na -d katika iperf2 huruhusu mtumiaji kufanya majaribio ya pande mbili. Hata hivyo, chaguo la -full-duplex linalenga hasa majaribio kamili ya duplex.
KUMBUKA
Wakati wa kujaribu iperf2 kwenye milango mingi ya seva, alama ya -d inaweza kuongezwa kwa amri ya seva ili kuendesha vipindi vyote vya seva chinichini kutoka kwa dirisha moja la terminal. Bendera ya -d pia inaweza kutumika wakati amri ya seva imepachikwa ndani ya kitanzi kwenye hati.
KUMBUKA
Wakati wa kufanya jaribio la upitishaji wa mtandao na mtiririko/nyuzi moja (mfample: P1), vichakataji vya AMD huenda visitoe upitishaji unaotarajiwa, hasa NIC za kipimo data cha juu (ikiwa kasi ni >= kipimo data cha 25G). Matokeo yake, kubandikwa kwa programu kwa cores maalum inahitajika ili kufikia upitishaji wa juu. Tazama Mipangilio ya Programu kwenye ukurasa wa 22.
3.1.2 iPerf3
Ikiwa iperf3 inatumiwa, visa vingi vya programu vinahitajika kuchukua advantage ya nyuzi nyingi, RSS, na foleni za maunzi. Intel inapendekeza kuendesha na vipindi 2-4 vya programu kwa miunganisho ya 25G na karibu vipindi 4-6 kwa miunganisho ya 40G. Kila kipindi kinapaswa kubainisha thamani ya kipekee ya bandari ya TCP kwa kutumia -p chaguo.
- Ili kuendesha trafiki ya mwelekeo mmoja kutoka kwa mteja hadi seva:
Amri ya seva example:
iperf3 -s -p
Amri ya mteja example:
iperf3 -c -p - Kuendesha trafiki ya pande mbili kutoka kwa mteja hadi seva (na kinyume chake):
Amri ya seva example:
iperf3 -s -p
Amri ya mteja example: iperf3 -c -p -P --bidir - Kuanzisha hali nyingi (nyuzi) za iperf3, pendekezo ni kutumia kitanzi kuweka ramani kwenye bandari za TCP na kuendesha iperf3 chinichini kwa kutumia & kuunda michakato mingi sambamba.
Amri ya seva example, anza nyuzi 4: bandari=””; kwa i katika {0..3}; kufanya bandari=520$i; bash -c "iperf3 -s -p $port &"; kufanyika; Amri ya mteja example, anza nyuzi 4 - Sambaza bandari ya majaribio = ""; kwa i katika {0..3}; kufanya bandari=520$i; bash -c “iperf3 -c $serverIP -p $port &”; kufanyika; Amri ya mteja example, anza nyuzi 4 - Pokea bandari ya majaribio = ""; kwa i katika {0..3}; kufanya bandari=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; kufanyika; Kwa miunganisho ya 40G, ongeza kitanzi ili kuunda hadi matukio 6/nyuzi.
KUMBUKA
Wakati wa kufanya jaribio la upitishaji wa mtandao na mtiririko/nyuzi moja (mfample: P1), vichakataji vya AMD vinaweza kutotoa matokeo yanayotarajiwa, haswa kipimo data cha juu zaidi
NICs (ikiwa kasi ni >= kipimo data cha 25G). Matokeo yake, kubandikwa kwa programu kwa cores maalum inahitajika ili kufikia upitishaji wa juu. Tazama Mipangilio ya Programu kwenye ukurasa wa 22 na AMD EPYC kwenye ukurasa wa 26.
3.1.3 neti
Zana ya netperf ni chaguo dhabiti kwa upimaji wa matokeo na muda wa kusubiri.
- Jaribio la TCP_STREAM katika netperf hupima uwezo wa upitishaji wa kifaa. Amri ya seva example: netserver Mteja amri example: netperf -t TCP_STREAM -l 30 -H
- Jaribio la TCP_RR katika netperf hurejesha muda wa kusubiri katika thamani ya miamala/sekunde. Hii ni nambari ya safari ya kwenda na kurudi. Inapendekezwa kutumia -T x,x chaguo, walikuwa x ni CPU ndani ya kifaa. Muda wa kusubiri wa njia moja unaweza kukokotwa kwa kutumia: Latency(usec)=(1⁄2)/ [Shughuli/sek]*1,000,\ Amri ya seva exampkwa: mtandao
Amri ya mteja example: netperf -t TCP_RR -l 30 -H -T x,x - Kuanzisha hali nyingi (nyuzi) za netperf, pendekezo ni kutumia kitanzi kuweka ramani kwenye bandari za TCP na kuendesha netperf chinichini kwa kutumia & kuunda michakato mingi sambamba.
Amri ya seva example, anza nyuzi 8:
bandari=””; kwa i katika {0..7}; kufanya bandari=520$i; bash -c "netserver -L $serverIP -p $port &"; kufanyika;
Amri ya mteja example, anza nyuzi 8: bandari=””; kwa i katika {0..7}; kufanya bandari=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; kufanyika;
3.2 Mbinu ya Kurekebisha
Zingatia mabadiliko ya mpangilio mmoja kwa wakati mmoja ili ujue ni athari gani kila badiliko huleta kwenye jaribio lako. Kadiri unavyokuwa na utaratibu zaidi katika mchakato wa kurekebisha, ndivyo itakavyokuwa rahisi kutambua na kushughulikia sababu za vikwazo vya utendakazi.
Kurekebisha Mipangilio ya Dereva ya i40e
4.1 Mshikamano wa IRQ
Kuweka mipangilio ya mshikamano wa IRQ ili ukatizaji wa foleni tofauti za mtandao uambatanishwe na viini tofauti vya CPU kunaweza kuwa na athari kubwa kwenye utendakazi, hasa majaribio ya upitishaji wa nyuzi nyingi.
Ili kusanidi mshikamano wa IRQ, acha kutokuwa na usawa kisha utumie hati ya set_irq_affinity kutoka kwa kifurushi cha chanzo cha i40e au bandika foleni wewe mwenyewe. Zima kisawazisha cha IRQ cha nafasi ya mtumiaji ili kuwezesha ubandikaji wa foleni:
- systemctl zima irqbalance
- systemctl kuacha irqbalance
Kutumia set_irq_affinity hati kutoka kwa kifurushi cha chanzo cha i40e (inapendekezwa): - Ili kutumia cores zote:
[njia-to-i40epackage]/scripts/set_irq_affinity -X yote ethX - Kutumia cores pekee kwenye soketi ya ndani ya NUMA: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Unaweza pia kuchagua anuwai ya cores. Epuka kutumia cpu0 kwa sababu inaendesha kazi za kipima muda. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
KUMBUKA
Hati ya mshikamano huwezesha Uendeshaji wa Pakiti ya Kusambaza (XPS) kama sehemu ya mchakato wa kubandika wakati -x chaguo limebainishwa. Wakati XPS imewashwa, Intel inapendekeza kwamba uzime usawazishaji, kwa vile kisawazisha kernel kilicho na XPS kinaweza kusababisha utendakazi usiotabirika. Hati ya ushirika inalemaza XPS wakati chaguo la -X limebainishwa. Kuzima XPS na kuwezesha foleni za ulinganifu kuna manufaa kwa mizigo ya kazi ambapo utendakazi bora zaidi hupatikana wakati Tx na Rx zinapohudumiwa kwa jozi sawa za foleni.
Kusanidi foleni za ulinganifu katika Linux kunahusisha kurekebisha vigezo vya kiendeshi vya kiolesura cha mtandao ili kuwezesha foleni za kupokea ulinganifu (Rx) na foleni za kusambaza linganifu (Tx) kwa adapta za mtandao zinazotumika.
KUMBUKA
- Foleni linganifu ni kipengele cha hali ya juu cha mtandao, na si adapta au viendeshi vyote vya mfululizo 700 vinavyoungwa mkono.
- Hakikisha una usaidizi unaohitajika wa kiendeshi na maunzi kabla ya kujaribu kusanidi foleni za ulinganifu.
Ili kusanidi foleni za ulinganifu, fuata hatua hizi za jumla:
- Badilisha Usanidi wa Kiolesura cha Mtandao File: Tumia kihariri cha maandishi (kwa mfanoample, vi, nano, au gedit) ili kuhariri usanidi wa kiolesura cha mtandao file. The file kwa kawaida iko chini ya saraka ya /etc/sysconfig/network-scripts/ na ina jina kama ifcfg-ethX, ambapo ethX ni jina la kiolesura chako cha mtandao.
- Ongeza Vigezo vya Foleni ya Ulinganifu. Ongeza mistari ifuatayo kwenye usanidi wa kiolesura cha mtandao file: ETHTOOL_OPTS=”rx-foleni 8 tx-foleni 8″
- Anzisha tena Huduma ya Mtandao.
Baada ya kufanya mabadiliko, fungua upya huduma ya mtandao ili kutumia usanidi mpya. sudo systemctl kuanzisha upya mtandao
Kwa mikono:
-
Tafuta vichakataji vilivyoambatishwa kwa kila nodi kwa kutumia: numactl -hardware lscpu
-
Pata masks kidogo kwa kila kichakataji:
- Kuchukua cores 0-11 kwa nodi 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Pata IRQ zilizopewa bandari iliyopewa: grep ethX /proc/interrupts na kumbuka maadili ya IRQ Kwa zamaniample, 181-192 kwa vekta 12 zilizopakiwa.
- Eleza thamani ya mshikamano ya SMP kwenye ingizo linalolingana la IRQ. Kumbuka kuwa hii inahitaji kufanywa kwa kila ingizo la IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Onyesha mshikamano wa IRQ:
- Kuonyesha mshikamano wa IRQ kwa alama zote: /scripts/set_irq_affinity -s ethX
- Kuonyesha cores pekee kwenye soketi ya ndani ya NUMA: /scripts/set_irq_affinity -s local ethX
- Unaweza pia kuchagua anuwai ya cores: /scripts/set_irq_affinity -s 40-0-8,16 ethX
KUMBUKA
Hati ya set_irq_affinity inasaidia -s bendera katika toleo la kiendeshi la i40e 2.16.11 na baadaye.
4.2 Foleni za Tx/Rx
Nambari chaguomsingi ya foleni inayowashwa kwa kila mlango wa Ethaneti na kiendeshi wakati wa uanzishaji ni sawa na jumla ya idadi ya CPU zinazopatikana kwenye mfumo. Hii inafanya kazi vizuri kwa majukwaa mengi na usanidi wa mzigo wa kazi. Hata hivyo, katika mifumo iliyo na hesabu za juu za msingi na/au msongamano mkubwa wa mlango wa Ethaneti, usanidi huu unaweza kusababisha ugomvi wa rasilimali. Kwa hivyo, inaweza kuwa muhimu katika hali zingine kurekebisha chaguo-msingi kwa kila mlango kwenye mfumo.
Nambari chaguomsingi ya foleni za Tx/Rx inaweza kutofautiana kulingana na muundo maalum na toleo la kiendeshi. Idadi ya foleni inaweza kubadilishwa kwa kutumia amri ya ethtool -L iliyoorodheshwa hapa chini.
KUMBUKA
Katika hali hizi, Intel inapendekeza kwamba upunguze hesabu ya foleni chaguo-msingi kwa kila mlango hadi isiwe zaidi ya idadi ya CPU zinazopatikana katika nodi ya NUMA ya ndani hadi lango la adapta. Katika baadhi ya matukio, unapojaribu kusawazisha rasilimali kwenye utekelezaji wa hesabu ya bandari nyingi, inaweza kuwa muhimu kupunguza nambari hii hata zaidi.
Ili kurekebisha usanidi wa foleni:
Ex ifuatayoample huweka bandari kuwa foleni 32 za Tx/Rx: ethtool -L ethX pamoja 32
Exampmatokeo ya:
ethtool -l ethX
Vigezo vya kituo vya ethX: Viwango vilivyowekwa mapema:
RX: 96
TX: 96
Nyingine: 1
Pamoja: 96
Mipangilio ya maunzi ya sasa:
RX: 0
TX: 0
Nyingine: 1
Pamoja: 32
4.3 Kukatiza Kiasi
Udhibiti wa kukatiza unaojirekebisha umewashwa kwa chaguomsingi, na umeundwa ili kutoa mbinu iliyosawazishwa kati ya matumizi ya chini ya CPU na utendakazi wa juu. Hata hivyo, unaweza kujaribu kupanga mipangilio ya kukatiza wewe mwenyewe ili kutoshea kesi yako ya utumiaji.
Masafa ya sekunde 0-235 hutoa safu bora ya kukatizwa 4,310 hadi 250,000 kwa sekunde. Thamani ya rx-μsecs-juu inaweza kuwekwa huru kwa rx-μsecs na tx-μsecs kwa amri sawa ya ethtool, na pia haitegemei algoriti ya udhibiti wa ukatizaji unaobadilika. Maunzi ya msingi huauni uzito katika vipindi vya 2microsecond, kwa hivyo thamani zilizo karibu zinaweza kusababisha kasi sawa ya kukatiza.
- Ili kuzima udhibiti wa kukatiza unaobadilika: ethtool -C ethX adaptive-rx zima adaptive-tx imezimwa.
- Ili kuwasha udhibiti wa kukatiza unaobadilika: ethtool -C ethX adaptive-rx inawasha adaptive-tx.
Mahali pazuri pa kuanzia kwa urekebishaji wa jumla ni 84 μs, au ~12000 kukatizwa kwa sekunde. Ukiona vihesabio rx_dropped vinafanya kazi wakati wa trafiki (kwa kutumia ethtool -S ethX) basi labda una CPU polepole sana, hakuna buffer za kutosha kutoka kwa saizi ya pete ya adapta (ethtool -G) kushikilia pakiti kwa 84 μs au kwa kiwango cha chini cha usumbufu.
- Kuweka ukadiriaji wa kukatiza hadi kiwango kisichobadilika cha ukatizaji cha 84 μs kati ya kukatiza (12000 kukatizwa kwa sekunde): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Thamani inayofuata ya kujaribu, ikiwa hujaibiwa zaidi kwenye utumiaji wa CPU62, ni μs. Hii hutumia CPU zaidi, lakini huhifadhi akiba haraka, na inahitaji maelezo machache (saizi ya pete, ethtool -G).
- Kuweka ukadiriaji wa kukatiza hadi kiwango kisichobadilika cha matumizi 62 kati ya kukatiza (16000 kukatizwa kwa sekunde). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Ikiwa vihesabio rx_dropped huongezeka wakati wa trafiki (kwa kutumia ethtool -S ethX), huenda una CPU ya polepole sana, huna vihifadhi vya kutosha kutoka kwa saizi ya pete ya adapta (ethtool -G), au kiwango cha chini sana cha kukatiza. Iwapo haujapunguzwa matumizi ya CPU, unaweza kuongeza kasi ya kukatiza kwa kupunguza thamani ya ITR. Hii hutumia CPU nyingi zaidi, lakini huduma huhifadhi akiba haraka zaidi, na inahitaji maelezo machache (ukubwa wa pete, ethtool -G).
Ikiwa CPU yako iko kwa 100%, basi kuongeza kasi ya usumbufu haipendekezi. Katika hali fulani kama vile mzigo wa kazi unaofungwa na CPU, unaweza kutaka kuongeza thamani ya μs ili kuwezesha muda zaidi wa CPU kwa programu zingine.
Ikiwa unahitaji utendakazi wa muda wa chini na/au una CPU nyingi za kutumia kuchakata mtandao, unaweza kuzima ukadiriaji wa kukatiza kabisa, ambao huwezesha ukatizaji kuwaka haraka iwezekanavyo. - Ili kuzima udhibiti wa kukatiza ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
KUMBUKA
Wakati wa kufanya kazi na udhibiti wa kukatiza umezimwa, kasi ya usumbufu kwenye kila foleni inaweza kuwa ya juu sana. Zingatia kujumuisha kigezo cha rx-usec-high ili kuweka kikomo cha juu cha kasi ya usumbufu. Amri ifuatayo inalemaza udhibiti wa ukatizaji badilika na inaruhusu upeo wa sekunde 5 kabla ya kuonyesha kuwa upokeaji au usambazaji umekamilika. Badala ya kusababisha usumbufu mwingi kama 200,000 kwa sekunde, inaweka vikwazo vya kukatiza jumla kwa sekunde hadi 50,000 kupitia kigezo cha rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Jaribu kurekebisha kipima muda cha kusambaza/kupokea/kilichopewa kipaumbele cha juu zaidi (80/100/150/200) au punguza (25/20/10/thamani bora zaidi kwa upakiaji 5).
4.4 Ukubwa wa Pete
Ikiwa unaona rx_dropped counters katika ethtool -S ethX (rx_dropped, rx_dropped.nic), au shinikizo la kache linaloshukiwa na foleni nyingi zinazotumika, unaweza kujaribu kurekebisha ukubwa wa pete kutoka kwa thamani chaguo-msingi. Thamani chaguo-msingi ni 512, kiwango cha juu ni 4096.
- Kuangalia maadili ya sasa: ethtool -g ethX
Iwapo inashukiwa kuwa ukosefu wa uakibishaji husababisha kushuka kwa kasi ya sasa ya kukatiza, unaweza kujaribu kiwango cha juu zaidi kwanza, kisha cha chini, kisha uendelee katika utafutaji wa binary hadi uone utendakazi bora zaidi.
Ikiwa shinikizo la akiba linashukiwa (foleni nyingi zinafanya kazi) kupunguza vihifadhi kutoka kwa chaguomsingi kunaweza kusaidia Intel ® Data Direct I/O (Intel ® DDIO) kufanya kazi kwa ufanisi zaidi. Intel inapendekeza kujaribu 128 au 256 kwa kila foleni, kwa kufahamu kuwa ongezeko la kasi ya usumbufu kupitia ethtool -C inaweza kuwa muhimu ili kuzuia ongezeko la rx_dropped. - Kuweka saizi ya pete kwa thamani isiyobadilika: ethtool -G eth12 rx 256 tx 256
KUMBUKA
Ili kurekebisha matone ya pakiti ya Rx yaliyopatikana kwa kushuka kwa ethtool -S ethX|grep, zingatia kuongeza ukubwa wa pete hadi 4096. Jaribu kupata mipangilio bora zaidi ya mzigo wa kazi lakini angalia matumizi mengi ya kumbukumbu yenye thamani za juu.
4.5 Udhibiti wa Mtiririko
Udhibiti wa mtiririko wa Tabaka la 2 unaweza kuathiri utendaji wa TCP kwa kiasi kikubwa na inashauriwa kuzimwa kwa mizigo mingi ya kazi. Isipokuwa kinachowezekana ni msongamano wa magari ambapo milipuko si ndefu kwa muda.
Udhibiti wa mtiririko umezimwa kwa chaguomsingi.
- Ili kuwezesha udhibiti wa mtiririko: ethtool -A ethX rx kwenye tx imewashwa
- Ili kuzima udhibiti wa mtiririko: ethtool -A ethX rx off tx off
KUMBUKA
Lazima uwe na mshirika wa kiungo mwenye uwezo wa kudhibiti mtiririko ili kuwezesha udhibiti wa mtiririko kwa ufanisi.
4.6 Fremu za Jumbo
Wakati mazingira ya trafiki yanayotarajiwa yana idadi kubwa ya data inayohamishwa, inaweza kuwa na manufaa kuwezesha kipengele cha fremu ya jumbo. Usaidizi wa Jumbo Frames unawezeshwa kwa kubadilisha Kitengo cha Juu cha Usambazaji (MTU) hadi thamani kubwa kuliko thamani chaguo-msingi ya 1500. Hii inaruhusu kifaa kuhamisha data katika pakiti kubwa ndani ya mazingira ya mtandao. Mpangilio huu unaweza kuboresha utendaji na kupunguza matumizi ya CPU kwa mizigo mikubwa ya kazi ya I/O. Hata hivyo, inaweza kuathiri pakiti ndogo au mizigo ya kazi inayonyeti muda wa kusubiri.
KUMBUKA
Fremu za Jumbo au mpangilio mkubwa wa MTU lazima usanidiwe ipasavyo katika mazingira yote ya mtandao wako.
Tumia amri ya ifconfig kuongeza saizi ya MTU. Kwa mfanoample, ingiza zifuatazo, wapi ni nambari ya kiolesura: ifconfig mtu 9000 juu
Vinginevyo, unaweza kutumia amri ya ip kama ifuatavyo: kiungo cha ip set mtu 9000 dev ip link anzisha dev
Urekebishaji wa Mfumo (i40e Isiyo Maalum)
5.1 Mipangilio ya BIOS
- Washa Intel® VT-d kwa ajili ya mizigo ya kazi ya uboreshaji.
- Hyper-threading (vichakataji mantiki) vinaweza kuathiri utendaji. Jaribio nayo ikiwa imewasha au kuzimwa kwa mzigo wako wa kazi.
- Intel® Turbo Boost huruhusu viini vya CPU kufanya kazi kwa masafa ya juu zaidi ya masafa ya msingi ya CPU. Kuwasha Intel® Turbo Boost kunaweza kuboresha utendakazi kwa mizigo mingi ya kazi lakini hutumia nishati zaidi ili kuweka viini kwenye masafa ya juu zaidi. Jaribio na Turbo Boost imezimwa/iwasha kwa mzigo wako wa kazi.
KUMBUKA
Masafa ya Turbo hayajahakikishiwa ikiwa jukwaa linakabiliwa na matumizi ya juu ya CPU kwa ujumla. Masafa ya juu ya msingi ya turbo hupunguzwa kadri matumizi ya CPU yanaongezeka.
5.2 Usimamizi wa Nguvu
Udhibiti wa nguvu unaweza kuathiri utendakazi, haswa katika upakiaji wa muda wa chini wa kazi. Ikiwa utendakazi ni kipaumbele cha juu kuliko kupunguza matumizi ya nishati, Intel inapendekeza kwamba ufanye majaribio ya kupunguza athari za usimamizi wa nishati. Kuna njia nyingi tofauti za kupunguza udhibiti wa nguvu, kupitia zana za mfumo wa uendeshaji, mipangilio ya BIOS, na vigezo vya boot ya kernel. Chagua njia na kiwango bora kuendana na mazingira yako.
5.2.1 Udhibiti wa Jimbo la C
Kuweka kikomo katika hali ya C kwa CO au C1 huboresha utendaji kazi na huongeza matumizi ya nishati.
Kuzima uingizaji wa hali ya Kifurushi cha CPU C6 kunaweza kuboresha utendakazi wa mtandao. Walakini, hii huongeza matumizi ya nguvu.
Chaguzi zifuatazo zinapatikana:
- Dhibiti ingizo la C-state kwa nguvu:
Fungua
/dev/cpu_dma_latency na uandike muda wa juu unaoruhusiwa wa kusubiri.
KUMBUKA
Kuna programu ndogo inayoitwa cpudmalatency.c ambayo inaweza kupakuliwa kutoka kwa jumuiya ya chanzo wazi, iliyokusanywa, na kukimbia kutoka kwa mstari wa amri ili kufanya hivyo hasa.
Ex ifuatayoample inaruhusu μs tano za wakati wa kuamka, na kwa hivyo inaruhusu kuingia kwa C1: cpudmalatency 5 &
- Weka kikomo cha hali ya juu ya C katika mipangilio ya kuwasha kernel:
Kwa Intel CPUs: intel_idle.max_cstates=1
Kwa CPU zisizo za Intel: processor.max_cstates=1 - Tumia amri ya cpupower kuangalia na kuzima hali ya CPU C6: Angalia: cpupower monitor au cpupower idle-info.
Lemaza C6: cpupower idle-set -d3 au
Zima C-States: cpupower idle-set -D0
Vidokezo:
- Zima C-states kwenye CPU ikiwa seva ina Intel® 4th Gen Intel® Xeon® Scalable Processor. Wakati Hyper Threading imewashwa au kuzimwa, kuzima hali ya kutofanya kitu (-D0) huzuia cores kuingia katika hali ya nishati kidogo wakati wa muda wa kutofanya kitu na hupunguza muda wa kusubiri wa CPU kuhama kati ya hali ya kutofanya kitu na hali amilifu.
- Udhibiti wa nguvu wa Intel® 4th Gen Intel® Xeon® Scalable Processor ni mkali sana. Ili kuzuia cores kuingia katika majimbo yenye nguvu kidogo, jaribu kupunguza idadi ya cores zinazotumika ili kuwaweka macho kwa muda mrefu (ethtool -L pamoja ) Pia, funga kukatizwa kwa cores maalum kwa kutumia seti ya irq mshikamano (mara nyingi na -x ya ndani au orodha ya cores za CPU), na hakikisha mzigo wa kazi unaendeshwa kwa alama hizo hizo zilizo na seti ya kazi au numactl. Hii inaboresha utendakazi kwa kuweka cores hai na kuboresha ushughulikiaji wa kukatiza.
Washa C6:
cpupower idle-set -d3
Washa C-States:
cpupower idle-set -E
- Njia nyingine ni kutumia zana iliyopangwa (iliyojumuishwa na usambazaji wengi wa Linux) kuweka mtaalamu wa utendajifile. Hawa profiles kurekebisha mipangilio kadhaa ya Mfumo wa Uendeshaji ambayo inaweza kuathiri utendaji katika programu nyingi. Imegundulika kuwa pro wa mtandao-throughputfile hutoa uboreshaji kwa mizigo mingi ya kazi.
Angalia:
tuned-adm hai
Weka:
tuned-adm profile upitishaji wa mtandao
KUMBUKA
Huduma iliyosawazishwa lazima iwe inaendeshwa kwa amri zilizo hapo juu. Ili kuangalia/kuwasha upya, imetunguliwa: systemctl status tuned systemctl restart imetunguliwa
Unaweza pia kutoruhusu kiingilio chochote cha C-state kwa kuongeza yafuatayo kwenye laini ya boot ya kernel:
wavivu=upigaji kura - Weka kikomo kwa hali ya C kupitia mipangilio ya usimamizi wa nguvu ya BIOS ya mfumo, ambayo inaweza kuwa na mtaalamu wa utendajifile inapatikana.
Zana kama vile turbostat au x86_energy_perf_policy zinaweza kutumika kuangalia au kuweka mipangilio ya udhibiti wa nishati.
5.2.2 Usimamizi wa Nguvu wa PCIe
Usimamizi wa Nishati ya Jimbo la Active-State (ASPM) huwezesha hali ya chini ya nishati kwa viungo vya PCIe wakati havitumiki. Hii inaweza kusababisha kusubiri kwa juu zaidi kwenye vifaa vya mtandao vya PCIe, kwa hivyo Intel inapendekeza kwamba uzime ASPM kwa mzigo wa kazi unaonyeti muda. Lemaza ASPM kwa kuongeza yafuatayo kwenye mstari wa kuwasha kernel: pcie_aspm=off
5.2.3 Kuongeza Masafa ya CPU
Kuongeza kasi ya CPU (au kuongeza kasi ya CPU) ni mbinu ya udhibiti wa nishati ya Linux ambapo kasi ya saa ya mfumo hurekebishwa kwenye mkondo ili kuokoa nishati na joto. Kama vile C-states, hii inaweza kusababisha utulivu usiohitajika kwenye miunganisho ya mtandao.
Zana ya cpupower pia inaweza kutumika kuangalia na kurekebisha chaguo-msingi za utendaji wa CPU na mipaka:
- Angalia: kufuatilia cpupower au
- Weka CPU katika hali ya utendakazi: utendaji wa cpupower frequency-set -g
KUMBUKA
Marekebisho ya vikomo vya masafa ya CPU yanaweza kuwa na athari kwa mizigo mingi ya kazi na yanaweza kuzima vipengele vingine, kama vile modi ya turbo ya CPU.
Ili kulemaza kuongeza kasi ya CPU, zima huduma ya nguvu ya CPU kwa amri zifuatazo:
systemctl acha cpupower.service
systemctl zima cpupower.service
5.2.4 Mwongozo wa Ziada wa Usimamizi wa Nguvu
Maelezo ya ziada yametolewa katika kiwango hiki cha juuview ya vipengele vingi vya usimamizi wa nishati katika vichakataji vya Kizazi cha 3 vya Intel® Xeon® Scalable, pamoja na mwongozo wa jinsi vipengele hivi vinaweza kuunganishwa katika kiwango cha jukwaa: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost huharakisha kichakataji inapohitajika lakini inaweza kutumia nishati ya ziada. Kuzima Turbo Boost huweka kichakataji kwa kasi thabiti, hivyo kukupa kiwango thabiti cha utendakazi kwa mizigo mahususi.
5.4 Firewalls
Firewalls zinaweza kuathiri utendaji, hasa utendaji wa muda wa kusubiri.
Zima iptables/firewalld ikiwa haihitajiki.
5.5 Mipangilio ya Maombi
Mara nyingi thread moja (ambayo inalingana na foleni moja ya mtandao) haitoshi kufikia bandwidth ya juu. Baadhi ya usanifu wa majukwaa, kama vile AMD, huwa na mwelekeo wa kudondosha pakiti nyingi za Rx na uzi mmoja ikilinganishwa na majukwaa yenye vichakataji vya Intel.
Zingatia kutumia zana kama vile seti ya kazi au numactl kubandika programu kwenye nodi ya NUMA au cores za CPU karibu na kifaa cha mtandao. Kwa baadhi ya mizigo ya kazi kama vile kuhifadhi I/O, kuhamishia programu kwenye nodi isiyo ya karibu hutoa manufaa.
Jaribu kuongeza idadi ya nyuzi zinazotumiwa na programu yako ikiwezekana.
5.6 Toleo la Kernel
Kernels nyingi za kisasa za ndani ya kisanduku zimeboreshwa ipasavyo kwa utendakazi lakini, kulingana na hali yako ya utumiaji, kusasisha kernel kunaweza kutoa utendakazi ulioboreshwa. Kupakua chanzo pia hukuwezesha kuwezesha/kuzima huduma fulani kabla ya kuunda kernel.
5.7 Mipangilio ya Mfumo wa Uendeshaji/Kernel
Angalia miongozo ya urekebishaji ya mfumo wa uendeshaji, kama vile Mwongozo wa Kurekebisha Utendaji wa Mtandao wa Red Hat Enterprise Linux, kwa maarifa zaidi kuhusu urekebishaji wa jumla wa mfumo wa uendeshaji.
Baadhi ya vigezo vya kawaida vya kutayarisha vimeorodheshwa kwenye jedwali lifuatalo. Kumbuka kuwa hizi zinapendekezwa tu kuanzia, na kuzibadilisha kutoka kwa chaguo-msingi kunaweza kuongeza rasilimali zinazotumiwa kwenye mfumo. Ingawa kuongeza thamani kunaweza kusaidia kuboresha utendakazi, ni muhimu kufanya majaribio na thamani tofauti ili kubaini ni nini kinachofaa zaidi kwa mfumo fulani, mzigo wa kazi na aina ya trafiki.
Vigezo vya kernel vinaweza kusanidiwa kwa kutumia matumizi ya sysctl katika Linux kama ilivyoonyeshwa hapa chini.
Kwa view maadili chaguo-msingi ya rmem na wmem kwenye mfumo:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Weka maadili kuwa ya juu (MB 16):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Ukubwa wa bafa ya soketi, pia hujulikana kama pokea bafa (rmem) na bafa ya kusambaza (wmem), ni vigezo vya mfumo vinavyobainisha kiasi cha kumbukumbu iliyohifadhiwa kwa trafiki ya mtandao inayoingia na kutoka.
Kuendesha sysctl bila -w hoja huorodhesha parameta na mpangilio wake wa sasa.
Mpangilio wa Rafu | Maelezo |
net.core.rmem_default | Chaguomsingi Pokea Ukubwa wa Dirisha |
net.core.wmem_default | Ukubwa Chaguomsingi wa Dirisha la Kusambaza |
net.core.rmem_max | Upeo wa Saizi ya Dirisha ya Kupokea |
net.core.wmem_max | Upeo wa Ukubwa wa Dirisha la Usambazaji |
net.core.optmem_max | Vibafa vya Kumbukumbu vya Chaguo za Juu |
net.core.netdev_max_backlog | Marudio ya pakiti ambazo hazijachakatwa kabla ya kernel kuanza kushuka |
net.ipv4.tcp_rmem | Kihifadhi kumbukumbu cha bafa za kusoma za TCP |
net.ipv4.tcp_wmem | Kihifadhi kumbukumbu cha TCP tuma bafa |
Kernel, mrundikano wa mtandao, kidhibiti kumbukumbu, kasi ya CPU na vigezo vya udhibiti wa nishati vinaweza kuwa na athari kubwa kwenye utendakazi wa mtandao. Pendekezo la kawaida ni kuomba kwa mtaalamu wa throughput wa mtandaofile kwa kutumia amri iliyowekwa. Hii hurekebisha mipangilio michache ya Mfumo wa Uendeshaji ili kutoa mapendeleo kwa programu za mtandao.
Angalia:
tuned-adm hai
Weka:
tuned-adm profile upitishaji wa mtandao
5.8 Nyuma ya Kifaa cha Mtandao
Kipengele hiki husaidia kuboresha utendakazi wa mtandao kwa kudhibiti trafiki inayoingia kwa ufanisi, kupunguza upotevu wa pakiti, kupunguza muda wa kusubiri na kuongeza utumaji. Hii husababisha matumizi bora ya mtumiaji na majibu ya haraka ya mfumo.
Kwa chaguo-msingi, imewezeshwa katika mifumo mingi ya uendeshaji ya Linux. Ili kuangalia thamani chaguo-msingi:
sysctl net.core.netdev_max_backlog
Thamani ya juu zaidi ya netdev_max_backlog inaweza kutofautiana kulingana na vipengele kama vile toleo la kernel, maunzi, kumbukumbu na mzigo wa kazi. Katika hali nyingi, 8192 inaonekana kama thamani nzuri. sysctl -w net.core.netdev_max_backlog=8192
5.9 Mipangilio na Urekebishaji mahususi wa Jukwaa
5.9.1 Kizazi cha 4 cha Vichakataji vya Intel® Xeon® Scalable
Udhibiti wa nishati ya kichakataji cha Intel® 4th Generation Intel® Xeon® Scalable ni mkali sana ikilinganishwa na vichakataji vya Kizazi cha 3 vya Intel® Xeon® Scalable. Ili kuzuia chembe zisiingie katika hali zenye nguvu kidogo, jaribu kupunguza idadi ya chembe zinazotumika ili kuziweka macho kwa muda mrefu.
Mipangilio ya Bios Iliyopendekezwa kwa Utendaji Bora Zaidi
- Kuweka nyuzi nyingi kuwasha/kuzima (kulingana na mahitaji ya mzigo wa kazi na malengo ya utendaji) kwenye CPU.
- Weka mtaalamu wa mfumofile kwa Utendaji kwa utendaji wa juu zaidi.
KUMBUKA
Hii inasababisha matumizi ya juu ya nguvu - Weka usimamizi wa nguvu wa CPU hadi Utendaji wa Juu ili kutanguliza utendaji wa juu zaidi wa CPU kuliko ufanisi wa nishati.
- Washa Turbo Boost. Kuzima Turbo Boost katika mipangilio ya BIOS ya mfumo kwa kawaida huzuia CPU kuongeza kasi ya saa yake zaidi ya masafa yake ya msingi.
- KUMBUKA
Kuzima Turbo Boost kunaweza kufaa kwa hali fulani za utumiaji ambapo utendakazi thabiti, ufanisi wa nishati au usimamizi wa halijoto hupewa kipaumbele juu ya utendaji wa juu zaidi. - Zima kipengele cha Uboreshaji wa Mizizi Moja ya I/O (SR-IOV), ikiwa mfumo hautumii teknolojia za uboreshaji.
- Zima majimbo ya C ili kuagiza CPU iendelee kutumika na uzuie kuingia katika majimbo ya kina ya uvivu.
- Zima C1E, ili kuhakikisha kuwa CPU inaendelea kutumika na haiingii katika hali ya C1E ya kutofanya kitu.
- Weka mzunguko usio na msingi hadi upeo ili kuagiza mfumo kufanya kazi kwa masafa ya juu zaidi yanayopatikana.
- Kwenye mifumo ya Dell, weka uigaji wa msingi wa Jedwali la Maelezo ya APIC Nyingi (MADT) kwa Linear (au Round-Robin kulingana na BIOS) ili kutoa ramani ya wazi na inayotabirika ya core CPU.
Marekebisho ya Kiwango cha OS yanayopendekezwa kwa Utendaji Bora
- Weka kidhibiti cha kuongeza kasi ya CPU kwa utendakazi. cpupower frequency-set -g utendaji cpupower frequency-info
- Zima C-States. cpupower idle-set -D0
- Weka bafa za msingi za Rx (rmem) na Tx (wmem) hadi thamani ya juu zaidi. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Weka kumbukumbu ya kifaa cha mtandao. sysctl -w net.core.netdev_max_backlog=8192
- Weka mtaalamu aliyepangwafile (utegemezi wa mzigo wa kazi kwa upitishaji/muda wa kusubiri).
tuned-adm profile upitishaji wa mtandao
Marekebisho ya Kiwango cha Adapta Iliyopendekezwa kwa Utendaji Bora
- Punguza idadi ya foleni za kutumia kwa trafiki ya maombi. Tumia idadi ya chini zaidi ya foleni zinazohitajika ili kuweka chembe za CPU zinazohusiana zikitumika ili kuzizuia zisiingie katika hali ngumu zaidi za kufanya kazi (rekebisha kwa ajili ya mzigo wa kazi): ethtool -L pamoja 32
- Weka viwango vya udhibiti wa usumbufu. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Jaribu kurekebisha kipima saa cha kusambaza/kupokea/kupewa kipaumbele cha juu zaidi (80/100/150/200) au chini zaidi (25/20/10/5) ili kupata thamani ifaayo kwa mzigo wa kazi. - Weka saizi za pete za Rx/Tx. ethtool -G rx 4096 tx 4096
KUMBUKA
Ukiona matone ya pakiti ya Rx na ethtool -S| grep kushuka, jaribu kupunguza saizi ya pete hadi <4096. Jaribu kupata thamani kamili ya mzigo wa kazi ambapo pakiti hazijadondoshwa. - Weka Mshikamano wa IRQ. Tumia cores local to NIC, au upangaji ramani maalum (ambapo cores # ni sawa na idadi ya foleni zilizowekwa katika 1 kwenye ukurasa wa 26. systemctl stop irqbalance set_irq_affinity -X local AU weka_irq_affinity -X
5.9.2 AMD EPYC
Vichakataji vya AMD EPYC ni CPU zenye nguvu zinazoundwa kwa ajili ya seva na vituo vya data, vilivyojengwa kwenye usanifu wa Zen wa AMD. Mipangilio iliyo hapa chini ni kutoka kwa mfululizo wa EPYC wa kizazi cha 4 wa AMD.
Mipangilio ya BIOS Iliyopendekezwa kwa Utendaji wa Juu Zaidi
- Washa hali maalum ili kuruhusu watumiaji kurekebisha utendaji wa CPU, matumizi ya nishati na mipangilio mingineyo. Hii husaidia katika kusawazisha mfumo kwa usawa bora kati ya utendaji na ufanisi wa nishati.
- Washa uboreshaji wa msingi wa utendakazi ili kuruhusu CPU kuongeza kasi kiotomatiki ili kushughulikia majukumu mazito zaidi, kuboresha utendaji wa jumla.
- Zima udhibiti wa kimataifa wa hali ya C, ili kuzuia CPU kuingia katika majimbo ya kina ya kuokoa nishati inayojulikana kama C-states, ambayo inaweza kudumisha mwitikio.
KUMBUKA
Kuzima C-states kunaweza kusababisha matumizi ya ziada ya nguvu na kuongeza joto la joto. Fuatilia zote mbili kwa mzigo wa kazi. - Washa/zima Usomaji Wingi Sambamba (SMT) kwenye CPU, kulingana na mahitaji ya mzigo wa kazi na malengo ya utendaji. SMT ni sawa na Hyper Threading kwenye Intel CPUs.
KUMBUKA
Kwa utendakazi ulioboreshwa, rejelea Mipangilio ya Kiendeshaji cha Tuning i40e kwenye ukurasa wa 13 na Urekebishaji wa Mfumo (i40e Isiyo Maalum) kwenye ukurasa wa 19 kwa urekebishaji unaopendekezwa wa OS na kiwango cha adapta.
Kuunganisha kwa Adapta
Uunganishaji wa Linux ni kipengele chenye nguvu ambacho kinaweza kuboresha kwa kiasi kikubwa utendakazi wa mtandao, upunguzaji wa kazi, na uvumilivu wa hitilafu katika mazingira ya seva. Hata hivyo, ni muhimu kutambua kwamba inahitaji vifaa vya mtandao vinavyoendana na usanidi sahihi kwenye seva zote mbili na kubadili kufanya kazi vizuri.
Kiendeshi cha kuunganisha kwenye Linux hukuruhusu kujumlisha miingiliano mingi ya mtandao kuwa kiolesura kilichounganishwa. Kiolesura hiki kilichounganishwa kinaonekana kama kiolesura kimoja cha mtandao kwa mfumo wa uendeshaji na programu.
KUMBUKA
Dhamana ni kiolesura cha kimantiki, kwa hivyo haiwezekani kuweka mshikamano wa CPU moja kwa moja kwenye kiolesura cha dhamana (kwa ex.ample, dhamana0). Hiyo ni, haina udhibiti wa moja kwa moja juu ya kushughulikia usumbufu au ushirika wa CPU. Uhusiano wa CPU lazima usanidiwe kwa violesura vya msingi ambavyo ni sehemu ya dhamana.
Kuunganisha hutoa njia kadhaa za uendeshaji, kila mmoja na sifa zake.
Hali | Aina |
0 | Mzunguko wa Robin |
1 | Hifadhi Nakala Inayotumika |
2 | XOR |
3 | Tangaza |
4 | LACP |
5 | Sambaza Salio la Mzigo |
6 | Salio la Mzigo Unaojirekebisha |
Kuna njia tofauti za kuunda uhusiano katika Linux. Njia moja ya kawaida ni kutumia usanidi wa mtandao files (kwa mfanoample, /etc/network/ miingiliano au /etc/sysconfig/network-scripts/ifcfg-bondX).
Usanidi Kwa Kutumia Usanidi wa Mtandao Files
Hatua zifuatazo huunda kuunganisha kwa usanidi wa mtandao files.
- Chagua bandari mbili au zaidi za NIC za kuunganisha (kwa mfanoample, ethX na ethY)
- Fungua Usanidi wa NIC Files chini ya /etc/sysconfig/network-scripts/ kwa Kiolesura kinachohitajika cha NIC (kwa mfanoample, vi ifcfg-ethX na vi ifcfg-ethY) na uongeze maandishi yafuatayo:
MASTER=bondN [Kumbuka: N ni nambari kamili ya kutaja nambari ya dhamana.] MTUMWA=ndio - Unda hati ya mtandao wa dhamana file kutumia vi /etc/sysconfig/networkscripts/ifcfg-bondN na ingiza maandishi yafuatayo:
DEVICE=bondN [Kumbuka: N ni nambari kamili ya kutaja nambari ya dhamana] ONBOOT=ndiyo USERCTL=hapana BOOTPROTO=dhcp (au) hapana
IPADDR=200.20.2.4 [inahitajika ikiwa BOOTPROTO=hakuna] NETMASK=255.255.255.0 [required if BOOTPROTO=hakuna] NETWORK=200.20.2.0 [required if BOOTPROTO=none] BROADCAST=200.20.2.255.OTTOnenone]BOOTPROTO=1. BONDING_OPTS=”mode=100 miimon=XNUMX″
KUMBUKA
Hali inaweza kuwa nambari yoyote kutoka 0 hadi 6 kulingana na mahitaji. - Anzisha upya huduma za mtandao kwa kutumia anzisha upya mtandao wa huduma au systemctl anzisha upya NetworkManager.service
Utatuzi wa Utendaji
7.1 Matumizi ya CPU
Angalia matumizi ya CPU kwa kila msingi wakati mzigo wa kazi unaendelea.
Kumbuka kuwa matumizi kwa kila msingi yanafaa zaidi kwa utendaji kuliko matumizi ya jumla ya CPU kwa kuwa hutoa wazo la matumizi ya CPU kwa kila foleni ya mtandao. Ikiwa una nyuzi chache tu zinazoendesha trafiki ya mtandao, basi unaweza kuwa na cores chache tu zinazotumiwa. Walakini, ikiwa alama hizo ziko kwa 100%, basi utumiaji wa mtandao wako unaweza kupunguzwa na utumiaji wa CPU na ni wakati wa kufanya yafuatayo:
- Rekebisha ukadiriaji wa IRQ/ukubwa wa pete kama inavyofafanuliwa katika Udhibiti wa Kukatiza.
- Ongeza idadi ya nyuzi za programu ili kueneza mzigo wa CPU juu ya cores zaidi. Ikiwa cores zote zinafanya kazi kwa 100% basi programu yako inaweza kuwa imefungwa kwa CPU badala ya kufungwa kwa mtandao.
Zana zinazopatikana kawaida:
- juu
- Bonyeza 1 ili kupanua orodha ya CPU na uangalie ni zipi zinazotumika.
- Angalia kiwango cha matumizi.
- Tambua ni michakato gani iliyoorodheshwa kama amilifu zaidi (juu ya orodha). - mpstat
Ex ifuatayoampmstari wa amri ulijaribiwa kwenye Red Hat Enterprise Linux 7.x.
Inaonyesha matumizi ya CPU kwa kila msingi (kwa kupata asilimia ya kutofanya kitu na kupunguza kutoka 100) na kuangazia thamani zilizo zaidi ya 80% kwa rangi nyekundu. mpstat -P YOTE 1 1 | grep -v Wastani | mkia -n +5 | kichwa -n -1 | awk '{ chapa (100-$13)}' | egrep -color=daima '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | safu - perf top Tafuta mahali mizunguko inatumika.
7.2 i40e Kaunta
Dereva wa i40e hutoa orodha ndefu ya vihesabio vya utatuzi wa kiolesura na ufuatiliaji kupitia amri ya ethtool -S ethX. Inaweza kusaidia kutazama matokeo wakati mzigo wa kazi unaendelea na/au kulinganisha thamani za kaunta kabla na baada ya mzigo wa kazi kukimbia.
- Ili kupata utupaji kamili wa kaunta za i40e: ethtool -S ethX
- Kutazama kaunta zisizo sifuri pekee: tazama -d (ethtool -S ethX) | egrep -v :\ 0 | safu
Baadhi ya mambo ya kuangalia: - rx_dropped inamaanisha kuwa CPU haitumii bafa haraka vya kutosha.
- port.rx_dropped inamaanisha kuwa kuna kitu hakina kasi ya kutosha katika nafasi/kumbukumbu/ mfumo.
7.3 Vihesabu vya Mtandao
Angalia netstat -s kabla / baada ya kukimbia kwa mzigo wa kazi.
Netstat hukusanya taarifa za mtandao kutoka kwa vifaa vyote vya mtandao kwenye mfumo. Kwa hivyo, matokeo yanaweza kuathiriwa kutoka kwa mitandao mingine isipokuwa mtandao unaofanyiwa majaribio. Matokeo kutoka kwa netstat -s yanaweza kuwa kiashirio kizuri cha masuala ya utendakazi katika mfumo wa uendeshaji wa Linux au kernel. Angalia miongozo ya urekebishaji ya mfumo wa uendeshaji, kama vile Mwongozo wa Kurekebisha Utendaji wa Mtandao wa Red Hat Enterprise Linux, kwa maarifa zaidi kuhusu urekebishaji wa jumla wa mfumo wa uendeshaji.
7.4 Kumbukumbu za Mfumo
Angalia kumbukumbu za mfumo kwa makosa na maonyo (/var/log/messages, dmesg).
7.5 Zana ya maelezo ya Intel svr
Intel hutoa zana ya maelezo ya svr (tazama https://github.com/intel/svr-info) kwa ajili ya Linux inayonasa maelezo ya maunzi na programu kutoka kwa seva. svr-info pato inaweza kusaidia sana kutambua vikwazo vya mfumo au mipangilio/mipangilio ambayo haijaimarishwa kwa mzigo wa kazi. Unapofungua kipochi cha usaidizi na Intel kwa maswala ya utendaji yanayohusiana na Ethernet, hakikisha kuwa unajumuisha pato la maelezo ya svr (maandishi file) kwa kila seva ya Linux katika usanidi wa jaribio.
- Pakua na usakinishe svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-maelezo
./svr-maelezo
> jina la mpangishaji.txt - Kusanya pato:
./svr-info > hostname.txt - Ambatisha maandishi moja (.txt) file kwa kila seva kwa kesi yako ya usaidizi ya Intel kwa uchambuzi.
Mapendekezo kwa Matukio ya Utendaji ya Kawaida
8.1 Usambazaji wa IP
- Sasisha kernel.
Baadhi ya kernels za hivi majuzi za in-distro zimeharibu utendakazi wa uelekezaji kwa sababu ya mabadiliko ya kernel katika msimbo wa uelekezaji kuanzia na kuondolewa kwa kache ya uelekezaji kwa sababu ya usalama. Kernels za hivi majuzi za nje ya distro zinapaswa kuwa na viraka ambavyo vinapunguza athari ya utendaji wa mabadiliko haya na vinaweza kutoa utendakazi ulioboreshwa. - Lemaza hyper-threading (cores mantiki).
- Hariri vigezo vya kuwasha kernel.
- Lazimisha iommu kuzima (intel_iommu=off au iommu=off) kutoka kwa laini ya kuwasha kernel isipokuwa inahitajika kwa uboreshaji
— Zima usimamizi wa nguvu: processor.max_cstates=1 idle=poll pcie_aspm=off - Weka kikomo idadi ya foleni ili iwe sawa na idadi ya core kwenye soketi ya ndani (12 katika ex hiiample). ethtool -L ethX pamoja 12
- Pini inakatiza kwa tundu la ndani pekee. set_irq_affinity -X ethX ya ndani AU set_irq_affinity -X ethX ya ndani
KUMBUKA
-X au -x inaweza kutumika kulingana na mzigo wa kazi. - Badilisha saizi za pete za Tx na Rx kama inahitajika. Thamani kubwa inachukua rasilimali zaidi lakini inaweza kutoa viwango bora vya usambazaji. ethtool -G ethX rx 4096 tx 4096
- Zima GRO wakati wa kuelekeza.
Kwa sababu ya suala la kernel inayojulikana, GRO lazima izimwe wakati wa kuelekeza/kusambaza. ethtool -K ethX gro off ambapo ethX ndio kiolesura cha Ethaneti cha kurekebishwa. - Zima ukadiriaji wa kukatiza unaobadilika na uweke thamani tuli. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
KUMBUKA
Kulingana na aina ya kichakataji na mzigo wa kazi, vigezo vya kuunganisha vya RX na TX vinaweza kubadilishwa kwa utendakazi ulioboreshwa (au upotezaji mdogo wa fremu).
- Zima firewall. sudo systemctl zima firewalld sudo systemctl stop firewalld
- Washa usambazaji wa IP. sysctl -w net.ipv4.ip_forward=1
- Sanidi viwango vya juu zaidi vya saizi za bafa za tundu la kupokea na kutuma. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
KUMBUKA
Kulingana na mzigo wa kazi au mahitaji, maadili haya yanaweza kubadilishwa kutoka kwa chaguo-msingi.
8.2 Uchelewaji wa Chini
- ZIMA uwekaji nyuzi nyingi (cores za kimantiki).
- Hakikisha kuwa kifaa cha mtandao kiko karibu na numa core 0.
- Bandika alama kwenye msingi 0 kwa kutumia seti ya kazi -c 0.
- Zima irqbalance kwa kutumia systemctl stop irqbalance au systemctl afya irqbalance
- Endesha hati ya mshikamano ili kuenea kwenye cores. Jaribu ama ya ndani au yote.
- Zima udhibiti wa kukatiza. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- juu 0
- Weka idadi ya kikomo ya foleni ili iwe sawa na idadi ya core kwenye soketi ya ndani (32 katika ex hiiample). ethtool -L ethX pamoja 32
- Pini inakatiza kwa tundu la ndani pekee (hati iliyofungwa na chanzo cha kiendeshi cha i40e). set_irq_affinity -X local ethX
- Tumia kipimo kilichowekwa kama vile netperf -t TCP_RR, netperf -t UDP_RR, au NetPipe. netperf -t TCP_RR au netperf -t UDP_RR
- Bandika alama kwenye msingi mmoja katika nodi ya karibu ya NUMA. seti ya kazi -c
Mfululizo wa Intel ® Ethernet 700
Mwongozo wa Kurekebisha Utendaji wa Linux
Desemba 2024
Dokta. Nambari: 334019, Rev.: 1.2
Nyaraka / Rasilimali
![]() |
Intel Ethernet 700 Series Linux Performance Tuning [pdf] Mwongozo wa Mtumiaji 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |