Intel ® 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 Առնչվող հղումներ
- Օգտագործման ուղեցույց բոլոր Intel ® Ethernet ադապտերների և սարքերի համար, որոնք աջակցում են Windows և Linux:
Intel ® Ethernet ադապտերների և սարքերի օգտագործման ուղեցույց - Տեխնիկական տվյալների թերթիկ.
Intel ® Ethernet Controller X710/XXV710/XL710 Datasheet - Ամբողջական SW փաթեթ Intel ® Ethernet-ի բոլոր արտադրանքների համար (ներբեռնեք բոլոր դրայվերները, NVM-ները, գործիքները և այլն).
Intel ® Ethernet ադապտեր վարորդների ամբողջական փաթեթ - NVM (Ոչ անկայուն հիշողություն) թարմացման փաթեթ.
Ոչ անկայուն հիշողության (NVM) թարմացման օգտակար ծրագիր Intel ® Ethernet ցանցային 700 սերիայի ադապտերների համար - svr-info գործիք Linux-ի համար, որը սերվերից վերցնում է համապատասխան ապարատային և ծրագրային մանրամասները. https://github.com/intel/svr-info
- DDP տեխնոլոգիայի ուղեցույց.
Intel ® Ethernet 700 Series Dynamic Device Personalization (DDP) տեխնոլոգիայի ուղեցույց
Նախնական ստուգաթերթ
2.1 Թարմացրեք վարորդի/որոնվածի տարբերակները
Ստուգեք վարորդի/որոնվածի տարբերակները՝ օգտագործելով ethtool -i ethx:
Անհրաժեշտության դեպքում թարմացրեք հետևյալը.
- Թարմացրեք 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 - Թարմացրեք որոնվածը
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
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 սերիայի ցանցային ադապտերներն ու դրայվերներն են ապահովում դրանք:
- Համոզվեք, որ ունեք անհրաժեշտ վարորդի և ապարատային աջակցություն՝ նախքան սիմետրիկ հերթերը կարգավորելու փորձը:
Սիմետրիկ հերթերը կարգավորելու համար հետևեք այս ընդհանուր քայլերին.
- Խմբագրել ցանցի ինտերֆեյսի կոնֆիգուրացիան FileՕգտագործեք տեքստային խմբագրիչ (օրինակample, vi, nano կամ gedit) ցանցի ինտերֆեյսի կոնֆիգուրացիան խմբագրելու համար file. Այն file սովորաբար գտնվում է /etc/sysconfig/network-scripts/ գրացուցակի տակ և ունի ifcfg-ethX անուն, որտեղ ethX-ը ձեր ցանցային ինտերֆեյսի անունն է:
- Ավելացնել սիմետրիկ հերթի պարամետրեր: Ցանցային ինտերֆեյսի կազմաձևին ավելացրեք հետևյալ տողերը fileETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
- Վերագործարկեք ցանցային ծառայությունը:
Փոփոխությունները կատարելուց հետո վերագործարկեք ցանցային ծառայությունը՝ նոր կոնֆիգուրացիան կիրառելու համար: 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
Նշումներ:
- Անջատեք C-ի վիճակները պրոցեսորի վրա, եթե սերվերն ունի Intel® 4-րդ սերնդի Intel® Xeon® ընդլայնելի պրոցեսոր(ներ): Երբ Hyper Threading-ը միացված է կամ անջատված է, անգործուն վիճակների անջատումը (-D0) կանխում է միջուկների մուտքը ցածր էներգիայի վիճակներ անգործության ժամանակաշրջաններում և նվազեցնում է CPU-ի անգործության և ակտիվ վիճակների միջև անցումը:
- 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-ի կարգավորումներ ամենաբարձր արդյունավետության համար
- Hyper-threading-ը միացնել/անջատել պրոցեսորի վրա (հիմնված աշխատանքային ծանրաբեռնվածության պահանջի և կատարողականի նպատակների վրա):
- Կարգավորեք համակարգի պրոֆիլըfile մինչև Performance՝ առավելագույն կատարման համար:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Սա հանգեցնում է ավելի մեծ էներգիայի սպառման - Նախադրեք պրոցեսորի էներգիայի կառավարումը առավելագույն արդյունավետության վրա՝ առաջնահերթություն տալու համար պրոցեսորի առավելագույն արդյունավետությունը էներգիայի արդյունավետությունից:
- Միացնել Turbo Boost-ը: Turbo Boost-ի անջատումը համակարգի BIOS-ի կարգավորումներում սովորաբար թույլ չի տալիս պրոցեսորին դինամիկ կերպով մեծացնել ժամացույցի արագությունը՝ գերազանցելով հիմնական հաճախականությունը:
- ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Turbo Boost-ի անջատումը կարող է հարմար լինել օգտագործման որոշակի դեպքերի համար, երբ հետևողական կատարումը, էներգիայի արդյունավետությունը կամ ջերմային կառավարումը առաջնահերթ են առավելագույն արտադրողականությունից: - Անջատեք Single Root I/O Virtualization (SR-IOV) գործառույթը, եթե համակարգը չի օգտագործում վիրտուալացման տեխնոլոգիաներ:
- Անջատեք C- վիճակները՝ հրահանգելու, որ պրոցեսորը մնա ակտիվ և կանխի ավելի խորը պարապ վիճակներ մտնելը:
- Անջատեք C1E-ն՝ համոզվելու համար, որ պրոցեսորը մնա ակտիվ և չմտնի C1E պարապ վիճակ:
- Սահմանեք uncore հաճախականությունը առավելագույնի վրա, որպեսզի հրահանգեք համակարգին աշխատել առավելագույն հասանելի հաճախականությամբ:
- Dell հարթակներում բազմակի APIC նկարագրության աղյուսակի (MADT) միջուկային էմուլյացիան սահմանեք Linear (կամ Round-Robin՝ կախված BIOS-ից)՝ CPU միջուկների հստակ և կանխատեսելի քարտեզագրում ապահովելու համար:
Առաջարկվող OS մակարդակի կարգավորումներ օպտիմիզացված կատարման համար
- Նախադրեք պրոցեսորի հաճախականության սանդղակի կարգավորիչը կատարման համար: cpupower frequency-set -g performance cpupower frequency-info
- Անջատել C- վիճակները: cpupower idle-set -D0
- Սահմանեք հիմնական Rx (rmem) և Tx (wmem) բուֆերները առավելագույն արժեքի: sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Սահմանել ցանցային սարքի հետնահերթությունը: sysctl -w net.core.netdev_max_backlog=8192
- Սահմանել լարված պրոfile (աշխատանքի ծանրաբեռնվածությունը կախված է թողունակությունից/ուշացումից):
tuned-adm profile ցանցի թողունակությունը
Առաջարկվող ադապտերների մակարդակի կարգավորումներ օպտիմիզացված կատարողականության համար
- Սահմանափակեք հերթերի քանակը հավելվածների տրաֆիկի համար օգտագործելու համար: Օգտագործեք նվազագույն թվով հերթեր, որոնք անհրաժեշտ են կապակցված պրոցեսորի միջուկները ակտիվ պահելու համար՝ կանխելու համար դրանք ավելի խորը անգործուն վիճակներ մտնելուց (հարմարեցված՝ ըստ աշխատանքային ծանրաբեռնվածության). ethtool -L համակցված 32
- Սահմանեք ընդհատումների չափման դրույքաչափերը: 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)՝ աշխատանքի ծանրաբեռնվածության օպտիմալ արժեք գտնելու համար: - Սահմանեք Rx/Tx օղակների չափերը: էթգործիք - Գ rx 4096 tx 4096
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
Եթե տեսնում եք Rx փաթեթի կաթիլներ ethtool -S|-ով grep drop, փորձեք նվազեցնել օղակի չափը <4096: Փորձեք գտնել աշխատանքային ծանրաբեռնվածության օպտիմալ արժեքը, որտեղ փաթեթները չեն գցվում: - Սահմանել 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-ի կարգավորումներ ամենաբարձր արդյունավետության համար
- Միացրեք հատուկ ռեժիմը, որպեսզի օգտվողները կարողանան կարգավորել պրոցեսորի աշխատանքը, էներգիայի սպառումը և այլ կարգավորումները: Սա օգնում է կարգավորել համակարգը արդյունավետության և էներգաարդյունավետության միջև լավագույն հավասարակշռության համար:
- Միացնել հիմնական կատարողականի խթանումը, որպեսզի պրոցեսորն ավտոմատ կերպով բարձրացնի իր արագությունը՝ ավելի ինտենսիվ առաջադրանքները կատարելու համար՝ բարելավելով ընդհանուր կատարումը:
- Անջատեք գլոբալ C-state հսկողությունը՝ կանխելու CPU-ի մուտքը ավելի խորը էներգախնայող վիճակներ, որոնք հայտնի են որպես C- վիճակներ, որոնք կարող են պահպանել արձագանքողությունը:
ԾԱՆՈԹԱԳՐՈՒԹՅՈՒՆ
C- վիճակների անջատումը կարող է առաջացնել էներգիայի լրացուցիչ սպառում և բարձրացնել ջերմային ջերմաստիճանը: Վերահսկեք երկուսն էլ ծանրաբեռնվածության համար: - Միացնել/անջատել միաժամանակյա բազմաշերտությունը (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.
- Ընտրեք երկու կամ ավելի NIC պորտեր միացման համար (օրինակample, ethX և ethY)
- Բացեք NIC կոնֆիգուրացիա Files տակ /etc/sysconfig/network-scripts/ պահանջվող NIC ինտերֆեյսի համար (նախկինample, vi ifcfg-ethX և vi ifcfg-ethY) և կցեք հետևյալ տեքստը.
MASTER=bondN [Նշում. N-ն ամբողջ թիվ է՝ նշելու պարտատոմսի համարը:] SLAVE=այո - Ստեղծեք կապի ցանցի սցենար 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՝ ըստ պահանջի: - Վերագործարկեք ցանցային ծառայությունները՝ օգտագործելով սպասարկման ցանցի վերագործարկումը կամ systemctl վերագործարկեք NetworkManager.service
Կատարման խնդիրների լուծում
7.1 CPU-ի օգտագործում
Ստուգեք պրոցեսորի օգտագործումը մեկ միջուկի համար, մինչ աշխատանքային ծանրաբեռնվածությունը աշխատում է:
Նկատի ունեցեք, որ մեկ միջուկի օգտագործումն ավելի համապատասխան է կատարողականին, քան պրոցեսորի ընդհանուր օգտագործումը, քանի որ այն պատկերացում է տալիս պրոցեսորի օգտագործման յուրաքանչյուր ցանցի հերթում: Եթե դուք ունեք ընդամենը մի քանի թելեր, որոնք աշխատում են ցանցային թրաֆիկով, ապա կարող եք օգտագործել միայն մի քանի միջուկ: Այնուամենայնիվ, եթե այդ միջուկները 100% են, ապա ձեր ցանցի թողունակությունը հավանաբար սահմանափակվում է պրոցեսորի օգտագործմամբ, և ժամանակն է կատարել հետևյալը.
- Կարգավորեք IRQ մոդերացիայի/մատանի չափը, ինչպես մանրամասնված է ընդհատման ռեժիմում:
- Բարձրացրեք կիրառական թելերի քանակը՝ պրոցեսորի բեռը ավելի շատ միջուկների վրա տարածելու համար: Եթե բոլոր միջուկներն աշխատում են 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 սերվերի համար թեստային կազմաձևում:
- Ներբեռնեք և տեղադրեք svr-info.
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Հավաքեք արդյունքը.
./svr-info > hostname.txt - Կցել մեկ տեքստ (.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 |