Intel LogoIntel ® Ethernet 700 Series
Linux Performance Tuning ուղեցույց
NEX Cloud Networking Group (NCNG)
Վեր. 1.2
2024 թվականի դեկտեմբեր

Վերանայման պատմություն

Վերանայման Ամսաթիվ Մեկնաբանություններ
1.2 2024 թվականի դեկտեմբեր · Ավելացվեց էներգիայի կառավարման լրացուցիչ ուղեցույց:
· Ավելացվեց Intel* Turbo Boost-ը:
· Ավելացվեց ցանցային սարքի հետքայլ:
· Ավելացվել են պլատֆորմի հատուկ կոնֆիգուրացիաներ և թյունինգ:
· Ավելացվել են 4-րդ սերնդի Intel* %eon* ընդլայնելի պրոցեսորներ:
· Ավելացված է AMD EPYC:
· Ստուգման համակարգի ապարատային նորացված հնարավորությունները:
· Թարմացված iPerf2:
· Թարմացված iPerf3:
· Թարմացված Tx/Rx հերթեր:
· Թարմացված ընդհատման ռեժիմը:
· Թարմացված օղակի չափը:
· Թարմացված հարթակի թյունինգ (i40e ոչ հատուկ):
· Թարմացված BIOS-ի կարգավորումները:
· Թարմացված C-State Control:
· Թարմացված CPU հաճախականության մասշտաբավորում:
· Թարմացված հավելվածի կարգավորումները:
· Օպերացիոն համակարգի/միջուկի թարմացված կարգավորումներ:
· Թարմացված IP վերահասցեավորում:
· Թարմացված ցածր ուշացում:
Օգոստոս 2023 Այս փաստաթղթի փոփոխությունները ներառում են.
· Ավելացված հարակից հղումներ:
· Ավելացվեց Համոզվեք, որ DDP փաթեթը ճիշտ է բեռնվում:
· Ավելացվել է iPerf2:
· Ավելացվել է iPerf3:
· Ավելացվեց netperf:
· Թարմացված IRQ Affinity:
· Ավելացված է Tx/Rx հերթեր:
· Թարմացված օղակի չափը:
· Ավելացվել է Jumbo շրջանակներ:
· Ավելացվել է ադապտերների միացում:
· Ավելացվել է Intel svr-info գործիք:
1.0 2016 թվականի մարտ Նախնական թողարկում (Intel Public):

Ներածություն

Այս ուղեցույցը նախատեսված է ուղեցույց տրամադրելու թյունինգ միջավայրերի համար՝ ցանցային օպտիմալ աշխատանքի համար՝ օգտագործելով Intel ® Ethernet 700 Series NIC-ները Linux միջավայրերում: Այն կենտրոնանում է սարքաշարի, վարորդի և օպերացիոն համակարգի պայմանների և կարգավորումների վրա, որոնք կարող են բարելավել ցանցի աշխատանքը: Հարկ է նշել, որ ցանցային գործունեության վրա կարող են ազդել ցանկացած թվով արտաքին ազդեցություններ, որոնցից միայն ամենատարածվածն ու դրամատիկը ներկայացված են այս ուղեցույցում:
1.1 Առնչվող հղումներ

Նախնական ստուգաթերթ

2.1 Թարմացրեք վարորդի/որոնվածի տարբերակները
Ստուգեք վարորդի/որոնվածի տարբերակները՝ օգտագործելով ethtool -i ethx:
Անհրաժեշտության դեպքում թարմացրեք հետևյալը.

2.2 Կարդացեք README-ը
Ստուգեք հայտնի խնդիրները և ստացեք վերջին կազմաձևման հրահանգները README-ից file ներառված է i40e աղբյուրի փաթեթում:
2.3 Ստուգեք, որ ձեր PCI Express (PCIe) բնիկը x8 է
Որոշ PCIe x8 անցք իրականում կազմաձևված են որպես x4 սլոտներ: Այս սլոտներն ունեն անբավարար թողունակություն՝ երկակի պորտով և քառակուսի միացքով սարքերով գծի ամբողջական արագության համար: Բացի այդ, եթե PCIe v3.0 ունակությամբ ադապտեր եք դնում PCIe v2.x բնիկի մեջ, դուք չեք կարող ստանալ ամբողջ թողունակություն: Ծրագրային սարքի վարորդը հայտնաբերում է այս իրավիճակը և գրում է հետևյալ հաղորդագրությունը համակարգի գրանցամատյանում.
Այս քարտի համար հասանելի PCI-Express թողունակությունը բավարար չէ օպտիմալ կատարման համար: Օպտիմալ կատարման համար անհրաժեշտ է x8 PCI-Express բնիկ:
Եթե ​​այս սխալը տեղի ունենա, տեղափոխեք ձեր ադապտերը իրական PCIe v3.0 x8 բնիկ՝ խնդիրը լուծելու համար:
2.4 Ստուգեք համակարգի ապարատային հնարավորությունները
10 Գբիտ/վրկ, 25 Գբիթ/վ և 40 Գբ/վ Ethernet արագությամբ, կան CPU-ի և համակարգի որոշ նվազագույն պահանջներ: Ընդհանուր առմամբ, ժամանակակից սերվերի դասի պրոցեսորը և ձեր պլատֆորմի համար հիշողության օպտիմալ կոնֆիգուրացիան պետք է բավարար լինեն, բայց կարիքները տարբերվում են՝ կախված ձեր ծանրաբեռնվածությունից: Հիշողության բոլոր ալիքները պետք է լցված լինեն, և BIOS-ում պետք է միացված լինի հիշողության կատարման ռեժիմը: Ստուգեք, որ ձեր պրոցեսորը և հիշողության կոնֆիգուրացիան ի վիճակի են ապահովելու ձեր աշխատանքային ծանրաբեռնվածության համար անհրաժեշտ ցանցի կատարողականի մակարդակը:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
XL710-ը 40 ԳբԷ կարգավորիչ է: Այս կարգավորիչը օգտագործող 2 x 40 ԳբԷ ադապտեր նախատեսված չէ լինել 2 x 40 ԳբԷ, այլ 1 x 40 ԳբԷ չափսի ակտիվ պահուստային պորտով: Երկու նավահանգիստները ներառող գծային արագության տրաֆիկ օգտագործելու փորձի ժամանակ ներքին անջատիչը հագեցած է, և երկու նավահանգիստների միջև համակցված թողունակությունը սահմանափակվում է ընդհանուր SO Գբիտ/վրկ-ով:
2.4.1 Kernel Boot Parameters
Եթե ​​BIOS-ում միացված է Intel® վիրտուալացման տեխնոլոգիան ուղղորդված I/O-ի համար (Intel® VT-d), Intel-ը խորհուրդ է տալիս IOMMU-ին անցնել փոխանցման ռեժիմում՝ հյուրընկալող ցանցի օպտիմալ աշխատանքի համար: Սա վերացնում է DMA-ի գերավճարը հյուրընկալող տրաֆիկի վրա՝ միաժամանակ հնարավորություն տալով Վիրտուալ մեքենաներին (VMs) դեռևս ունենալ Intel® VT-d-ի առավելությունները: Սա կատարվում է միջուկի բեռնման պարամետրերին ավելացնելով հետևյալ տողը. fommu-pt:
2.5 Համոզվեք, որ DDP փաթեթը ճիշտ է բեռնվում
140ea և 140eb բազային դրայվերները չունեն անմիջական աջակցություն Dynamic Device Personalization (DDP): DDP 700 Series սարքերի հետ օգտագործելու համար՝ DDP Profile կարող է կիրառվել testpmd հավելվածով:
DDP pro-ի մասին մանրամասների համարfiles, և ինչպես կիրառել DDP Profile 700 Series սարքերի վրա testpmd-ով, տես Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) տեխնոլոգիայի ուղեցույցը:
Ստուգելու համար, արդյոք DDP Pro-ն էfile հաջողությամբ բեռնվել է՝
testpmd> ddp ստանալ ցուցակ 0 Profile թիվը՝ 1
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Եթե ​​պրոfile համարը 0 է, DDP փաթեթ չի բեռնված: DDP փաթեթի բեռնման սխալի դեպքում սարքը լռելյայն անցնում է անվտանգ ռեժիմին, և կատարողականի շատ գործառույթներ անհասանելի են: Եթե ​​DDP փաթեթը բեռնելու հետ կապված սխալներ կան, դա կառաջացնի աշխատանքի հետ կապված խնդիրներ: Անսարքությունների վերացման քայլերի համար տես Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) տեխնոլոգիայի ուղեցույցը:

Ելակետային կատարողականի չափումներ և թյունինգի մեթոդաբանություն

3.1 Ցանցի կատարողականի չափանիշներ
Նախքան թյունինգ վարժություն սկսելը, կարևոր է ունենալ ձեր ցանցի կատարողականի լավ ելակետային չափում: Սովորաբար, ի լրումն ձեր կոնկրետ հավելվածի/աշխատանքային ծանրաբեռնվածության նախնական չափման, լավ գաղափար է նաև օգտագործել ստանդարտ ցանցի կատարողականի չափանիշ՝ ստուգելու համար, որ ձեր ցանցային սարքը լավ վիճակում է:
Մեկ համակարգի օպտիմալացման համար netperf-ը կամ iperf-ը և NetPIPE-ը բոլորն էլ ամուր բաց կոդով անվճար գործիքներ են, որոնք թույլ են տալիս շեշտել կապը և ախտորոշել աշխատանքի հետ կապված խնդիրները:
Netperf-ն ուժեղ է ինչպես թողունակության, այնպես էլ հետաձգման փորձարկման համար: NetPIPE-ը հետաձգման հատուկ գործիք է, բայց կարող է կազմվել ցանկացած տեսակի միջավայրի համար:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
TCP_RR թեստը netperf-ում վերադարձնում է ուշացում՝ գործարքների/վրկ արժեքով: Սա երկկողմանի համար է: Միակողմանի հետաձգումը կարելի է հաշվարկել՝ օգտագործելով հետևյալ հավասարումը.
Լատենտություն (usec) = (1⁄2) / [Գործարքներ/վրկ] * 1,000,000
3.1.1 iPerf2
Intel-ը խորհուրդ է տալիս iperf2-ը, քան iperf3-ը համեմատական ​​իրավիճակների մեծ մասի համար, քանի որ հեշտ օգտագործման և աջակցում են բազմաթիվ թելեր մեկ հավելվածի օրինակում: Intel-ը խորհուրդ է տալիս աշխատել -P տարբերակով 2-4 թելերով 25G կապի համար և շուրջ 4-6 թելերով 40G ​​կապերի համար:

  • Հաճախորդից սերվեր միակողմանի երթևեկություն գործարկելու համար. Սերվերի հրամանը օրինակample՝ iperf2 -s
    Հաճախորդի հրամանը նախկինample: iperf2 -c -Պ
  • Հաճախորդից սերվեր երկկողմանի երթևեկություն գործարկելու համար (և հակառակը).ample՝ iperf2 –s –p
    Հաճախորդի հրամանը նախկինampլե:
    iperf2 -c -էջ -Պ -- լրիվ դուպլեքս ԿԱՄ
    iperf2 -c -էջ -Պ – դ

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Երկուսն էլ –full-duplex և -d տարբերակները iperf2-ում թույլ են տալիս օգտվողին կատարել երկկողմանի թեստավորում: Այնուամենայնիվ, –full-duplex տարբերակը հատուկ կենտրոնանում է լրիվ դուպլեքս փորձարկման վրա:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Երբ iperf2-ը փորձարկվում է մի քանի սերվերի նավահանգիստներում, -d դրոշը կարող է ավելացվել սերվերի հրամանին, որպեսզի սերվերի բոլոր նիստերը գործարկվեն հետին պլանում՝ նույն տերմինալի պատուհանից: -d դրոշը կարող է օգտագործվել նաև այն դեպքում, երբ սերվերի հրամանը ներկառուցված է սկրիպտի for-loop-ի ներսում:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Ցանցի թողունակության փորձարկումը մեկ հոսքով/թելերով (օրample: P1), AMD պրոցեսորները կարող են չապահովել ակնկալվող թողունակությունը, հատկապես ավելի բարձր թողունակության NIC-ները (եթե արագությունը >= 25G թողունակություն է): Արդյունքում, ավելի բարձր թողունակության հասնելու համար պահանջվում է հավելվածի ամրացում կոնկրետ միջուկներին: Տես Հավելվածի կարգավորումները էջ 22-ում:
3.1.2 iPerf3
Եթե ​​օգտագործվում է iperf3, հավելվածի մի քանի օրինակներ են պահանջվում advan-ի համարtage բազմաթելերից, RSS-ից և ապարատային հերթերից: Intel-ը խորհուրդ է տալիս գործարկել 2-4 հավելվածի նիստեր 25G կապերի համար և մոտ 4-6 նիստեր 40G կապերի համար: Յուրաքանչյուր նստաշրջան պետք է նշի TCP պորտի եզակի արժեքը՝ օգտագործելով -p տարբերակը:

  • Հաճախորդից սերվեր միակողմանի երթևեկություն գործարկելու համար.
    Սերվերի հրամանը նախկինampլե:
    iperf3 -s -p
    Հաճախորդի հրամանը նախկինampլե:
    iperf3 -c -էջ
  • Հաճախորդից սերվեր երկկողմանի երթևեկություն գործարկելու համար (և հակառակը).
    Սերվերի հրամանը նախկինampլե:
    iperf3 –s –p
    Հաճախորդի հրամանը նախկինample: iperf3 -c -էջ -Պ –-բիդիր
  • Iperf3-ի մի քանի օրինակներ (թելեր) սկսելու համար առաջարկվում է օգտագործել for-loop՝ շղթաները TCP նավահանգիստներին քարտեզագրելու և iperf3-ը հետին պլանում գործարկելու համար՝ օգտագործելով & զուգահեռ մի քանի գործընթացներ ստեղծելու համար:
    Սերվերի հրամանը նախկինample, սկսել 4 թեմա՝ port=””; i-ի համար {0..3}-ում; do port=520$i; bash -c “iperf3 -s -p $port &”; արված; Հաճախորդի հրամանը նախկինample, start 4 threads – Transmit test port=””; i-ի համար {0..3}-ում; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; արված; Հաճախորդի հրամանը նախկինample, սկսել 4 թեմա – Ստանալ թեստային պորտ=””; i-ի համար {0..3}-ում; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; արված; 40G կապերի դեպքում ավելացրեք «for-loop»-ը՝ ստեղծելու մինչև 6 օրինակ/թելեր:

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Ցանցի թողունակության փորձարկումը մեկ հոսքով/թելերով (օրample: P1), AMD պրոցեսորները կարող են չապահովել ակնկալվող թողունակությունը, հատկապես ավելի մեծ թողունակություն
NIC-ներ (եթե արագությունը >= 25G թողունակություն է): Արդյունքում, ավելի բարձր թողունակության հասնելու համար պահանջվում է հավելվածի ամրացում կոնկրետ միջուկներին: Տես Հավելվածի Կարգավորումներ էջ 22 և AMD EPYC՝ էջ 26:
3.1.3 netperf
Netperf գործիքը ուժեղ ընտրություն է ինչպես թողունակության, այնպես էլ հետաձգման փորձարկման համար:

  • TCP_STREAM թեստը netperf-ում չափում է սարքի թողունակության հնարավորությունները: Սերվերի հրամանը նախկինample: netserver Client հրամանը նախկինample: netperf -t TCP_STREAM -l 30 -H
  • TCP_RR թեստը netperf-ում վերադարձնում է ուշացում՝ գործարքների/վայրկյան արժեքով: Սա երկկողմանի համար է: Խորհուրդ է տրվում օգտագործել -T x,x տարբերակը, եթե x-ը սարքի պրոցեսորն է: Միակողմանի հետաձգումը կարելի է հաշվարկել՝ օգտագործելով՝ Latency(usec)=(1⁄2)/ [Transactions/sec]*1,000,\ Server command example: netserver
    Հաճախորդի հրամանը նախկինample: netperf -t TCP_RR -l 30 -H -T x,x
  • Netperf-ի մի քանի օրինակներ (թելեր) սկսելու համար առաջարկվում է օգտագործել for-loop՝ շղթաները TCP նավահանգիստներին քարտեզագրելու և netperf-ը հետին պլանում գործարկելու համար՝ օգտագործելով & զուգահեռաբար բազմաթիվ գործընթացներ ստեղծելու համար:
    Սերվերի հրամանը նախկինample, սկսել 8 թեմա.
    նավահանգիստ =””; i-ի համար {0..7}-ում; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; արված;
    Հաճախորդի հրամանը նախկինample, սկսել 8 թեմա՝ port=””; i-ի համար {0..7}-ում; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; արված;

3.2 Թյունինգի մեթոդիկա
Կենտրոնացեք միաժամանակ մեկ թյունինգի փոփոխության վրա, որպեսզի իմանաք, թե յուրաքանչյուր փոփոխություն ինչ ազդեցություն է թողնում ձեր թեստի վրա: Որքան ավելի մեթոդական լինեք թյունինգի գործընթացում, այնքան ավելի հեշտ կլինի բացահայտել և լուծել կատարողականի խոչընդոտների պատճառները:

Կարգավորում i40e վարորդի կարգավորումները

4.1 IRQ մերձեցում
IRQ կապի կարգավորումն այնպես, որ ցանցի տարբեր հերթերի ընդհատումները փոխկապակցվեն տարբեր պրոցեսորի միջուկներին, կարող է հսկայական ազդեցություն ունենալ աշխատանքի վրա, հատկապես բազմաթելային թողունակության թեստերի վրա:
IRQ affinity-ը կարգավորելու համար դադարեցրեք irqbalance-ը և այնուհետև կամ օգտագործեք set_irq_affinity սկրիպտը i40e սկզբնական փաթեթից կամ ամրացրեք հերթերը ձեռքով: Անջատեք օգտագործողի տարածության IRQ հավասարակշռիչը՝ հերթերի ամրացումը միացնելու համար.

  • systemctl անջատել irqbalance-ը
  • systemctl դադարեցնել irqbalance
    Օգտագործելով set_irq_affinity սկրիպտը i40e աղբյուրի փաթեթից (խորհուրդ է տրվում).
  • Բոլոր միջուկներն օգտագործելու համար՝
    [path-to-i40epackage]/scripts/set_irq_affinity -X բոլոր ethX
  • Տեղական NUMA վարդակից միայն միջուկներ օգտագործելու համար՝ [path-to-i40epackage]/scripts/set_irq_affinity -X տեղական ethX
  • Կարող եք նաև ընտրել միջուկների մի շարք: Խուսափեք cpu0-ից, քանի որ այն կատարում է ժմչփի առաջադրանքներ: [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Affinity script-ը հնարավորություն է տալիս փոխանցել փաթեթի ղեկը (XPS) որպես ամրացման գործընթացի մաս, երբ նշված է -x տարբերակը: Երբ XPS-ը միացված է, Intel-ը խորհուրդ է տալիս անջատել irqbalance-ը, քանի որ XPS-ով միջուկի հավասարակշռիչը կարող է առաջացնել անկանխատեսելի կատարում: Affinity script-ը անջատում է XPS-ը, երբ նշված է -X տարբերակը: XPS-ի անջատումը և սիմետրիկ հերթերի միացումը ձեռնտու է աշխատանքային ծանրաբեռնվածության համար, որտեղ լավագույն կատարումը ձեռք է բերվում, երբ Tx և Rx տրաֆիկները սպասարկվում են նույն հերթերի զույգ(եր)ում:
Սիմետրիկ հերթերի կազմաձևումը Linux-ում ներառում է ցանցային ինտերֆեյսի դրայվերի պարամետրերի կարգավորում՝ աջակցվող ցանցային ադապտերների համար սիմետրիկ ընդունման հերթերը (Rx) և սիմետրիկ փոխանցման հերթերը (Tx) միացնելու համար:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ

  • Սիմետրիկ հերթերը ցանցի առաջադեմ հատկություն են, և ոչ բոլոր 700 սերիայի ցանցային ադապտերներն ու դրայվերներն են ապահովում դրանք:
  • Համոզվեք, որ ունեք անհրաժեշտ վարորդի և ապարատային աջակցություն՝ նախքան սիմետրիկ հերթերը կարգավորելու փորձը:

Սիմետրիկ հերթերը կարգավորելու համար հետևեք այս ընդհանուր քայլերին.

  1. Խմբագրել ցանցի ինտերֆեյսի կոնֆիգուրացիան FileՕգտագործեք տեքստային խմբագրիչ (օրինակample, vi, nano կամ gedit) ցանցի ինտերֆեյսի կոնֆիգուրացիան խմբագրելու համար file. Այն file սովորաբար գտնվում է /etc/sysconfig/network-scripts/ գրացուցակի տակ և ունի ifcfg-ethX անուն, որտեղ ethX-ը ձեր ցանցային ինտերֆեյսի անունն է:
  2. Ավելացնել սիմետրիկ հերթի պարամետրեր: Ցանցային ինտերֆեյսի կազմաձևին ավելացրեք հետևյալ տողերը fileETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
  3. Վերագործարկեք ցանցային ծառայությունը:
    Փոփոխությունները կատարելուց հետո վերագործարկեք ցանցային ծառայությունը՝ նոր կոնֆիգուրացիան կիրառելու համար: sudo systemctl վերագործարկեք ցանցը

Ձեռքով:

  • Գտեք յուրաքանչյուր հանգույցին կցված պրոցեսորները՝ օգտագործելով numactl –hardware lscpu
  • Գտեք բիթային դիմակները պրոցեսորներից յուրաքանչյուրի համար.
  • Ենթադրելով 0-11 միջուկներ 0 հանգույցի համար՝ [1,2,4,8,10,20,40,80,100,200,400,800]
  • Գտեք նշանակվող պորտին հատկացված IRQ-ները. grep ethX /proc/interrupts և նշեք IRQ արժեքները նախկինում:ample, 181-192 բեռնված 12 վեկտորների համար:
  • Կրկնել SMP հարաբերակցության արժեքը համապատասխան IRQ մուտքագրում: Նկատի ունեցեք, որ դա պետք է արվի յուրաքանչյուր IRQ մուտքի համար. echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Ցույց տալ IRQ կապը.
  • Բոլոր միջուկների համար IRQ կապը ցույց տալու համար. /scripts/set_irq_affinity -s ethX
  • Տեղական NUMA վարդակից միայն միջուկները ցուցադրելու համար. /scripts/set_irq_affinity -s տեղական ethX
  • Կարող եք նաև ընտրել միջուկների մի շարք. /scripts/set_irq_affinity -s 40-0-8,16 ethX

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Set_irq_affinity սկրիպտն աջակցում է -s դրոշը i40e վարորդի 2.16.11 և ավելի նոր տարբերակում:
4.2 Tx/Rx հերթեր
Նախնականացման ժամանակ վարորդի կողմից Ethernet-ի յուրաքանչյուր պորտի համար միացված հերթերի կանխադրված թիվը հավասար է հարթակում առկա պրոցեսորների ընդհանուր թվին: Սա լավ է աշխատում բազմաթիվ հարթակների և աշխատանքային ծանրաբեռնվածության կոնֆիգուրացիաների համար: Այնուամենայնիվ, միջուկների մեծ քանակով և/կամ Ethernet պորտի բարձր խտությամբ հարթակներում այս կոնֆիգուրացիան կարող է ռեսուրսների վեճ առաջացնել: Հետևաբար, որոշ դեպքերում կարող է անհրաժեշտ լինել փոփոխել համակարգի յուրաքանչյուր պորտի լռելյայնը:
Tx/Rx հերթերի կանխադրված թիվը կարող է տարբեր լինել՝ կախված կոնկրետ մոդելից և վարորդի տարբերակից: Հերթերի քանակը կարող է ճշգրտվել ստորև թվարկված ethtool -L հրամանի միջոցով:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Այս դեպքերում Intel-ը խորհուրդ է տալիս նվազեցնել լռելյայն հերթերի քանակը յուրաքանչյուր պորտի համար մինչև ոչ ավելի, քան հասանելի պրոցեսորների քանակը NUMA հանգույցում՝ ադապտերների միացքի համար: Որոշ դեպքերում, երբ փորձում եք հավասարակշռել ռեսուրսները նավահանգիստների մեծ քանակի ներդրման դեպքում, կարող է անհրաժեշտ լինել այս թիվը էլ ավելի նվազեցնել:
Հերթի կազմաձևումը փոփոխելու համար՝
Հետևյալ նախկինample սահմանում է պորտը 32 Tx/Rx հերթերի. ethtool -L ethX համակցված 32
Exampելքը:
ethtool -l ethX
Ալիքի պարամետրերը ethX-ի համար. Նախապես սահմանված առավելագույնը.
RX՝ 96
TX՝ 96
Այլ՝ 1
Համակցված՝ 96
Ընթացիկ ապարատային պարամետրեր.
RX՝ 0
TX՝ 0
Այլ՝ 1
Համակցված՝ 32
4.3 Ընդհատման մոդերացիա
Հարմարվողական ընդհատումների ռեժիմը լռելյայն միացված է և նախատեսված է ապահովելու հավասարակշռված մոտեցում CPU-ի ցածր օգտագործման և բարձր կատարողականության միջև: Այնուամենայնիվ, դուք կարող եք փորձել ձեռքով կարգավորել ընդհատումների կարգավորումները՝ ձեր օգտագործման դեպքին համապատասխանելու համար:
0-235 միկրովայրկյան միջակայքն ապահովում է 4,310-ից մինչև 250,000 վայրկյանում ընդհատումների արդյունավետ տիրույթ: Rx-μsecs-high-ի արժեքը կարող է սահմանվել անկախ rx-μsecs-ից և tx-μsecs-ից նույն ethtool հրամանում, և անկախ է նաև ադապտիվ ընդհատումների չափավորման ալգորիթմից: Հիմքում ընկած սարքավորումն ապահովում է հատիկավորումը 2միկրովայրկյան ընդմիջումներով, ուստի հարակից արժեքները կարող են հանգեցնել նույն ընդհատման արագությանը:

  • Հարմարվողական ընդհատումների ռեժիմն անջատելու համար՝ ethtool -C ethX adaptive-rx off adaptive-tx off
  • Հարմարվողական ընդհատումների ռեժիմը միացնելու համար՝ ethtool -C ethX adaptive-rx on adaptive-tx on

Ընդհանուր թյունինգ սկսելու լավ տեղ է 84 մկվ կամ ~12000 ընդհատում/վրկ: Եթե ​​տեսնում եք, որ rx_dropped հաշվիչներն աշխատում են երթևեկության ընթացքում (օգտագործելով ethtool -S ethX), ապա, հավանաբար, դուք ունեք չափազանց դանդաղ պրոցեսոր, բավարար բուֆերներ չկան ադապտերի օղակի չափից (ethtool -G) փաթեթները պահելու համար 84 մկվ կամ ցածր ընդհատման արագությամբ:

  • Ընդհատումների չափավորումը 84 մկվ ֆիքսված ընդհատումների արագության սահմանելու համար ընդհատումների միջև (12000 ընդհատում/վրկ)՝ ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Հաջորդ արժեքը, որը պետք է փորձեք, եթե դուք չեք առավելագույնի հասցնում պրոցեսորի 62 μ-ի օգտագործումը: Սա ավելի շատ պրոցեսոր է օգտագործում, բայց այն սպասարկում է ավելի արագ բուֆեր և պահանջում է ավելի քիչ նկարագրիչներ (մատանի չափը, էթ գործիքը՝ G):
  • Ընդհատումների մոդերավորումը ֆիքսված ընդհատման արագության սահմանելու համար՝ ընդհատումների միջև ընկած ժամանակահատվածում 62 օգտագործեք (16000 ընդհատում/վ): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Եթե ​​rx_dropped հաշվիչներն ավելանում են երթևեկության ժամանակ (օգտագործելով ethtool -S ethX), դուք հավանաբար ունեք չափազանց դանդաղ պրոցեսոր, բավարար բուֆերներ չկան ադապտերի օղակի չափից (ethtool -G) կամ չափազանց ցածր ընդհատման արագություն: Եթե ​​պրոցեսորի օգտագործումը ձեզ չի սպառում, կարող եք մեծացնել ընդհատման արագությունը՝ նվազեցնելով ITR արժեքը: Սա ավելի շատ պրոցեսոր է օգտագործում, բայց ծառայություններն ավելի արագ են բուֆերվում և պահանջում են ավելի քիչ նկարագրիչներ (մատանի չափը, էթ գործիքը՝ G):
    Եթե ​​ձեր պրոցեսորը 100% է, ապա խորհուրդ չի տրվում բարձրացնել ընդհատման արագությունը: Որոշակի հանգամանքներում, ինչպիսիք են CPU-ի հետ կապված աշխատանքային ծանրաբեռնվածությունը, դուք կարող եք մեծացնել μs արժեքը՝ այլ հավելվածների համար ավելի շատ պրոցեսորի ժամանակ հատկացնելու համար:
    Եթե ​​Ձեզ անհրաժեշտ է ցածր լատենտային աշխատանք և/կամ ունեք մեծ քանակությամբ պրոցեսոր՝ ցանցային մշակմանը հատկացնելու համար, կարող եք ամբողջությամբ անջատել ընդհատումների ռեժիմը, ինչը հնարավորություն է տալիս ընդհատումներին հնարավորինս արագ գործարկել:
  • Անջատելու համար ընդհատումների չափման ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Անջատված ընդհատման ռեժիմով աշխատելիս յուրաքանչյուր հերթի ընդհատման արագությունը կարող է շատ բարձր լինել: Հաշվի առեք rx-usec-high պարամետրը՝ ընդհատումների արագության վերին սահմանը սահմանելու համար: Հետևյալ հրամանն անջատում է ադապտիվ ընդհատման ռեժիմը և թույլ է տալիս առավելագույնը 5 միկրովայրկյան՝ նախքան ընդունելը կամ փոխանցման ավարտը նշելը: Վայրկյանում 200,000 ընդհատումների փոխարեն այն սահմանափակում է ընդհանուր ընդհատումները վայրկյանում մինչև 50,000 rx-usec-high պարամետրի միջոցով: # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Փորձեք կարգավորել փոխանցման/ստացման/բարձր առաջնահերթության միավորման ժամանակաչափը ավելի բարձր (80/100/150/200) կամ ավելի ցածր (25/20 բեռնվածության համար օպտիմալ արժեքը գտնելու համար):
4.4 Մատանու չափը
Եթե ​​տեսնում եք rx_dropped հաշվիչներ ethtool -S ethX-ում (rx_dropped, rx_dropped.nic) կամ կասկածում եք քեշի ճնշմանը մի քանի հերթերով ակտիվ, կարող եք փորձել կարգավորել օղակի չափը լռելյայն արժեքից: Նախնական արժեքը 512 է, առավելագույնը՝ 4096։

  • Ընթացիկ արժեքները ստուգելու համար՝ ethtool -g ethX
    Եթե ​​կասկած կա, որ բուֆերացման բացակայությունը հանգեցնում է ընթացիկ ընդհատման արագության անկման, դուք կարող եք նախ փորձել առավելագույնը, ապա նվազագույնը, ապա շարունակել երկուական որոնումը, մինչև տեսնեք օպտիմալ կատարումը:
    Եթե ​​կասկածվում է քեշի ճնշումը (շատ հերթեր ակտիվ են), ապա կանխադրված բուֆերների նվազեցումը կարող է օգնել Intel ® Data Direct I/O-ին (Intel ® DDIO) ավելի արդյունավետ աշխատել: Intel-ը խորհուրդ է տալիս փորձել 128 կամ 256 հերթում՝ հաշվի առնելով, որ ethtool -C-ի միջոցով ընդհատումների արագությունը կարող է անհրաժեշտ լինել rx_dropped-ի ավելացումից խուսափելու համար:
  • Օղակի չափը ֆիքսված արժեքի սահմանելու համար՝ ethtool -G eth12 rx 256 tx 256

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Ethtool -S ethX|grep drop-ի միջոցով հայտնաբերված Rx փաթեթի կաթիլները շտկելու համար մտածեք օղակի չափը հասցնելով 4096-ի: Փորձեք գտնել աշխատանքի ծանրաբեռնվածության լավագույն պարամետրը, բայց ուշադրություն դարձրեք հիշողության ավելորդ օգտագործմանը ավելի բարձր արժեքներով:
4.5 Հոսքի վերահսկում
2-րդ շերտի հոսքի կառավարումը կարող է զգալիորեն ազդել TCP-ի կատարողականի վրա և խորհուրդ է տրվում անջատել աշխատանքային բեռների մեծ մասի համար: Պոտենցիալ բացառություն է պայթող երթևեկությունը, որտեղ պայթյունները երկար չեն տևում:
Հոսքի կառավարումը լռելյայն անջատված է:

  • Հոսքի կառավարումը միացնելու համար՝ ethtool -A ethX rx on tx on
  • Հոսքի կառավարումն անջատելու համար՝ ethtool -A ethX rx off tx off

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Հոսքի կառավարումը հաջողությամբ միացնելու համար դուք պետք է ունենաք հոսքի վերահսկման հնարավորություն ունեցող կապող գործընկեր:
4.6 Jumbo շրջանակներ
Երբ սպասվող երթևեկության միջավայրը բաղկացած է փոխանցվող տվյալների մեծ բլոկներից, կարող է օգտակար լինել միացնել «jumbo frame» գործառույթը: Jumbo Frames-ի աջակցությունը միացված է առավելագույն փոխանցման միավորը (MTU) փոխելով 1500-ի լռելյայն արժեքից ավելի մեծ արժեքի: Սա թույլ է տալիս սարքին ավելի մեծ փաթեթներով տվյալներ փոխանցել ցանցային միջավայրում: Այս պարամետրը կարող է բարելավել թողունակությունը և նվազեցնել պրոցեսորի օգտագործումը I/O մեծ բեռների համար: Այնուամենայնիվ, դա կարող է ազդել փոքր փաթեթների կամ հետաձգման նկատմամբ զգայուն աշխատանքային բեռների վրա:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Jumbo շրջանակները կամ ավելի մեծ MTU կարգավորումները պետք է պատշաճ կերպով կազմաձևվեն ձեր ցանցային միջավայրում:
Օգտագործեք ifconfig հրամանը՝ MTU չափը մեծացնելու համար: Նախample, մուտքագրեք հետևյալը, որտեղ ինտերֆեյսի համարն է՝ ifconfig mtu 9000 վեր
Որպես այլընտրանք, դուք կարող եք օգտագործել ip հրամանը հետևյալ կերպ. ip link set mtu 9000 dev ip հղումը ստեղծել է մշակ

Պլատֆորմի թյունինգ (i40e ոչ հատուկ)

5.1 BIOS-ի կարգավորումներ

  • Միացնել Intel® VT-d-ը վիրտուալացման աշխատանքային ծանրաբեռնվածության համար:
  • Hyper-threading-ը (տրամաբանական պրոցեսորները) կարող է ազդել աշխատանքի վրա: Փորձեք այն միացնել կամ անջատել ձեր ծանրաբեռնվածության համար:
  • Intel® Turbo Boost-ը թույլ է տալիս պրոցեսորի միջուկներին աշխատել ավելի բարձր հաճախականությամբ, քան պրոցեսորի հիմնական հաճախականությունը: Intel® Turbo Boost-ը միացնելը կարող է բարելավել աշխատանքը շատ ծանրաբեռնվածության համար, սակայն ավելի շատ էներգիա է ծախսում՝ միջուկները ավելի բարձր հաճախականությամբ պահելու համար: Փորձեք Turbo Boost off/on-ով ձեր ծանրաբեռնվածության համար:

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Տուրբո հաճախականությունները երաշխավորված չեն, եթե պլատֆորմը զգում է պրոցեսորի բարձր ընդհանուր օգտագործում: Ավելի բարձր միջուկային տուրբո հաճախականությունները կրճատվում են, քանի որ պրոցեսորի ընդհանուր օգտագործումը մեծանում է:
5.2 Էլեկտրաէներգիայի կառավարում
Էլեկտրաէներգիայի կառավարումը կարող է ազդել աշխատանքի արդյունավետության վրա, հատկապես ցածր հետաձգման աշխատանքային ծանրաբեռնվածության դեպքում: Եթե ​​կատարումը ավելի առաջնահերթ է, քան էներգիայի սպառման նվազեցումը, Intel-ը խորհուրդ է տալիս փորձարկել էներգիայի կառավարման ազդեցությունը սահմանափակելու համար: Էլեկտրաէներգիայի կառավարումը սահմանափակելու տարբեր եղանակներ կան՝ օպերացիոն համակարգի գործիքների, BIOS-ի կարգավորումների և միջուկի բեռնման պարամետրերի միջոցով: Ընտրեք լավագույն մեթոդը և մակարդակը՝ ձեր միջավայրին համապատասխան:
5.2.1 C-Պետական ​​վերահսկողություն
C-ի վիճակի մուտքը CO կամ C1-ի սահմանափակումը բարելավում է կատարողականությունը և մեծացնում էներգիայի օգտագործումը:
CPU փաթեթի C6 վիճակի մուտքն անջատելը կարող է բարելավել ցանցի աշխատանքը: Այնուամենայնիվ, սա մեծացնում է էներգիայի օգտագործումը:
Հետևյալ տարբերակները մատչելի են.

  • Դինամիկ կերպով վերահսկեք C- վիճակի մուտքը.
    Բաց
    /dev/cpu_dma_latency և դրա վրա գրեք առավելագույն թույլատրելի latency:

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Կա մի փոքր ծրագիր, որը կոչվում է cpudmalatency.c, որը կարելի է ներբեռնել բաց կոդով համայնքից, կազմել և գործարկել հրամանի տողից հենց դա անելու համար:
Հետևյալ նախկինample-ը թույլ է տալիս արթնանալու հինգ մկվ, և այդպիսով թույլ է տալիս C1 մուտքագրում. cpudmalatency 5 &

  • Սահմանափակեք առավելագույն C- վիճակը միջուկի բեռնման կարգավորումներում.
    Intel պրոցեսորների համար՝ intel_idle.max_cstates=1
    Ոչ Intel պրոցեսորների համար՝ processor.max_cstates=1
  • Օգտագործեք cpupower հրամանը՝ CPU C6 վիճակը ստուգելու և անջատելու համար. Ստուգեք՝ cpupower մոնիտոր կամ cpupower idle-info
    Անջատել C6. cpupower idle-set -d3 or
    Անջատել C-States. cpupower idle-set -D0

Նշումներ:

  1. Անջատեք C-ի վիճակները պրոցեսորի վրա, եթե սերվերն ունի Intel® 4-րդ սերնդի Intel® Xeon® ընդլայնելի պրոցեսոր(ներ): Երբ Hyper Threading-ը միացված է կամ անջատված է, անգործուն վիճակների անջատումը (-D0) կանխում է միջուկների մուտքը ցածր էներգիայի վիճակներ անգործության ժամանակաշրջաններում և նվազեցնում է CPU-ի անգործության և ակտիվ վիճակների միջև անցումը:
  2. Intel® 4th Gen Intel® Xeon® Scalable Processor-ի էներգիայի կառավարումը չափազանց ագրեսիվ է: Որպեսզի միջուկները չմտնեն ցածր էներգիայի վիճակներ, փորձեք նվազեցնել օգտագործվող միջուկների քանակը՝ դրանք ավելի երկար արթուն պահելու համար (ethtool -L համակցված ) Նաև կապեք ընդհատումները հատուկ միջուկների հետ՝ օգտագործելով սահմանված irq կապը (առավել հաճախ՝ -x տեղական կամ CPU միջուկների ցանկով) և համոզվեք, որ աշխատանքային ծանրաբեռնվածությունն աշխատում է այդ նույն միջուկների վրա՝ taskset-ով կամ numactl-ով: Սա բարելավում է կատարողականությունը՝ ակտիվ պահելով միջուկները և օպտիմալացնելով ընդհատումների կառավարումը:

Միացնել C6:
cpupower idle-set -d3
Միացնել C-States.
cpupower idle-set -E

  • Մեկ այլ մեթոդ է օգտագործել կարգավորված գործիքը (ներառյալ Linux-ի բազմաթիվ բաշխումներ)՝ կատարողականի պրոֆիլ սահմանելու համարfile. Այս պրոfileփոփոխել OS-ի մի քանի կարգավորումներ, որոնք կարող են ազդել բազմաթիվ հավելվածների աշխատանքի վրա: Պարզվել է, որ ցանցի թողունակության պրոfile ապահովում է աշխատանքի մեծ մասի բարելավում:
    Ստուգեք.
    tuned-adm ակտիվ
    Սահմանել:
    tuned-adm profile ցանցի թողունակությունը
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    Կարգավորված ծառայությունը պետք է գործարկվի վերը նշված հրամանների համար: Ստուգելու/վերագործարկելու համար՝ լարված
    Կարող եք նաև արգելել C-state ցանկացած մուտք՝ միջուկի բեռնման տողում ավելացնելով հետևյալը.
    պարապ=հարցում
  • Սահմանափակեք C- վիճակը համակարգի էներգիայի կառավարման BIOS-ի կարգավորումների միջոցով, որոնք կարող են ունենալ արդյունավետությունfile հասանելի.
    Գործիքներ, ինչպիսիք են turbostat-ը կամ x86_energy_perf_policy-ը, կարող են օգտագործվել էներգիայի կառավարման կարգավորումները ստուգելու կամ սահմանելու համար:

5.2.2 PCIe Power Management
Active-State Power Management-ը (ASPM) թույլ է տալիս PCIe կապերի ավելի ցածր էներգիայի վիճակ, երբ դրանք ակտիվ չեն օգտագործվում: Սա կարող է առաջացնել ավելի մեծ ուշացում PCIe ցանցային սարքերում, ուստի Intel-ը խորհուրդ է տալիս անջատել ASPM-ը հետաձգման նկատմամբ զգայուն աշխատանքային բեռների համար: Անջատեք ASPM-ը՝ ավելացնելով հետևյալը միջուկի բեռնման տողում՝ pcie_aspm=off
5.2.3 CPU հաճախականության մասշտաբավորում
Պրոցեսորի հաճախականության մասշտաբավորումը (կամ պրոցեսորի արագության սանդղակումը) Linux-ի էներգիայի կառավարման տեխնիկան է, որի ժամանակ համակարգի ժամացույցի արագությունը ճշգրտվում է անմիջապես՝ էներգիան և ջերմությունը խնայելու համար: Ճիշտ այնպես, ինչպես C- վիճակները, սա կարող է առաջացնել անցանկալի ուշացում ցանցային միացումներում:
Cpupower գործիքը կարող է օգտագործվել նաև պրոցեսորի կատարողականի լռելյայն և սահմանաչափերը ստուգելու և փոփոխելու համար.

  • Ստուգեք՝ cpupower մոնիտոր կամ
  • Նախադրեք պրոցեսորները կատարողական ռեժիմին՝ cpupower-ի հաճախականության սահմանում -g կատարողականություն

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Պրոցեսորի հաճախականության սահմանաչափերի փոփոխությունները կարող են ազդել բազմաթիվ աշխատանքային բեռների վրա և կարող են անջատել այլ գործառույթներ, օրինակ՝ պրոցեսորի տուրբո ռեժիմը:
CPU-ի հաճախականության չափումն անջատելու համար անջատեք պրոցեսորի էներգիայի ծառայությունը հետևյալ հրամաններով.
systemctl դադարեցնել cpupower.service
systemctl անջատել cpupower.service
5.2.4 Էլեկտրաէներգիայի կառավարման լրացուցիչ ուղեցույց
Լրացուցիչ մանրամասները ներկայացված են այս բարձր մակարդակովview 3-րդ սերնդի Intel® Xeon® Scalable պրոցեսորների էներգիայի կառավարման շատ առանձնահատկություններ, ինչպես նաև ուղեցույց այն մասին, թե ինչպես կարող են ինտեգրվել այս հատկանիշները հարթակի մակարդակում. https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost-ը անհրաժեշտության դեպքում պրոցեսորն ավելի արագ է դարձնում, բայց կարող է լրացուցիչ էներգիա սպառել: Turbo Boost-ն անջատելը պրոցեսորը պահում է կայուն արագության վրա՝ ապահովելով աշխատանքի կայուն մակարդակ որոշակի ծանրաբեռնվածության համար:
5.4 Firewalls
Firewall-ները կարող են ազդել աշխատանքի վրա, մասնավորապես, ուշացման աշխատանքի վրա:
Անջատեք iptables/firewalld-ը, եթե դա անհրաժեշտ չէ:
5.5 Հավելվածի կարգավորումներ
Հաճախ մեկ շարանը (որը համապատասխանում է մեկ ցանցի հերթին) բավարար չէ առավելագույն թողունակություն ձեռք բերելու համար: Որոշ պլատֆորմի ճարտարապետներ, ինչպիսիք են AMD-ը, հակված են մեկ շղթայով ավելի շատ Rx փաթեթներ գցել Intel-ի վրա հիմնված պրոցեսորներով պլատֆորմների համեմատ:
Մտածեք օգտագործել այնպիսի գործիքներ, ինչպիսիք են taskset-ը կամ numactl-ը՝ հավելվածները կապելու համար NUMA հանգույցին կամ պրոցեսորի միջուկներին՝ տեղական ցանցային սարքում: Որոշ աշխատանքային բեռների համար, ինչպիսիք են պահեստավորման I/O-ն, հավելվածը ոչ տեղական հանգույց տեղափոխելը առավելություն է տալիս:
Հնարավորության դեպքում փորձեք ավելացնել ձեր հավելվածի կողմից օգտագործվող թելերի քանակը:
5.6 միջուկի տարբերակը
Ներարկղային միջուկների մեծ մասը ողջամտորեն լավ օպտիմիզացված է կատարողականի համար, սակայն, կախված ձեր օգտագործման դեպքից, միջուկի թարմացումը կարող է բարելավել կատարողականությունը: Աղբյուրը ներբեռնելը նաև հնարավորություն է տալիս միացնել/անջատել որոշակի հնարավորություններ նախքան միջուկը կառուցելը:
5.7 Օպերացիոն համակարգի/միջուկի կարգավորումներ
Խորհրդակցեք օպերացիոն համակարգերի թյունինգի ուղեցույցներին, ինչպիսին է Red Hat Enterprise Linux Network Performance Tuning Guide-ը, ընդհանուր օպերացիոն համակարգի թյունինգի վերաբերյալ լրացուցիչ պատկերացում կազմելու համար:
Կարգավորելու որոշ ընդհանուր պարամետրեր թվարկված են հետևյալ աղյուսակում: Նկատի ունեցեք, որ դրանք միայն առաջարկվող մեկնարկային կետերն են, և դրանք կանխադրվածից փոխելը կարող է մեծացնել համակարգում օգտագործվող ռեսուրսները: Թեև արժեքների ավելացումը կարող է օգնել բարելավել կատարողականը, անհրաժեշտ է փորձարկել տարբեր արժեքներ՝ որոշելու համար, թե որն է լավագույնս աշխատում տվյալ համակարգի, ծանրաբեռնվածության և երթևեկության տեսակի համար:
Միջուկի պարամետրերը կարգավորելի են Linux-ում sysctl ծրագրի միջոցով, ինչպես նշված է ստորև:
Դեպի view rmem-ի և wmem-ի լռելյայն արժեքները համակարգում.
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Սահմանեք արժեքները առավելագույնը (16 ՄԲ):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Socket բուֆերների չափերը, որոնք նաև հայտնի են որպես ընդունման բուֆեր (rmem) և փոխանցման բուֆեր (wmem), համակարգի պարամետրեր են, որոնք սահմանում են ցանցի մուտքային և ելքային տրաֆիկի համար պահված հիշողության քանակը:
Գործող sysctl-ն առանց -w արգումենտի ցուցակագրում է պարամետրն իր ընթացիկ պարամետրով:

Դույների կարգավորում Նկարագրություն
net.core.rmem_default Ստացման պատուհանի կանխադրված չափը
net.core.wmem_default Հաղորդման պատուհանի կանխադրված չափը
net.core.rmem_max Ստացման պատուհանի առավելագույն չափը
net.core.wmem_max Հաղորդման պատուհանի առավելագույն չափը
net.core.optmem_max Հիշողության առավելագույն ընտրանքների բուֆերներ
net.core.netdev_max_backlog Չմշակված փաթեթների կուտակում, նախքան միջուկը կսկսի ընկնել
net.ipv4.tcp_rmem Հիշողության ռեզերվատոր TCP ընթերցման բուֆերների համար
net.ipv4.tcp_wmem Հիշողության ռեզերվատոր TCP ուղարկելու բուֆերների համար

Միջուկը, ցանցի կույտը, հիշողության մշակիչը, պրոցեսորի արագությունը և էներգիայի կառավարման պարամետրերը կարող են մեծ ազդեցություն ունենալ ցանցի աշխատանքի վրա: Ընդհանուր առաջարկություն է դիմել ցանցի թողունակության պրոֆիլինfile օգտագործելով կարգավորված հրամանը: Սա փոփոխում է ՕՀ-ի մի քանի կարգավորումներ՝ ցանցային հավելվածներին նախապատվություն տալու համար:
Ստուգեք.
tuned-adm ակտիվ
Սահմանել:
tuned-adm profile ցանցի թողունակությունը
5.8 Ցանցային սարքի հետքայլ
Այս հատկությունը օգնում է բարելավել ցանցի աշխատանքը՝ արդյունավետորեն կառավարելով մուտքային տրաֆիկը, նվազեցնելով փաթեթների կորուստը, նվազեցնելով հետաձգումը և խթանելով թողունակությունը: Սա հանգեցնում է ավելի լավ օգտվողի փորձի և համակարգի ավելի արագ արձագանքման:
Լռելյայնորեն այն միացված է Linux օպերացիոն համակարգերի մեծ մասում: Նախնական արժեքը ստուգելու համար՝
sysctl net.core.netdev_max_backlog
Netdev_max_backlog-ի առավելագույն արժեքը կարող է տարբեր լինել՝ կախված այնպիսի գործոններից, ինչպիսիք են միջուկի տարբերակը, սարքաշարը, հիշողությունը և ծանրաբեռնվածությունը: Շատ դեպքերում 8192-ը դիտվում է որպես լավ արժեք: sysctl -w net.core.netdev_max_backlog=8192
5.9 Պլատֆորմին հատուկ կոնֆիգուրացիաներ և թյունինգ
5.9.1 4-րդ սերնդի Intel® Xeon® ընդլայնելի պրոցեսորներ

Intel® 4-րդ սերնդի Intel® Xeon® Scalable պրոցեսորի էներգիայի կառավարումը չափազանց ագրեսիվ է 3-րդ սերնդի Intel® Xeon® Scalable պրոցեսորների համեմատ: Որպեսզի միջուկները չմտնեն ցածր էներգիայի վիճակներ, փորձեք նվազեցնել օգտագործվող միջուկների քանակը՝ դրանք ավելի երկար արթուն պահելու համար:
Առաջարկվող Bios-ի կարգավորումներ ամենաբարձր արդյունավետության համար

  1. Hyper-threading-ը միացնել/անջատել պրոցեսորի վրա (հիմնված աշխատանքային ծանրաբեռնվածության պահանջի և կատարողականի նպատակների վրա):
  2. Կարգավորեք համակարգի պրոֆիլըfile մինչև Performance՝ առավելագույն կատարման համար:
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    Սա հանգեցնում է ավելի մեծ էներգիայի սպառման
  3. Նախադրեք պրոցեսորի էներգիայի կառավարումը առավելագույն արդյունավետության վրա՝ առաջնահերթություն տալու համար պրոցեսորի առավելագույն արդյունավետությունը էներգիայի արդյունավետությունից:
  4. Միացնել Turbo Boost-ը: Turbo Boost-ի անջատումը համակարգի BIOS-ի կարգավորումներում սովորաբար թույլ չի տալիս պրոցեսորին դինամիկ կերպով մեծացնել ժամացույցի արագությունը՝ գերազանցելով հիմնական հաճախականությունը:
  5. ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    Turbo Boost-ի անջատումը կարող է հարմար լինել օգտագործման որոշակի դեպքերի համար, երբ հետևողական կատարումը, էներգիայի արդյունավետությունը կամ ջերմային կառավարումը առաջնահերթ են առավելագույն արտադրողականությունից:
  6. Անջատեք Single Root I/O Virtualization (SR-IOV) գործառույթը, եթե համակարգը չի օգտագործում վիրտուալացման տեխնոլոգիաներ:
  7. Անջատեք C- վիճակները՝ հրահանգելու, որ պրոցեսորը մնա ակտիվ և կանխի ավելի խորը պարապ վիճակներ մտնելը:
  8. Անջատեք C1E-ն՝ համոզվելու համար, որ պրոցեսորը մնա ակտիվ և չմտնի C1E պարապ վիճակ:
  9. Սահմանեք uncore հաճախականությունը առավելագույնի վրա, որպեսզի հրահանգեք համակարգին աշխատել առավելագույն հասանելի հաճախականությամբ:
  10. Dell հարթակներում բազմակի APIC նկարագրության աղյուսակի (MADT) միջուկային էմուլյացիան սահմանեք Linear (կամ Round-Robin՝ կախված BIOS-ից)՝ CPU միջուկների հստակ և կանխատեսելի քարտեզագրում ապահովելու համար:

Առաջարկվող OS մակարդակի կարգավորումներ օպտիմիզացված կատարման համար

  1. Նախադրեք պրոցեսորի հաճախականության սանդղակի կարգավորիչը կատարման համար: cpupower frequency-set -g performance cpupower frequency-info
  2. Անջատել C- վիճակները: cpupower idle-set -D0
  3. Սահմանեք հիմնական Rx (rmem) և Tx (wmem) բուֆերները առավելագույն արժեքի: sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Սահմանել ցանցային սարքի հետնահերթությունը: sysctl -w net.core.netdev_max_backlog=8192
  5. Սահմանել լարված պրոfile (աշխատանքի ծանրաբեռնվածությունը կախված է թողունակությունից/ուշացումից):
    tuned-adm profile ցանցի թողունակությունը

Առաջարկվող ադապտերների մակարդակի կարգավորումներ օպտիմիզացված կատարողականության համար

  1. Սահմանափակեք հերթերի քանակը հավելվածների տրաֆիկի համար օգտագործելու համար: Օգտագործեք նվազագույն թվով հերթեր, որոնք անհրաժեշտ են կապակցված պրոցեսորի միջուկները ակտիվ պահելու համար՝ կանխելու համար դրանք ավելի խորը անգործուն վիճակներ մտնելուց (հարմարեցված՝ ըստ աշխատանքային ծանրաբեռնվածության). ethtool -L համակցված 32
  2. Սահմանեք ընդհատումների չափման դրույքաչափերը: ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    Փորձեք կարգավորել փոխանցման/ստացման/բարձր առաջնահերթության միավորման ժամանակաչափը ավելի բարձր (80/100/150/200) կամ ավելի ցածր (25/20/10/5)՝ աշխատանքի ծանրաբեռնվածության օպտիմալ արժեք գտնելու համար:
  3. Սահմանեք Rx/Tx օղակների չափերը: էթգործիք - Գ rx 4096 tx 4096
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    Եթե ​​տեսնում եք Rx փաթեթի կաթիլներ ethtool -S|-ով grep drop, փորձեք նվազեցնել օղակի չափը <4096: Փորձեք գտնել աշխատանքային ծանրաբեռնվածության օպտիմալ արժեքը, որտեղ փաթեթները չեն գցվում:
  4. Սահմանել IRQ Affinity: Օգտագործեք տեղական միջուկներ NIC-ում կամ հատուկ միջուկային քարտեզագրում (որտեղ # միջուկը հավասար է 1-րդ էջում 26-ում սահմանված հերթերի քանակին: systemctl stop irqbalance set_irq_affinity -X local ԿԱՄ set_irq_affinity -X

5.9.2 դր EPYC
AMD EPYC պրոցեսորները հզոր պրոցեսորներ են, որոնք ստեղծված են սերվերների և տվյալների կենտրոնների համար՝ կառուցված AMD-ի Zen ճարտարապետության վրա: Ստորև բերված կարգավորումները AMD-ի 4-րդ սերնդի EPYC շարքից են:
Առաջարկվող BIOS-ի կարգավորումներ ամենաբարձր արդյունավետության համար

  1. Միացրեք հատուկ ռեժիմը, որպեսզի օգտվողները կարողանան կարգավորել պրոցեսորի աշխատանքը, էներգիայի սպառումը և այլ կարգավորումները: Սա օգնում է կարգավորել համակարգը արդյունավետության և էներգաարդյունավետության միջև լավագույն հավասարակշռության համար:
  2. Միացնել հիմնական կատարողականի խթանումը, որպեսզի պրոցեսորն ավտոմատ կերպով բարձրացնի իր արագությունը՝ ավելի ինտենսիվ առաջադրանքները կատարելու համար՝ բարելավելով ընդհանուր կատարումը:
  3. Անջատեք գլոբալ C-state հսկողությունը՝ կանխելու CPU-ի մուտքը ավելի խորը էներգախնայող վիճակներ, որոնք հայտնի են որպես C- վիճակներ, որոնք կարող են պահպանել արձագանքողությունը:
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    C- վիճակների անջատումը կարող է առաջացնել էներգիայի լրացուցիչ սպառում և բարձրացնել ջերմային ջերմաստիճանը: Վերահսկեք երկուսն էլ ծանրաբեռնվածության համար:
  4. Միացնել/անջատել միաժամանակյա բազմաշերտությունը (SMT) պրոցեսորի վրա՝ հիմնվելով աշխատանքային ծանրաբեռնվածության պահանջի և կատարողականի նպատակների վրա: SMT-ը համարժեք է Hyper Threading-ին Intel CPU-ների վրա:
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    Օպտիմիզացված աշխատանքի համար տե՛ս Tuning i40e Driver Settings-ը էջ 13-ում և Platform Tuning (i40e Non-Specific) էջ 19-ում՝ առաջարկվող OS-ի և ադապտերների մակարդակի թյունինգի համար:

Ադապտորների միացում

Linux-ի կապը հզոր հատկանիշ է, որը կարող է զգալիորեն բարելավել ցանցի աշխատանքը, ավելորդությունը և սխալների հանդուրժողականությունը սերվերի միջավայրում: Այնուամենայնիվ, կարևոր է նշել, որ այն պահանջում է համատեղելի ցանցային սարքավորում և պատշաճ կոնֆիգուրացիա ինչպես սերվերի, այնպես էլ անջատիչի վրա՝ ճիշտ գործելու համար:
Linux-ի միացման դրայվերը թույլ է տալիս միավորել բազմաթիվ ֆիզիկական ցանցային ինտերֆեյսեր միացված ինտերֆեյսի մեջ: Այս կապակցված ինտերֆեյսը հայտնվում է որպես մեկ վիրտուալ ցանցային ինտերֆեյս օպերացիոն համակարգի և հավելվածների համար:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Կապը տրամաբանական ինտերֆեյս է, ուստի հնարավոր չէ CPU-ի մերձեցումը ուղղակիորեն կապի միջերեսի վրա (օրինակ՝ample, bond0). Այսինքն, այն ուղղակիորեն չի վերահսկում ընդհատումների մշակումը կամ պրոցեսորի մերձեցումը: CPU-ի հարաբերակցությունը պետք է կազմաձևվի հիմքում ընկած միջերեսների համար, որոնք կապի մաս են կազմում:
Bonding-ը ապահովում է աշխատանքի մի քանի եղանակներ, որոնցից յուրաքանչյուրն ունի իր առանձնահատկությունները:

Ռեժիմ  Տեսակ
0 Round Robin
1 Ակտիվ կրկնօրինակում
2 XOR
3 Հեռարձակում
4 LACP
5 Փոխանցման բեռի հաշվեկշիռը
6 Հարմարվողական ծանրաբեռնվածության հաշվեկշիռ

Linux-ում կապ ստեղծելու տարբեր մեթոդներ կան: Ամենատարածված մեթոդներից մեկը ցանցի կոնֆիգուրացիայի օգտագործումն է files (օրինակample, /etc/network/ ինտերֆեյսներ կամ /etc/sysconfig/network-scripts/ifcfg-bondX):
Կազմաձևում՝ օգտագործելով ցանցի կազմաձևումը Files
Հետևյալ քայլերը կապ են ստեղծում ցանցի կազմաձևման միջոցով files.

  1. Ընտրեք երկու կամ ավելի NIC պորտեր միացման համար (օրինակample, ethX և ethY)
  2. Բացեք NIC կոնֆիգուրացիա Files տակ /etc/sysconfig/network-scripts/ պահանջվող NIC ինտերֆեյսի համար (նախկինample, vi ifcfg-ethX և vi ifcfg-ethY) և կցեք հետևյալ տեքստը.
    MASTER=bondN [Նշում. N-ն ամբողջ թիվ է՝ նշելու պարտատոմսի համարը:] SLAVE=այո
  3. Ստեղծեք կապի ցանցի սցենար file օգտագործելով vi /etc/sysconfig/networkscripts/ifcfg-bondN և մուտքագրեք հետևյալ տեքստը.
    DEVICE=bondN [Նշում. N-ն ամբողջ թիվ է՝ նշելու պարտատոմսի համարը] ONBOOT=այո USERCTL=ոչ BOOTPROTO=dhcp (կամ) ոչ մեկը
    IPADDR=200.20.2.4 [պահանջվում է, եթե BOOTPROTO=չկա] NETMASK=255.255.255.0 [պահանջվում է, եթե BOOTPROTO=ոչինչ] NETWORK=200.20.2.0 [պահանջվում է, եթե BOOTPROTO=չկա] BROADCAST=200.20.2.255 պահանջվում է BOOTPROTO=ոչ մեկը] BONDING_OPTS=”mode=1 miimon=100″
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    Ռեժիմը կարող է լինել ցանկացած ամբողջ թիվ՝ 0-ից մինչև 6՝ ըստ պահանջի:
  4. Վերագործարկեք ցանցային ծառայությունները՝ օգտագործելով սպասարկման ցանցի վերագործարկումը կամ systemctl վերագործարկեք NetworkManager.service

Կատարման խնդիրների լուծում

7.1 CPU-ի օգտագործում
Ստուգեք պրոցեսորի օգտագործումը մեկ միջուկի համար, մինչ աշխատանքային ծանրաբեռնվածությունը աշխատում է:
Նկատի ունեցեք, որ մեկ միջուկի օգտագործումն ավելի համապատասխան է կատարողականին, քան պրոցեսորի ընդհանուր օգտագործումը, քանի որ այն պատկերացում է տալիս պրոցեսորի օգտագործման յուրաքանչյուր ցանցի հերթում: Եթե ​​դուք ունեք ընդամենը մի քանի թելեր, որոնք աշխատում են ցանցային թրաֆիկով, ապա կարող եք օգտագործել միայն մի քանի միջուկ: Այնուամենայնիվ, եթե այդ միջուկները 100% են, ապա ձեր ցանցի թողունակությունը հավանաբար սահմանափակվում է պրոցեսորի օգտագործմամբ, և ժամանակն է կատարել հետևյալը.

  1. Կարգավորեք IRQ մոդերացիայի/մատանի չափը, ինչպես մանրամասնված է ընդհատման ռեժիմում:
  2. Բարձրացրեք կիրառական թելերի քանակը՝ պրոցեսորի բեռը ավելի շատ միջուկների վրա տարածելու համար: Եթե ​​բոլոր միջուկներն աշխատում են 100%-ով, ապա ձեր հավելվածը կարող է կապված լինել պրոցեսորի վրա, քան ցանցի հետ կապված:

Ընդհանուր հասանելի գործիքներ.

  • վերեւ
    — Սեղմեք 1՝ ընդլայնելու պրոցեսորների ցանկը և ստուգելու, թե որոնք են օգտագործվում:
    - Ուշադրություն դարձրեք օգտագործման մակարդակին:
    — Ուշադրություն դարձրեք, թե որ գործընթացներն են նշված որպես ամենաակտիվ (ցուցակի վերևում):
  • mpstat
    Հետևյալ նախկինample հրամանի տողը փորձարկվել է Red Hat Enterprise Linux 7.x-ում:
    Այն ցուցադրում է պրոցեսորի օգտագործումը մեկ միջուկի համար (գտնելով անգործության ընդհանուր տոկոսը և 100-ից հանելով) և կարմիրով ընդգծում է 80%-ից բարձր արժեքները: mpstat -P ԲՈԼՈՐ 1 1 | grep -v Միջին | պոչ -ն ​​+5 | գլուխ -ն -1 | awk '{ տպել (100-$13)}' | egrep -color=միշտ '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | սյունակ
  • perf top Փնտրեք, թե որտեղ են ծախսվում ցիկլերը:

7.2 i40e Հաշվիչներ
i40e դրայվերը ապահովում է հաշվիչների երկար ցուցակ ինտերֆեյսի վրիպազերծման և մոնիտորինգի համար ethtool -S ethX հրամանի միջոցով: Օգտակար կարող է լինել դիտել արդյունքը, երբ աշխատում է ծանրաբեռնվածությունը և/կամ համեմատել հաշվիչների արժեքները ծանրաբեռնվածությունից առաջ և հետո:

  • i40e հաշվիչների ամբողջական աղբանոց ստանալու համար՝ ethtool -S ethX
  • Պարզապես ոչ զրոյական հաշվիչներ դիտելու համար՝ watch -d (ethtool -S ethX) | egrep -v :\ 0 | սյունակ
    Որոշ բաներ փնտրելու համար.
  • rx_dropped նշանակում է, որ պրոցեսորը բավականաչափ արագ չի սպասարկում բուֆերները:
  • port.rx_dropped նշանակում է, որ ինչ-որ բան բավականաչափ արագ չէ բնիկ/հիշողություն/ համակարգում:

7.3 Ցանցային հաշվիչներ
Ստուգեք netstat -s-ը աշխատանքային ծանրաբեռնվածությունից առաջ/հետո:
Netstat-ը հավաքում է ցանցային տեղեկատվություն համակարգի բոլոր ցանցային սարքերից: Հետևաբար, արդյունքները կարող են ազդել փորձարկվող ցանցից բացի այլ ցանցերից: Netstat -s-ի ելքը կարող է լավ ցուցանիշ լինել Linux օպերացիոն համակարգի կամ միջուկի աշխատանքի հետ կապված խնդիրների մասին: Խորհրդակցեք օպերացիոն համակարգերի թյունինգի ուղեցույցներին, ինչպիսին է Red Hat Enterprise Linux Network Performance Tuning Guide-ը, ընդհանուր օպերացիոն համակարգի թյունինգի վերաբերյալ լրացուցիչ պատկերացում կազմելու համար:
7.4 Համակարգի մատյաններ
Ստուգեք համակարգի մատյանները սխալների և նախազգուշացումների համար (/var/log/messages, dmesg):
7.5 Intel svr-info գործիք
Intel-ը տրամադրում է svr-info գործիք (տես https://github.com/intel/svr-info) Linux-ի համար, որը սերվերից վերցնում է համապատասխան ապարատային և ծրագրային մանրամասները: svr-info ելքը կարող է չափազանց օգտակար լինել՝ բացահայտելու համակարգի խցանումները կամ կարգավորումները/կարգավորումները, որոնք օպտիմիզացված չեն աշխատանքի ծանրաբեռնվածության համար: Intel-ի հետ Ethernet-ի հետ կապված աշխատանքի խնդիրների համար աջակցության պատյան բացելիս համոզվեք, որ ներառեք svr-info ելք (տեքստ file) յուրաքանչյուր Linux սերվերի համար թեստային կազմաձևում:

  1. Ներբեռնեք և տեղադրեք svr-info.
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > hostname.txt
  2. Հավաքեք արդյունքը.
    ./svr-info > hostname.txt
  3. Կցել մեկ տեքստ (.txt) file յուրաքանչյուր սերվերի համար ձեր Intel-ի աջակցության գործը վերլուծության համար:

Առաջարկություններ ընդհանուր կատարողական սցենարների համար

8.1 IP վերահասցեավորում

  • Թարմացրեք միջուկը:
    Որոշ վերջերս ներտարածված միջուկներ նսեմացրել են երթուղավորման աշխատանքը՝ երթուղային կոդի միջուկի փոփոխությունների պատճառով՝ սկսած երթուղային քեշի հեռացումից՝ անվտանգության պատճառով: Վերջին շրջանից դուրս միջուկները պետք է ունենան կարկատներ, որոնք կթուլացնեն այս փոփոխությունների կատարողականի ազդեցությունը և կարող են ապահովել բարելավված կատարողականություն:
  • Անջատել Hyper-threading-ը (տրամաբանական միջուկներ):
  • Խմբագրել միջուկի բեռնման պարամետրերը:
    — Ստիպել iommu-ն անջատել (intel_iommu=off կամ iommu=off) միջուկի բեռնման գծից, եթե դա պահանջվում է վիրտուալացման համար
    — Անջատեք էներգիայի կառավարումը. processor.max_cstates=1 idle=poll pcie_aspm=off
  • Սահմանափակեք հերթերի քանակը, որպեսզի հավասար լինի տեղական վարդակից միջուկների քանակին (այս նախկինում՝ 12ampլե). ethtool -L ethX համակցված 12
  • Ամրացրեք ընդհատումները միայն տեղական վարդակից: set_irq_affinity -X տեղական ethX ԿԱՄ set_irq_affinity -X տեղական ethX
    ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
    -X կամ -x կարող են օգտագործվել կախված ծանրաբեռնվածությունից:
  • Փոխեք Tx և Rx օղակների չափերը ըստ անհրաժեշտության: Ավելի մեծ արժեքը պահանջում է ավելի շատ ռեսուրսներ, բայց կարող է ապահովել ավելի լավ վերահասցեավորման տոկոսադրույքներ: ethtool -G ethX rx 4096 tx 4096
  • Անջատել GRO-ն երթուղղելիս:
    Միջուկի հայտնի խնդրի պատճառով GRO-ն պետք է անջատված լինի երթուղի/փոխանցելիս: ethtool -K ethX gro դուրս, որտեղ ethX-ը Ethernet միջերեսն է, որը պետք է փոփոխվի:
  • Անջատեք հարմարվողական ընդհատումների ռեժիմը և սահմանեք ստատիկ արժեք: ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Կախված պրոցեսորի տեսակից և ծանրաբեռնվածությունից՝ RX-ի և TX-ի միավորման պարամետրերը կարող են ճշգրտվել՝ կատարելագործված աշխատանքի համար (կամ ավելի քիչ շրջանակի կորուստ):

  • Անջատեք firewall-ը: sudo systemctl անջատել firewalld sudo systemctl stop firewalld
  • Միացնել IP վերահասցեավորումը: sysctl -w net.ipv4.ip_forward=1
  • Կազմաձևեք առավելագույն արժեքները ստացման և ուղարկման վարդակների բուֆերի չափերի համար: sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Կախված ծանրաբեռնվածությունից կամ պահանջներից, այս արժեքները կարող են փոխվել լռելյայնից:
8.2 Ցածր ուշացում

  • Անջատեք հիպերթրեդինգը (տրամաբանական միջուկները):
  • Համոզվեք, որ ցանցային սարքը տեղական է numa core 0-ին:
  • Հենանիշը ամրացրեք 0-ի միջուկին, օգտագործելով առաջադրանքների հավաքածու -c 0:
  • Անջատեք irqbalance-ը` օգտագործելով systemctl stop irqbalance կամ systemctl անջատել irqbalance-ը
  • Գործարկեք կապի սկրիպտը՝ միջուկներում տարածվելու համար: Փորձեք տեղական կամ բոլորը:
  • Անջատեք ընդհատումների ռեժիմը: ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- բարձր 0
  • Սահմանափակեք հերթերի քանակը, որպեսզի հավասար լինի տեղական վարդակից միջուկների քանակին (այս նախկինում՝ 32ampլե). ethtool -L ethX համակցված 32
  • Ամրացրեք ընդհատումները միայն տեղական վարդակից (սկրիպտը փաթեթավորված է i40e վարորդի աղբյուրով): set_irq_affinity -X տեղական ethX
  • Օգտագործեք հաստատված հենանիշ, ինչպիսիք են netperf -t TCP_RR, netperf -t UDP_RR կամ NetPipe: netperf -t TCP_RR կամ netperf -t UDP_RR
  • Ամրացրեք հենանիշը մեկ միջուկին տեղական NUMA հանգույցում: առաջադրանքների հավաքածու - գ

Intel ® Ethernet 700 Series
Linux Performance Tuning ուղեցույց
2024 թվականի դեկտեմբեր
Դոկ. Թիվ՝ 334019, Վեր.՝ 1.2

Փաստաթղթեր / ռեսուրսներ

Intel Ethernet 700 Series Linux Performance Tuning [pdf] Օգտագործողի ուղեցույց
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *