Лагатып IntelIntel ® Ethernet 700 серыі
Кіраўніцтва па наладзе прадукцыйнасці Linux
Воблачная сеткавая група NEX (NCNG)
Версія 1.2
снежань 2024 г

Гісторыя версій

Рэвізія Дата Каментарыі
1.2 снежань 2024 г · Дададзены дадатковыя рэкамендацыі па кіраванні сілкаваннем.
· Дададзены Intel* Turbo Boost.
· Дададзены Бэклог сеткавых прылад.
· Дададзены канфігурацыі і налада для канкрэтнай платформы.
· Дададзены маштабуемыя працэсары Intel* %eon* 4-га пакалення.
· Дададзены AMD EPYC.
· Абноўлена Праверка апаратных магчымасцей сістэмы.
· Абноўлены iPerf2.
· Абноўлены iPerf3.
· Абноўленыя чэргі Tx/Rx.
· Абноўленая мадэрацыя перапынення.
· Абноўлены памер кальца.
· Абноўленая настройка платформы (i40e Non-Specific).
· Абноўленыя налады BIOS.
· Абноўлены C-State Control.
· Абноўленае маштабаванне частоты працэсара.
· Абноўленыя налады прыкладання.
· Абноўленыя налады аперацыйнай сістэмы/ядра.
· Абноўлена IP Forwarding.
· Абноўлена нізкая затрымка.
Жнівень 2023 Змены ў гэты дакумент ўключаюць:
· Дададзены звязаныя спасылкі.
· Дададзена пераканайцеся, што пакет DDP загружаецца належным чынам.
· Дададзены iPerf2.
· Дададзены iPerf3.
· Дададзены netperf.
· Абноўлены IRQ Affinity.
· Дададзены чэргі Tx/Rx.
· Абноўлены памер кальца.
· Дададзены Jumbo Frames.
· Дададзена злучэнне адаптара.
· Дададзены інструмент Intel svr-info.
1.0 Сакавік 2016 г Першапачатковы выпуск (Intel Public).

Уводзіны

Гэта кіраўніцтва прызначана для таго, каб даць рэкамендацыі па настройцы асяроддзя для аптымальнай прадукцыйнасці сеткі з выкарыстаннем сеткавых карт Intel ® Ethernet 700 серыі ў асяроддзі 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 існуюць некаторыя мінімальныя патрабаванні да працэсара і сістэмы. Увогуле, сучаснага працэсара сервернага класа і аптымальнай канфігурацыі памяці для вашай платформы павінна быць дастаткова, але патрэбы вар'іруюцца ў залежнасці ад вашай працоўнай нагрузкі. Усе каналы памяці павінны быць запоўненыя, а рэжым прадукцыйнасці памяці павінен быць уключаны ў BIOS. Пераканайцеся, што ваш працэсар і канфігурацыя памяці здольныя падтрымліваць ўзровень прадукцыйнасці сеткі, неабходны для вашай працоўнай нагрузкі.
УВАГА
XL710 - гэта кантролер 40 GbE. Адаптар 2 x 40 GbE, які выкарыстоўвае гэты кантролер, прызначаны не для 2 x 40 GbE, а як 1 x 40 GbE з актыўным рэзервовым портам. Пры спробе выкарыстоўваць трафік з лінейнай хуткасцю з удзелам абодвух партоў унутраны камутатар насычаецца, а агульная прапускная здольнасць паміж двума партамі абмежавана SO Гбіт/с.
2.4.1 Параметры загрузкі ядра
Калі тэхналогія віртуалізацыі Intel® для накіраванага ўводу-вываду (Intel® VT-d) уключана ў BIOS, Intel рэкамендуе, каб IOMMU быў у скразным рэжыме для аптымальнай прадукцыйнасці хост-сеткі. Гэта пазбаўляе накладных выдаткаў DMA на трафік хаста, адначасова дазваляючы віртуальным машынам (ВМ) па-ранейшаму карыстацца перавагамі Intel® VT-d. Гэта дасягаецца шляхам дадання наступнага радка да параметраў загрузкі ядра: fommu-pt.
2.5 Пераканайцеся, што пакет DDP загружаецца належным чынам
Базавыя драйверы 140ea і 140eb не маюць прамой падтрымкі дынамічнай персаналізацыі прылады (DDP). Каб выкарыстоўваць DDP з прыладамі серыі 700, DDP profile можна ўжываць з дадаткам testpmd.
Для атрымання падрабязнай інфармацыі аб DDP profiles, і як прымяніць DDP profile з testpmd на прыладах серыі 700, звярніцеся да Кіраўніцтва па тэхналогіі Intel® Ethernet 700 Series Dynamic Device Personalization (DDP).
Каб праверыць, калі DDP profile быў паспяхова загружаны:
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 вяртае затрымку ў значэнні транзакцый/с. Гэта нумар туды-назад. Аднабаковую затрымку можна вылічыць з дапамогай наступнага ўраўнення:
Затрымка (усек) = (1⁄2) / [Транзакцыі/сек] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Intel рэкамендуе iperf2 замест iperf3 для большасці сітуацый параўнальнага аналізу з-за прастаты выкарыстання і падтрымкі некалькіх патокаў у адным асобніку прыкладання. Intel рэкамендуе працаваць з параметрам -P з 2-4 патокамі для злучэнняў 25G і каля 4-6 патокаў для злучэнняў 40G.

  • Каб запусціць аднанакіраваны трафік ад кліента да сервера: каманда сервера example: iperf2 -s
    Кліенцкая каманда example: iperf2 -c -П
  • Каб запусціць двухнакіраваны трафік ад кліента да сервера (і наадварот): каманда сервера example: iperf2 –s –p
    Кліенцкая каманда exampль:
    iperf2 -c -стар -П -–поўнадуплексны АБО
    iperf2 -c -стар -П –д

УВАГА
Абедзве опцыі –full-duplex і -d у iperf2 дазваляюць карыстачу выконваць двухнакіраванае тэставанне. Аднак поўнадуплексная опцыя арыентавана менавіта на поўнадуплекснае тэставанне.
УВАГА
Пры тэсціраванні iperf2 праз некалькі партоў сервера можна дадаць сцяг -d да каманды сервера, каб запускаць усе сеансы сервера ў фонавым рэжыме з аднаго акна тэрмінала. Сцяг -d таксама можна выкарыстоўваць, калі каманда сервера ўбудавана ў цыкл for у скрыпце.
УВАГА
Пры выкананні тэсту прапускной здольнасці сеткі з адным патокам/патокам (напрыклад,ample: P1), працэсары AMD могуць не забяспечыць чаканую прапускную здольнасць, асабліва сеткавыя карты з больш высокай прапускной здольнасцю (калі хуткасць >= прапускная здольнасць 25G). У выніку патрабуецца замацаванне прыкладанняў на пэўных ядрах для дасягнення большай прапускной здольнасці. Глядзіце налады прыкладання на старонцы 22.
3.1.2 iPerf3
Калі выкарыстоўваецца iperf3, для атрымання Advan патрабуецца некалькі асобнікаў прыкладанняtage з шматструменнасці, RSS і апаратных чэргаў. Intel рэкамендуе працаваць з 2-4 сеансамі прыкладання для злучэнняў 25G і каля 4-6 сеансаў для злучэнняў 40G. Кожны сеанс павінен вызначаць унікальнае значэнне порта TCP з дапамогай параметра -p.

  • Каб запусціць аднанакіраваны трафік ад кліента да сервера:
    Серверная каманда exampль:
    iperf3 -s -p
    Кліенцкая каманда exampль:
    iperf3 -c -стар
  • Каб запусціць двухнакіраваны трафік ад кліента да сервера (і наадварот):
    Серверная каманда exampль:
    iperf3 –s –p
    Кліенцкая каманда example: iperf3 -c -стар -П –-бідыр
  • Каб запусціць некалькі асобнікаў (патокаў) iperf3, рэкамендуецца выкарыстоўваць цыкл for для адлюстравання патокаў у парты TCP і запускаць iperf3 у фонавым рэжыме з дапамогай & для стварэння некалькіх працэсаў паралельна.
    Серверная каманда example, запусціце 4 патокі: port=””; для i ў {0..3}; do port=520$i; bash -c “iperf3 -s -p $порт &”; зроблена; Кліенцкая каманда example, пачаць 4 патокі – Перадаць тэставы порт=””; для i ў {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; зроблена; Кліенцкая каманда example, пачаць 4 патокі – Атрымаць тэставы порт=””; для i ў {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; зроблена; Для злучэнняў 40G павялічце цыкл for, каб стварыць да 6 асобнікаў/патокаў.

УВАГА
Пры выкананні тэсту прапускной здольнасці сеткі з адным патокам/патокам (напрыклад,ample: P1), працэсары AMD могуць не забяспечваць чаканую прапускную здольнасць, асабліва больш высокую прапускную здольнасць
Сеткавыя карты (калі хуткасць >= прапускная здольнасць 25G). У выніку патрабуецца замацаванне прыкладанняў на пэўных ядрах для дасягнення большай прапускной здольнасці. Глядзіце налады прыкладання на старонцы 22 і AMD EPYC на старонцы 26.
3.1.3 netperf
Інструмент netperf - добры выбар як для прапускной здольнасці, так і для тэсціравання затрымкі.

  • Тэст TCP_STREAM у netperf вымярае прапускную здольнасць прылады. Серверная каманда example: каманда кліента netserver напр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: сеткавы сервер
    Кліенцкая каманда example: netperf -t TCP_RR -l 30 -H -Т х, х
  • Каб запусціць некалькі асобнікаў (патокаў) netperf, рэкамендуецца выкарыстоўваць цыкл for для адлюстравання патокаў у парты TCP і запускаць netperf у фонавым рэжыме з дапамогай & для паралельнага стварэння некалькіх працэсаў.
    Серверная каманда example, пачаць 8 патокаў:
    порт=””; для i ў {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; зроблена;
    Кліенцкая каманда example, запусціць 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, спыніце irqbalance, а затым альбо выкарыстоўвайце скрыпт set_irq_affinity з зыходнага пакета i40e, альбо замацавайце чэргі ўручную. Адключыце балансір IRQ карыстальніцкай прасторы, каб уключыць замацаванне чаргі:

  • systemctl адключыць irqbalance
  • systemctl спыніць irqbalance
    Выкарыстоўваючы скрыпт set_irq_affinity з зыходнага пакета i40e (рэкамендуецца):
  • Каб выкарыстоўваць усе ядра:
    [шлях да пакета i40e]/scripts/set_irq_affinity -X усе ethX
  • Каб выкарыстоўваць толькі ядра ў лакальным сокеце NUMA: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Вы таксама можаце выбраць шэраг ядраў. Пазбягайце выкарыстання cpu0, таму што ён запускае задачы таймера. [шлях да пакета i40e]/scripts/set_irq_affinity 1-2 ethX

УВАГА
Сцэнар прыналежнасці дазваляе кіраваць перадачай пакетаў (XPS) у рамках працэсу замацавання, калі ўказана опцыя -x. Калі XPS уключаны, Intel рэкамендуе адключыць irqbalance, бо балансіроўка ядра з XPS можа выклікаць непрадказальную прадукцыйнасць. Скрыпт блізкасці адключае XPS, калі ўказана опцыя -X. Адключэнне XPS і ўключэнне сіметрычных чэргаў карысна для працоўных нагрузак, дзе найлепшая прадукцыйнасць дасягаецца, калі трафік Tx і Rx абслугоўваецца ў адной і той жа пары чэргаў.
Наладжванне сіметрычных чэргаў у Linux прадугледжвае настройку параметраў драйвера сеткавага інтэрфейсу для ўключэння сіметрычных чэргаў прыёму (Rx) і сіметрычных чэргаў перадачы (Tx) для падтрымоўваных сеткавых адаптараў.
УВАГА

  • Сіметрычныя чэргі - гэта пашыраная сеткавая функцыя, і не ўсе сеткавыя адаптары або драйверы серыі 700 падтрымліваюць іх.
  • Перш чым спрабаваць наладзіць сіметрычныя чэргі, пераканайцеся, што ў вас ёсць неабходны драйвер і апаратная падтрымка.

Каб наладзіць сіметрычныя чэргі, выканайце наступныя агульныя дзеянні:

  1. Рэдагаваць канфігурацыю сеткавага інтэрфейсу File: выкарыстоўваць тэкставы рэдактар ​​(напрыклад,ample, vi, nano або gedit), каб змяніць канфігурацыю сеткавага інтэрфейсу file. The file звычайна знаходзіцца ў каталогу /etc/sysconfig/network-scripts/ і мае назву ifcfg-ethX, дзе ethX — гэта назва вашага сеткавага інтэрфейсу.
  2. Дадайце параметры сіметрычнай чаргі. Дадайце наступныя радкі ў канфігурацыю сеткавага інтэрфейсу file: ETHTOOL_OPTS=”rx-чэргі 8 tx-чэргі 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: рэха 1 > /proc/irq/181/smp_affinity рэха 2 > /proc/irq/182/smp_affinity рэха 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 XNUMX
Сукупна: 96
Бягучыя налады абсталявання:
RX: 0
TX: 0
Іншае: 1 XNUMX
Сукупна: 32
4.3 Перапыненне мадэрацыі
Адаптыўная мадэрацыя перапынення ўключана па змаўчанні і прызначана для забеспячэння збалансаванага падыходу паміж нізкай загрузкай ЦП і высокай прадукцыйнасцю. Тым не менш, вы можаце паспрабаваць наладзіць параметры перапынення ўручную ў адпаведнасці з вашым варыянтам выкарыстання.
Дыяпазон 0-235 мікрасекунд забяспечвае эфектыўны дыяпазон ад 4,310 да 250,000 2 перапыненняў у секунду. Значэнне rx-μsecs-high можа быць устаноўлена незалежна ад rx-μsecs і tx-μsecs у той жа камандзе ethtool, а таксама не залежыць ад адаптыўнага алгарытму мадэрацыі перапынення. Базавае абсталяванне падтрымлівае дэталізацыю з інтэрвалам у XNUMX мікрасекунды, таму сумежныя значэнні могуць прывесці да аднолькавай частаты перапыненняў.

  • Каб адключыць мадэрацыю адаптыўнага перапынення: ethtool -C ethX adaptive-rx выкл адаптыўны-tx выкл
  • Каб уключыць адаптыўную мадэрацыю перапынення: 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 мкс. Гэта выкарыстоўвае больш працэсара, але абслугоўвае буферы хутчэй і патрабуе менш дэскрыптараў (памер кальца, ethtool -G).
  • Каб усталяваць мадэрацыю перапыненняў на фіксаваную частату перапыненняў 62 сэк паміж перапыненнямі (16000 перапыненняў/с). ethtool -C ethX адаптыўны-rx выключаны адаптыўны-tx выключаны rx-usecs 62 tx-usecs 62
    Калі лічыльнікі rx_dropped павялічваюцца падчас трафіку (з дапамогай ethtool -S ethX), верагодна, у вас занадта павольны працэсар, недастаткова буфераў з-за памеру кальца адаптара (ethtool -G) або занадта нізкая частата перапыненняў. Калі вы не маеце максімальнай загрузкі працэсара, вы можаце павялічыць частату перапыненняў, знізіўшы значэнне ITR. Гэта выкарыстоўвае больш працэсара, але службы буферызуюцца хутчэй і патрабуюць менш дэскрыптараў (памер кальца, ethtool -G).
    Калі ваш працэсар загружаны на 100%, павялічваць частату перапыненняў не рэкамендуецца. Пры пэўных абставінах, такіх як нагрузка на працэсар, вы можаце павялічыць значэнне мкс, каб уключыць больш часу працэсара для іншых прыкладанняў.
    Калі вам патрабуецца нізкая прадукцыйнасць з затрымкай і/або ў вас ёсць шмат працэсара для апрацоўкі сеткі, вы можаце цалкам адключыць мадэрацыю перапыненняў, што дазваляе перапыненням спрацоўваць як мага хутчэй.
  • Каб адключыць мадэрацыю перапынення ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

УВАГА
Пры працы з адключанай мадэрацыяй перапыненняў частата перапыненняў у кожнай чарзе можа быць вельмі высокай. Разгледзьце магчымасць уключэння параметра rx-usec-high, каб усталяваць верхнюю мяжу частаты перапыненняў. Наступная каманда адключае адаптыўную мадэрацыю перапынення і дазваляе максімум 5 мікрасекунд, перш чым паказаць, што прыём або перадача завершана. Замест таго, каб прыводзіць да 200,000 50,000 перапыненняў у секунду, ён абмяжоўвае агульную колькасць перапыненняў у секунду да 20 5 з дапамогай параметра rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 5 rx-usecs 80 txusecs 100 Паспрабуйце наладзіць таймер аб'яднання перадачы/прыёму/высокага прыярытэту вышэй (150/200/25/20) або ніжэй (10/5/XNUMX/XNUMX), каб знайсці аптымальнае значэнне для працоўнай нагрузкі.
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

УВАГА
Каб выправіць падзенне пакетаў Rx, выяўленае з дапамогай ethtool -S ethX|grep drop, падумайце аб павелічэнні памеру кальца да 4096. Паэксперыментуйце, каб знайсці найлепшы параметр для рабочай нагрузкі, але сачыце за празмерным выкарыстаннем памяці з больш высокімі значэннямі.
4.5 Кіраванне патокам
Кантроль патоку ўзроўню 2 можа значна паўплываць на прадукцыйнасць TCP, і яго рэкамендуецца адключаць для большасці працоўных нагрузак. Патэнцыйным выключэннем з'яўляецца бурны трафік, дзе парывы ​​​​не працяглыя.
Кіраванне патокам адключана па змаўчанні.

  • Каб уключыць кантроль патоку: ethtool -A ethX rx on tx on
  • Каб адключыць кантроль патоку: ethtool -A ethX rx off tx off

УВАГА
Вы павінны мець партнёра па спасылцы з магчымасцю кіравання патокам, каб паспяхова ўключыць кіраванне патокам.
4.6 Рамкі Jumbo
Калі чаканае асяроддзе трафіку складаецца з вялікіх блокаў даных, якія перадаюцца, можа быць карысным уключыць функцыю гіганцкага кадра. Падтрымка Jumbo Frames уключаецца шляхам змены максімальнай адзінкі перадачы (MTU) на значэнне, большае за значэнне па змаўчанні 1500. Гэта дазваляе прыладзе перадаваць даныя большымі пакетамі ў сеткавым асяроддзі. Гэты параметр можа павысіць прапускную здольнасць і знізіць загрузку працэсара пры вялікіх нагрузках уводу-вываду. Аднак гэта можа паўплываць на працоўныя нагрузкі з невялікімі пакетамі або адчувальныя да затрымкі.
УВАГА
Вялікія кадры або большыя налады MTU павінны быць належным чынам сканфігураваны ў вашым сеткавым асяроддзі.
Выкарыстоўвайце каманду ifconfig, каб павялічыць памер MTU. Напрыкладample, увядзіце наступнае, дзе гэта нумар інтэрфейсу: ifconfig mtu 9000 уверх
Акрамя таго, вы можаце выкарыстоўваць каманду ip наступным чынам: ip link set mtu 9000 dev IP Link Setup Dev

Настройка платформы (i40e неспецыфічны)

5.1 Налады BIOS

  • Уключыце Intel® VT-d для працоўных нагрузак віртуалізацыі.
  • Hyper-threading (лагічныя працэсары) можа паўплываць на прадукцыйнасць. Эксперыментуйце з яго ўключэннем або выключэннем у адпаведнасці з вашай нагрузкай.
  • Intel® Turbo Boost дазваляе ядрам ЦП працаваць на больш высокай частаце, чым базавая частата ЦП. Уключэнне Intel® Turbo Boost можа палепшыць прадукцыйнасць для многіх працоўных нагрузак, але спажывае больш энергіі, каб падтрымліваць ядра на больш высокай частаце. Эксперыментуйце з выключэннем/уключэннем Turbo Boost для вашай працоўнай нагрузкі.

УВАГА
Turbo-частоты не гарантуюцца, калі платформа адчувае высокую агульную загрузку працэсара. Больш высокія турбачастоты ядра зніжаюцца па меры росту агульнай загрузкі працэсара.
5.2 Кіраванне харчаваннем
Кіраванне харчаваннем можа паўплываць на прадукцыйнасць, асабліва пры нагрузках з нізкай затрымкай. Калі прадукцыйнасць з'яўляецца больш важным, чым зніжэнне энергаспажывання, Intel рэкамендуе вам паэксперыментаваць з абмежаваннем эфектаў кіравання сілкаваннем. Ёсць шмат розных спосабаў абмежаваць кіраванне сілкаваннем з дапамогай інструментаў аперацыйнай сістэмы, налад BIOS і параметраў загрузкі ядра. Выберыце найлепшы метад і ўзровень, якія адпавядаюць вашаму асяроддзю.
5.2.1 Кантроль C-State
Абмежаванне ўваходу ў стан C да CO або C1 паляпшае прадукцыйнасць і павялічвае выкарыстанне энергіі.
Адключэнне ўводу стану CPU Package C6 можа палепшыць прадукцыйнасць сеткі. Аднак гэта павялічвае спажыванне энергіі.
Даступныя наступныя варыянты:

  • Дынамічна кантраляваць запіс C-state:
    Адкрыты
    /dev/cpu_dma_latency і запісаць у яго максімальна дапушчальную затрымку.

УВАГА
Існуе невялікая праграма пад назвай cpudmalatency.c, якую можна загрузіць з супольнасці з адкрытым зыходным кодам, скампіляваць і запусціць з каманднага радка, каб зрабіць менавіта гэта.
Наступны выпрample дазваляе пяць мкс часу абуджэння і, такім чынам, дазваляе запіс C1: cpudmalatency 5 &

  • Абмяжуйце максімальны C-стан у наладах загрузкі ядра:
    Для працэсараў Intel: intel_idle.max_cstates=1
    Для працэсараў не-Intel: processor.max_cstates=1
  • Выкарыстоўвайце каманду cpupower, каб праверыць і адключыць стан CPU C6: Праверце: cpupower monitor або cpupower idle-info
    Адключыць C6: cpupower idle-set -d3 або
    Адключыць C-States: cpupower idle-set -D0

Заўвагі:

  1. Адключыце C-станы на працэсары, калі на серверы ўстаноўлены маштабуемы працэсар(ы) Intel® 4-га пакалення Intel® Xeon®. Калі Hyper Threading уключаны або адключаны, адключэнне неактыўных станаў (-D0) прадухіляе пераход ядраў у стан нізкага энергаспажывання падчас перыядаў бяздзейнасці і памяншае затрымку працэсара пры пераходзе паміж бяздзейным і актыўным станамі.
  2. Кіраванне сілкаваннем працэсара Intel® Xeon® Scalable Intel® 4-га пакалення надзвычай агрэсіўнае. Каб пазбегнуць пераходу ядраў у стан з нізкім энергаспажываннем, паспрабуйце паменшыць колькасць выкарыстоўваных ядраў, каб яны даўжэй не спалі (ethtool -L камбінаваны ). Акрамя таго, прывяжыце перапыненні да пэўных ядраў з дапамогай усталяванай блізкасці да irq (часцей за ўсё з дапамогай -x local або спісу ядраў працэсара) і пераканайцеся, што рабочая нагрузка выконваецца на тых жа ядрах з дапамогай taskset або numactl. Гэта павышае прадукцыйнасць, падтрымліваючы ядра актыўнымі і аптымізуючы апрацоўку перапыненняў.

Уключыць C6:
cpupower idle-set -d3
Уключыць C-станы:
cpupower idle-set -E

  • Іншы метад заключаецца ў выкарыстанні наладжанага інструмента (уваходзіць у многія дыстрыбутывы Linux), каб усталяваць прафесійную прадукцыйнасцьfile. Гэтыя праfiles змяніць некалькі параметраў АС, якія могуць паўплываць на прадукцыйнасць многіх прыкладанняў. Было ўстаноўлена, што прапускная здольнасць сеткі праfile забяспечвае паляпшэнне большасці працоўных нагрузак.
    Праверыць:
    настроены-адм актыўны
    Набор:
    tuned-adm profile прапускная здольнасць сеткі
    УВАГА
    Наладжаная служба павінна працаваць для вышэйзгаданых каманд. Каб праверыць/перазапусціць, tuned: systemctl status tuned systemctl restart tuned
    Вы таксама можаце забараніць любы запіс C-state, дадаўшы ў радок загрузкі ядра наступнае:
    прастой=апытанне
  • Абмяжуйце C-стан з дапамогай налад кіравання сілкаваннем BIOS сістэмы, што можа мець высокую прадукцыйнасцьfile даступны.
    Такія інструменты, як turbostat або x86_energy_perf_policy, можна выкарыстоўваць для праверкі або ўстаноўкі параметраў кіравання сілкаваннем.

5.2.2 Кіраванне харчаваннем PCIe
Кіраванне сілкаваннем у актыўным стане (ASPM) забяспечвае меншы стан сілкавання для злучэнняў PCIe, калі яны не выкарыстоўваюцца актыўна. Гэта можа выклікаць вялікую затрымку на сеткавых прыладах PCIe, таму Intel рэкамендуе адключыць ASPM для працоўных нагрузак, адчувальных да затрымкі. Адключыце ASPM, дадаўшы ў радок загрузкі ядра наступнае: pcie_aspm=off
5.2.3 Маштабаванне частаты ЦП
Маштабаванне частоты працэсара (або маштабаванне хуткасці працэсара) - гэта метад кіравання сілкаваннем Linux, пры якім тактавая частата сістэмы рэгулюецца на хаду для эканоміі энергіі і цяпла. Як і C-станы, гэта можа выклікаць непажаданую затрымку сеткавых злучэнняў.
Інструмент cpupower таксама можна выкарыстоўваць для праверкі і змены значэнняў і абмежаванняў прадукцыйнасці ЦП па змаўчанні:

  • Праверце: cpupower monitor або
  • Усталюйце працэсары ў рэжым прадукцыйнасці: cpupower frequency-set -g performance

УВАГА
Змены абмежаванняў частоты працэсара могуць паўплываць на многія працоўныя нагрузкі і могуць адключыць іншыя функцыі, напрыклад турба-рэжым працэсара.
Каб адключыць маштабаванне частоты працэсара, адключыце службу харчавання працэсара наступнымі камандамі:
systemctl спыніць cpupower.service
systemctl адключыць cpupower.service
5.2.4 Дадатковыя рэкамендацыі па кіраванні сілкаваннем
Дадатковыя звесткі прадстаўлены ў гэтым высокім узроўніview многіх функцый кіравання харчаваннем у працэсарах Intel® Xeon® Scalable 3-га пакалення, а таксама рэкамендацыі аб тым, як гэтыя функцыі можна інтэграваць на ўзроўні платформы: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost робіць працэсар больш хуткім, калі гэта неабходна, але можа спажываць дадатковую энергію. Адключэнне Turbo Boost падтрымлівае стабільную хуткасць працэсара, даючы стабільны ўзровень прадукцыйнасці для пэўных нагрузак.
5.4 Брандмаўэры
Брандмаўэры могуць паўплываць на прадукцыйнасць, асабліва на прадукцыйнасць затрымкі.
Адключыце iptables/firewalld, калі не патрабуецца.
5.5 Налады прыкладання
Часта аднаго патоку (які адпавядае адной сеткавай чарзе) недастаткова для дасягнення максімальнай прапускной здольнасці. Некаторыя платформенныя архітэктуры, такія як AMD, маюць тэндэнцыю адкідваць больш пакетаў Rx з адным патокам у параўнанні з платформамі з працэсарамі Intel.
Разгледзьце магчымасць выкарыстання такіх інструментаў, як taskset або numactl, каб замацаваць прыкладанні на вузле NUMA або на ядрах ЦП лакальна для сеткавай прылады. Для некаторых працоўных нагрузак, такіх як увод-вывад сховішча, перамяшчэнне прыкладання на нелакальны вузел дае карысць.
Калі магчыма, паэксперыментуйце з павелічэннем колькасці патокаў, якія выкарыстоўваюцца вашым дадаткам.
Версія ядра 5.6
Большасць сучасных убудаваных ядраў дастаткова добра аптымізаваныя для прадукцыйнасці, але, у залежнасці ад вашага выпадку выкарыстання, абнаўленне ядра можа забяспечыць павышэнне прадукцыйнасці. Спампоўка зыходнага кода таксама дазваляе ўключаць/выключаць некаторыя функцыі перад стварэннем ядра.
5.7 Налады аперацыйнай сістэмы/ядра
Пракансультуйцеся з кіраўніцтвамі па настройцы аперацыйнай сістэмы, такімі як Кіраўніцтва па наладзе прадукцыйнасці сеткі Red Hat Enterprise Linux, каб атрымаць больш інфармацыі аб агульнай наладзе аперацыйнай сістэмы.
Некаторыя агульныя параметры для наладкі пералічаны ў наступнай табліцы. Звярніце ўвагу, што гэта толькі прапанаваныя адпраўныя пункты, і змяненне іх значэнняў па змаўчанні можа павялічыць рэсурсы, якія выкарыстоўваюцца ў сістэме. Хаця павелічэнне значэнняў можа дапамагчы палепшыць прадукцыйнасць, неабходна паэксперыментаваць з рознымі значэннямі, каб вызначыць, што лепш за ўсё працуе для дадзенай сістэмы, працоўнай нагрузкі і тыпу трафіку.
Параметры ядра можна канфігураваць з дапамогай утыліты sysctl у Linux, як паказана ніжэй.
каб 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
Памеры буфера сокета, таксама вядомыя як буфер прыёму (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. Гэта змяняе некалькі налад АС, каб даць перавагу сеткавым праграмам.
Праверыць:
настроены-адм актыўны
Набор:
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 Маштабаваныя працэсары Intel® Xeon® 4-га пакалення

Кіраванне харчаваннем працэсара Intel® Xeon® Scalable 4-га пакалення надзвычай агрэсіўнае ў параўнанні з працэсарамі Intel® Xeon® Scalable 3-га пакалення. Каб ядра не пераходзілі ў стан з нізкім энергаспажываннем, паспрабуйце паменшыць колькасць выкарыстоўваных ядраў, каб яны даўжэй не спялі.
Рэкамендуемыя налады BIOS для найвышэйшай прадукцыйнасці

  1. Уключэнне/выключэнне Hyper-Threading (у залежнасці ад патрабаванняў да працоўнай нагрузкі і мэтавых паказчыкаў прадукцыйнасці) на працэсары.
  2. Усталюйце сістэму profile да Прадукцыйнасці для максімальнай прадукцыйнасці.
    УВАГА
    Гэта прыводзіць да большага спажывання энергіі
  3. Усталюйце для кіравання сілкаваннем ЦП значэнне "Максімальная прадукцыйнасць", каб максімальная прадукцыйнасць ЦП была прыярытэтнай перад энергаэфектыўнасцю.
  4. Уключыць Turbo Boost. Адключэнне Turbo Boost у наладах сістэмы BIOS звычайна перашкаджае працэсару дынамічна павялічваць сваю тактавую частату за межамі базавай частаты.
  5. УВАГА
    Адключэнне Turbo Boost можа быць прыдатным для пэўных выпадкаў выкарыстання, калі стабільная прадукцыйнасць, энергаэфектыўнасць або кіраванне тэмпературай маюць прыярытэт перад максімальнай прадукцыйнасцю.
  6. Адключыце функцыю аднакаранёвай віртуалізацыі ўводу-вываду (SR-IOV), калі сістэма не выкарыстоўвае тэхналогіі віртуалізацыі.
  7. Адключыце C-станы, каб загадаць працэсару заставацца актыўным і прадухіліць уваход у больш глыбокія станы прастою.
  8. Адключыце C1E, каб пераканацца, што працэсар застаецца актыўным і не пераходзіць у стан чакання C1E.
  9. Усталюйце частату uncore на максімум, каб інструктаваць сістэму працаваць на самай высокай даступнай частаце.
  10. На платформах Dell усталюйце эмуляцыю ядра для некалькіх APIC Description Table (MADT) на Лінейную (або Round-Robin у залежнасці ад BIOS), каб забяспечыць дакладнае і прадказальнае адлюстраванне ядраў ЦП.

Рэкамендуемыя налады ўзроўню АС для аптымізацыі прадукцыйнасці

  1. Усталюйце рэгулятар маштабавання частоты ЦП на прадукцыйнасць. cpupower частотны набор -g прадукцыйнасць cpupower частотная інфармацыя
  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 адаптыўны прыём выключаны адаптыўны перадачы выключаны rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    Паспрабуйце наладзіць таймер аб'яднання перадачы/прыёму/высокага прыярытэту вышэй (80/100/150/200) або ніжэй (25/20/10/5), каб знайсці аптымальнае значэнне для працоўнай нагрузкі.
  3. Усталюйце памеры кольцаў Rx/Tx. ethtool -G rx 4096 tx 4096
    УВАГА
    Калі вы бачыце, што пакет Rx адрываецца з дапамогай ethtool -S| grep drop, паспрабуйце паменшыць памер кольца да <4096. Паспрабуйце знайсці аптымальнае значэнне для працоўнай нагрузкі, пры якой пакеты не адкідваюцца.
  4. Усталюйце адпаведнасць IRQ. Выкарыстоўвайце ядра, лакальныя для NIC, або спецыяльнае адлюстраванне ядраў (дзе # ядраў роўна колькасці чэргаў, устаноўленых у 1 на старонцы 26. systemctl stop irqbalance set_irq_affinity -X local АБО set_irq_affinity -X

5.9.2 AMD EPYC
Працэсары AMD EPYC - гэта магутныя працэсары, створаныя для сервераў і цэнтраў апрацоўкі дадзеных, пабудаваныя на архітэктуры AMD Zen. Прыведзеныя ніжэй налады з серыі EPYC 4-га пакалення AMD.
Рэкамендуемыя налады BIOS для найвышэйшай прадукцыйнасці

  1. Уключыце карыстальніцкі рэжым, каб дазволіць карыстальнікам рэгуляваць прадукцыйнасць працэсара, энергаспажыванне і іншыя параметры. Гэта дапамагае ў тонкай наладзе сістэмы для найлепшага балансу паміж прадукцыйнасцю і энергаэфектыўнасцю.
  2. Уключыце павышэнне прадукцыйнасці ядра, каб працэсар аўтаматычна павялічваў сваю хуткасць для выканання больш інтэнсіўных задач, паляпшаючы агульную прадукцыйнасць.
  3. Адключыце глабальны кантроль C-state, каб прадухіліць пераход працэсара ў больш глыбокія станы энергазберажэння, вядомыя як C-state, якія могуць падтрымліваць спагадлівасць.
    УВАГА
    Адключэнне C-станаў можа выклікаць дадатковае спажыванне энергіі і павышэнне цеплавой тэмпературы. Сачыце за нагрузкай абодвух.
  4. Уключэнне/выключэнне адначасовай шматструменнасці (SMT) на працэсары ў залежнасці ад патрабаванняў да працоўнай нагрузкі і мэтавых паказчыкаў прадукцыйнасці. SMT эквівалентна Hyper Threading на працэсарах Intel.
    УВАГА
    Каб атрымаць аптымізаваную прадукцыйнасць, звярніцеся да наладкі драйвера i40e на старонцы 13 і налады платформы (i40e Non-Specific) на старонцы 19 для рэкамендаванай налады ўзроўню АС і адаптара.

Склейванне адаптара

Linux bonding - гэта магутная функцыя, якая можа значна палепшыць прадукцыйнасць сеткі, рэзерваванне і адмоваўстойлівасць у серверных асяроддзях. Аднак важна адзначыць, што для належнай працы патрабуецца сумяшчальнае сеткавае абсталяванне і належная канфігурацыя як на серверы, так і на камутатары.
Драйвер злучэння ў Linux дазваляе аб'ядноўваць некалькі фізічных сеткавых інтэрфейсаў у злучаны інтэрфейс. Гэты звязаны інтэрфейс выглядае як адзіны інтэрфейс віртуальнай сеткі для аперацыйнай сістэмы і прыкладанняў.
УВАГА
Сувязь з'яўляецца лагічным інтэрфейсам, таму немагчыма ўсталяваць блізкасць працэсара непасрэдна на інтэрфейсе сувязі (напрыклад,ample, сувязь0). Гэта значыць, ён не мае прамога кантролю над апрацоўкай перапыненняў або блізкасцю працэсара. Прыналежнасць працэсара павінна быць настроена для асноўных інтэрфейсаў, якія з'яўляюцца часткай сувязі.
Бондінг прадугледжвае некалькі рэжымаў працы, кожны з якіх мае свае асаблівасці.

Рэжым  Тып
0 Кругавая сістэма
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. Адкрыйце канфігурацыю сеткавай карты Files у /etc/sysconfig/network-scripts/ для патрэбнага інтэрфейсу NIC (напрыклад,ample, vi ifcfg-ethX і vi ifcfg-ethY) і дадайце наступны тэкст:
    MASTER=bondN [Заўвага: N з'яўляецца цэлым лікам для ўказання нумара сувязі.] SLAVE=yes
  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=”рэжым=1 miimon=100″
    УВАГА
    Рэжым можа быць любым цэлым лікам ад 0 да 6 у залежнасці ад патрабаванняў.
  4. Перазапусціце сеткавыя службы з дапамогай службы перазапуску сеткі або перазапуску Systemctl NetworkManager.service

Ліквідацыя праблем з прадукцыйнасцю

7.1 Выкарыстанне працэсара
Праверце загрузку ЦП на ядро ​​падчас выканання працоўнай нагрузкі.
Звярніце ўвагу, што выкарыстанне на ядро ​​больш важна для прадукцыйнасці, чым агульнае выкарыстанне ЦП, паколькі яно дае ўяўленне аб выкарыстанні ЦП на сеткавую чаргу. Калі ў вас ёсць толькі некалькі патокаў, якія працуюць па сеткавым трафіку, то вы можаце выкарыстоўваць толькі некалькі ядраў. Аднак, калі гэтыя ядра складаюць 100%, то прапускная здольнасць вашай сеткі, хутчэй за ўсё, абмежавана загрузкай ЦП, і прыйшоў час выканаць наступнае:

  1. Наладзьце мадэрацыю IRQ/памер званка, як паказана ў раздзеле Мадэрацыя перапынення.
  2. Павялічце колькасць патокаў прыкладанняў, каб размеркаваць нагрузку на ЦП на большую колькасць ядраў. Калі ўсе ядра працуюць на 100%, ваша прыкладанне можа быць прывязана да працэсара, а не да сеткі.

Агульнадаступныя інструменты:

  • верх
    — Націсніце 1, каб разгарнуць спіс працэсараў і праверыць, якія з іх выкарыстоўваюцца.
    — Звярніце ўвагу на ўзровень выкарыстання.
    — Звярніце ўвагу, якія працэсы пазначаны як найбольш актыўныя (уверсе спісу).
  • mpstat
    Наступны выпрampкамандны радок быў пратэставаны на Red Hat Enterprise Linux 7.x.
    Ён адлюстроўвае загрузку ЦП на ядро ​​(шляхам вызначэння агульнага працэнта бяздзейнасці і аднімання ад 100) і вылучае значэнні вышэй за 80% чырвоным. mpstat -P УСЕ 1 1 | grep -v Сярэдні | хвост -n +5 | галава -n -1 | awk '{ print (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, каб атрымаць больш інфармацыі аб агульнай наладзе аперацыйнай сістэмы.
7.4 Сістэмныя журналы
Праверце сістэмныя журналы на наяўнасць памылак і папярэджанняў (/var/log/messages, dmesg).
Інструмент Intel svr-info 7.5
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-інфармацыя
    ./svr-інфармацыя
    > імя хаста.txt
  2. Збярыце вынік:
    ./svr-інфармацыя > імя хаста.txt
  3. Далучыць адзін тэкст (.txt) file для кожнага сервера ў службу падтрымкі Intel для аналізу.

Рэкамендацыі па агульных сцэнарыях прадукцыйнасці

8.1 IP-пераадрасацыя

  • Абнавіць ядро.
    Некаторыя нядаўнія ядра ў дыстрыбутывах пагоршылі прадукцыйнасць маршрутызацыі з-за змяненняў ядра ў кодзе маршрутызацыі, пачынаючы з выдалення кэша маршрутызацыі з-за бяспекі. Нядаўнія ядра, якія не ўваходзяць у дыстрыбутыў, павінны мець патчы, якія змякчаюць уплыў гэтых змяненняў на прадукцыйнасць і могуць забяспечыць палепшаную прадукцыйнасць.
  • Адключыць гіперпаток (лагічныя ядра).
  • Адрэдагуйце параметры загрузкі ядра.
    — Прымусовае выключэнне iommu (intel_iommu=off або iommu=off) з радка загрузкі ядра, калі гэта не патрабуецца для віртуалізацыі
    — Адключыць кіраванне харчаваннем: processor.max_cstates=1 idle=апытанне pcie_aspm=выкл.
  • Абмяжуйце колькасць чэргаў роўнай колькасці ядраў у лакальным сокеце (12 у гэтым выпадкуample). 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 off, дзе ethX - гэта інтэрфейс Ethernet, які трэба змяніць.
  • Адключыць адаптыўную мадэрацыю перапынення і ўсталяваць статычнае значэнне. ethtool -C ethX adaptive-rx выкл. adaptive-tx выкл. ethtool -C ethX rx-usecs 64 tx-usecs 64

УВАГА
У залежнасці ад тыпу працэсара і працоўнай нагрузкі параметры аб'яднання для RX і TX можна наладзіць для паляпшэння прадукцыйнасці (або меншай страты кадраў).

  • Адключыць брандмаўэр. sudo systemctl адключыць брандмаўэр sudo systemctl спыніць брандмаўэр
  • Уключыць 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 disable irqbalance
  • Запусціце скрыпт блізкасці для распаўсюджвання па ядрах. Паспрабуйце або лакальна, або ўсе.
  • Выключыце мадэрацыю перапынкаў. ethtool -C ethX rx-usecs 0 tx-usecs 0 адаптыўны-rx выключаны адаптыўны-tx выключаны rxusecs- высокі 0
  • Лімітавая колькасць чэргаў павінна быць роўная колькасці ядраў у лакальным сокеце (32 у гэтым прыкладзеample). 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. набор задач -c

Intel ® Ethernet 700 серыі
Кіраўніцтва па наладзе прадукцыйнасці Linux
снежань 2024 г
дак. Нумар: 334019, Рэв.: 1.2

Дакументы / Рэсурсы

Настройка прадукцыйнасці Linux Intel Ethernet 700 Series [pdfКіраўніцтва карыстальніка
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *