Логото на ИнтелСерија Intel ® Ethernet 700
Водич за подесување на перформансите на Linux
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.
· Ажурирано скалирање на фреквенцијата на процесорот.
· Ажурирани поставки за апликација.
· Ажурирани поставки за оперативен систем/кернел.
· Ажурирано IP препраќање.
· Ажурирана ниска латентност.
август 2023 година Промените на овој документ вклучуваат:
· Додадени поврзани референци.
· Додадено Осигурете се дека пакетот DDP се вчитува правилно.
· Додадено iPerf2.
· Додадено iPerf3.
· Додаден netperf.
· Ажуриран IRQ афинитет.
· Додадени Tx/Rx редици.
· Ажурирана големина на прстенот.
· Додадени Џамбо рамки.
· Додадено поврзување со адаптер.
· Додадена е алатката Intel svr-info.
1.0 март 2016 година Почетно издание (Intel Public).

Вовед

Овој водич е наменет да обезбеди насоки за подесување околини за оптимални мрежни перформанси користејќи NIC од серијата 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 Gbps, 25 Gbps и 40 Gbps, има некои минимални барања за процесорот и системот. Општо земено, модерен процесор од класа на сервер и оптимална конфигурација на меморија за вашата платформа треба да бидат доволни, но потребите варираат во зависност од обемот на работа. Сите мемориски канали треба да бидат пополнети и режимот за изведба на меморијата треба да биде овозможен во BIOS-от. Потврдете дека вашиот процесор и конфигурацијата на меморијата се способни да го поддржат нивото на мрежни перформанси што ви се потребни за обемот на работа.
ЗАБЕЛЕШКА
XL710 е контролер од 40 GbE. Адаптерот од 2 x 40 GbE што го користи овој контролер не е наменет да биде 2 x 40 GbE, туку 1 x 40 GbE со активна резервна порта. Кога се обидувате да користите сообраќај со линиска стапка што ги вклучува двете порти, внатрешниот прекинувач е заситен и комбинираниот пропусен опсег помеѓу двете порти е ограничен на вкупно SO Gbps.
2.4.1 Параметри за подигање на кернелот
Ако технологијата за виртуелизација на Intel® за насочен влез/излез (Intel® VT-d) е овозможена во BIOS-от, Intel препорачува IOMMU да биде во режим на пренесување за оптимални перформанси на мрежата на домаќинот. Ова ги елиминира трошоците за DMA на сообраќајот на домаќинот, додека им овозможува на Виртуелните машини (ВМ) да ги имаат придобивките од Intel® VT-d. Ова се постигнува со додавање на следната линија на параметрите за подигање на јадрото: fommu-pt.
2.5 Осигурете се дека пакетот DDP се вчитува правилно
Основните драјвери 140ea и 140eb немаат директна поддршка за динамичка персонализација на уреди (DDP). За да користите DDP со уреди од серијата 700, професионален DDPfile може да се примени со апликацијата testpmd.
За детали за DDP profiles, и како да се примени DDP profile со testpmd на уреди од серијата 700, погледнете го Технолошкиот водич за динамична персонализација на уреди (DDP) на Intel® Ethernet 700.
За да се потврди дали DDP проfile беше успешно вчитана:
testpmd> ddp добијте листа 0 Profile бројот е: 1
ЗАБЕЛЕШКА
Доколку проfile бројот е 0, не е вчитан пакет DDP. Во случај на грешка во вчитувањето на пакетот DDP, уредот стандардно се става во безбеден режим и многу функции за изведба се недостапни. Ако има грешки поврзани со вчитување на пакетот DDP, тоа ќе предизвика проблеми со перформансите. За чекори за решавање проблеми, погледнете го Технолошкиот водич за динамичка персонализација на уреди (DDP) на Inte/* Ethernet 700 Series.

Основни мерења на перформансите и методологија на подесување

3.1 Репери за изведба на мрежата
Пред да започнете вежба за подесување, важно е да имате добро основно мерење на перформансите на вашата мрежа. Обично, покрај добивањето првично мерење на перформансите на вашата специфична апликација/оптоварување, добра идеја е да користите и стандарден репер за мрежни перформанси за да потврдите дека вашиот мрежен уред е во добра состојба.
За единечна оптимизација на системот, netperf или iperf и NetPIPE се солидни алатки без отворен код кои ви овозможуваат да нагласите врска и да дијагностицирате проблеми со перформансите.
Netperf е силен и за тестирање на пропусната моќ и за латентност. NetPIPE е алатка специфична за латентност, но може да се компајлира за секаков вид на околина.
ЗАБЕЛЕШКА
Тестот TCP_RR во netperf враќа латентност во вредност од трансакции/сек. Ова е број за повратен пат. Еднонасочната латентност може да се пресмета со помош на следнава равенка:
Латентност(usec) = (1⁄2) / [Трансакции/сек] * 1,000,000
3.1.1 iPerf2
Интел препорачува iperf2 над iperf3 за повеќето ситуации со бенчмаркинг поради леснотијата на користење и поддршката на повеќе нишки во една апликација. Интел препорачува да работи со опцијата -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 може да се користи и кога командата на серверот е вградена во за-јамка во скрипта.
ЗАБЕЛЕШКА
При извршување на тестот за пропусната моќ на мрежата со еден тек/нишка (прample: P1), AMD процесорите може да не обезбедат очекувана пропусност, особено NIC со поголем пропусен опсег (ако брзината е >= ​​25G пропусен опсег). Како резултат на тоа, потребно е прикачување на апликацијата на одредени јадра за да се постигне поголема пропусност. Видете Поставки за апликација на страница 22.
3.1.2 iPerf3
Ако се користи iperf3, потребни се повеќе примероци од апликацијата за да се адванtagд од мулти-нишките, RSS и хардверските редици. Интел препорачува да работи со 2-4 сесии на апликации за 25G конекции и околу 4-6 сесии за 40G конекции. Секоја сесија треба да наведе единствена вредност на TCP портата користејќи ја опцијата -p.

  • За извршување на еднонасочен сообраќај од клиент до сервер:
    Серверска команда прampле:
    iperf3 -s -p
    Команда на клиентот прampле:
    iperf3 -c -стр
  • За да извршите двонасочен сообраќај од клиент до сервер (и обратно):
    Серверска команда прampле:
    iperf3 –s –p
    Команда на клиентот прample: iperf3 -c -стр -П –-бидир
  • За да започнете повеќе примероци (нишки) на iperf3, препораката е да се користи за-јамка за мапирање на нишки на TCP порти и да се стартува iperf3 во позадина користејќи & за да се креираат повеќе процеси паралелно.
    Серверска команда прample, започнете 4 нишки: port=””; за јас во {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; направено; Команда на клиентот прample, стартувајте 4 нишки – Тест порта за пренос=””; за јас во {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; направено; Команда на клиентот прample, стартувајте 4 нишки – Прими тест порта=””; за јас во {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; направено; За 40G конекции, зголемете ја за-јамката за да создадете до 6 примероци/нишки.

ЗАБЕЛЕШКА
При извршување на тестот за пропусната моќ на мрежата со еден тек/нишка (прample: P1), AMD процесорите може да не обезбедат очекувана пропусност, особено поголем пропусен опсег
NIC (ако брзината е >= ​​25G пропусен опсег). Како резултат на тоа, потребно е прикачување на апликацијата на одредени јадра за да се постигне поголема пропусност. Видете Поставки за апликација на страница 22 и AMD EPYC на страница 26.
3.1.3 netperf
Алатката netperf е силен избор и за тестирање на пропусната моќ и за латентност.

  • Тестот TCP_STREAM во netperf ги мери пропусните можности на уредот. Серверска команда прample: netserver Клиент команда прample: netperf -t TCP_STREAM -l 30 -H
  • Тестот TCP_RR во netperf враќа латентност во вредност од трансакции/секунда. Ова е број за повратен пат. Се препорачува да се користи опцијата -T x,x, доколку x е локален процесор на уредот. Еднонасочната латентност може да се пресмета со помош на: Латентност(usec)=(1⁄2)/ [Трансакции/сек]*1,000,\ Сервер команда пр.ample: нетсервер
    Команда на клиентот прample: netperf -t TCP_RR -l 30 -H -Т х,х
  • За да започнете повеќе примероци (нишки) на netperf, препораката е да се користи за-јамка за да се мапираат нишките на TCP портите и да се стартува netperf во позадина користејќи & за да се креираат повеќе процеси паралелно.
    Серверска команда прampле, започнете 8 нишки:
    порта=””; за јас во {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; направено;
    Команда на клиентот прample, започнете 8 нишки: port=””; за јас во {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 (препорачано):
  • За да ги користите сите јадра:
    [path-to-i40epackage]/scripts/set_irq_affinity -X all ethX
  • За да користите само јадра на локалниот приклучок NUMA: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Можете исто така да изберете опсег на јадра. Избегнувајте користење на Cpu0 бидејќи работи со задачи со тајмер. [path-to-i40epackage]/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. На 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: 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 Редици
Стандардниот број на редици овозможен за секоја етернет порта од драјверот при иницијализацијата е еднаков на вкупниот број на процесори достапни на платформата. Ова функционира добро за многу платформи и конфигурации на обемот на работа. Меѓутоа, во платформи со висок број на јадра и/или висока густина на етернет портата, оваа конфигурација може да предизвика расправии за ресурсите. Затоа, може да биде неопходно во некои случаи да се измени стандардниот стандард за секоја порта во системот.
Стандардниот број на редици Tx/Rx може да варира во зависност од конкретниот модел и верзијата на двигателот. Бројот на редици може да се прилагоди со помош на командата ethtool -L наведена подолу.
ЗАБЕЛЕШКА
Во овие случаи, Интел препорачува да го намалите стандардниот број на редици за секоја порта на не повеќе од бројот на процесори достапни во јазолот 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 Управување со прекини
Умереноста на адаптивниот прекин е стандардно вклучена и е дизајнирана да обезбеди избалансиран пристап помеѓу ниската употреба на процесорот и високите перформанси. Сепак, може да се обидете рачно да ги подесите поставките за прекини за да одговараат на вашиот случај.
Опсегот од 0-235 микросекунди обезбедува ефективен опсег од 4,310 до 250,000 прекини во секунда. Вредноста на rx-μsecs-high може да се постави независно од rx-μsecs и tx-μsecs во истата команда на ethtool, а исто така е независна од адаптивниот алгоритам за умереност на прекини. Основниот хардвер поддржува грануларност во интервали од 2 микросекунди, така што соседните вредности може да резултираат со иста брзина на прекин.

  • За да го исклучите модерирањето на адаптивниот прекин: ethtool -C ethX adaptive-rx исклучено приспособливо-tx исклучено
  • За да вклучите умереност на адаптивни прекини: ethtool -C ethX adaptive-rx на adaptive-tx вклучено

Добро место за почеток за општо подесување е 84 μs, или ~12000 прекини/с. Ако видите rx_dropped бројачи работат за време на сообраќајот (со користење на ethtool -S ethX), тогаш веројатно имате премногу бавен процесор, нема доволно бафери од големината на прстенот на адаптерот (ethtool -G) за да ги задржите пакетите за 84 μs или до ниска стапка на прекин.

  • За да го поставите умереноста на прекинот на фиксна стапка на прекин од 84 μs помеѓу прекините (12000 прекини/с): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Следната вредност што треба да се обидете, ако не сте максимално искористени 62 μs на процесорот, е. Ова користи повеќе процесор, но ги сервисира баферите побрзо и бара помалку дескриптори (големина на прстенот, 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%, тогаш не се препорачува зголемување на стапката на прекини. Во одредени околности, како што е обемот на работа врзан за процесорот, можеби ќе сакате да ја зголемите вредноста μs за да овозможите повеќе време на процесорот за други апликации.
    Ако ви требаат перформанси со мала латентност и/или имате многу процесор за да се посветите на мрежната обработка, можете целосно да го оневозможите модерирањето на прекините, што овозможува прекините да се активираат што е можно побрзо.
  • За да се оневозможи ethtool за модерирање на прекини -C ethX adaptive-rx исклучено адаптивно-tx исклучено 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) за да ја пронајдете оптималната вредност за работа (10/5).
4.4 Големина на прстенот
Ако гледате бројачи rx_dropped во ethtool -S ethX (rx_dropped, rx_dropped.nic) или се сомневате во притисокот на кешот со активни повеќе редици, може да се обидете да ја прилагодите големината на прстенот од стандардната вредност. Стандардната вредност е 512, максималната е 4096.

  • За проверка на тековните вредности: ethtool -g ethX
    Ако се сомневате дека недостатокот на бафер предизвикува пад на тековната стапка на прекин, прво може да го испробате максимумот, потоа минималниот, а потоа продолжите со бинарно пребарување додека не видите оптимални перформанси.
    Ако постои сомневање за притисок на кешот (многу редици активни), намалувањето на баферите од стандардните може да му помогне на Intel ® Data Direct I/O (Intel ® DDIO) да работи подобро ефикасно. Интел препорачува да пробате 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 на tx вклучен
  • За да ја исклучите контролата на проток: ethtool -A ethX rx исклучено tx исклучено

ЗАБЕЛЕШКА
Мора да имате партнер за поврзување способен за контрола на проток за успешно да ја овозможите контролата на протокот.
4.6 Џамбо рамки
Кога очекуваното сообраќајно опкружување се состои од пренос на големи блокови на податоци, може да биде корисно да се овозможи функцијата џамбо рамка. Поддршката за Jumbo Frames е овозможена со менување на Maximum Transmission Unit (MTU) на вредност поголема од стандардната вредност од 1500. Ова му овозможува на уредот да пренесува податоци во поголеми пакети во мрежната средина. Оваа поставка може да ја подобри пропусната моќ и да ја намали искористеноста на процесорот за големи оптоварувања на В/И. Сепак, тоа може да влијае на обемот на работа чувствителен на мали пакети или латентност.
ЗАБЕЛЕШКА
Џамбо рамки или поголеми поставки за MTU мора да бидат правилно конфигурирани низ вашата мрежна околина.
Користете ја командата ifconfig за да ја зголемите големината на MTU. За прampле, внесете го следново, каде е бројот на интерфејсот: ifconfig mtu 9000 нагоре
Алтернативно, можете да ја користите командата ip на следниов начин: ip link set mtu 9000 dev ip-врска постави dev

Подесување на платформата (i40e неспецифично)

5.1 Поставки на BIOS-от

  • Овозможете Intel® VT-d за оптоварување на виртуелизација.
  • Хипер-нишките (логички процесори) може да влијаат на перформансите. Експериментирајте со него вклучено или исклучено за вашиот обем на работа.
  • Intel® Turbo Boost овозможува јадрата на процесорот да работат со поголема фреквенција од основната фреквенција на процесорот. Овозможувањето на Intel® Turbo Boost може да ги подобри перформансите за многу оптоварувања, но троши повеќе енергија за да ги задржи јадрата на поголема фреквенција. Експериментирајте со исклучено/вклучено Turbo Boost за вашиот обем на работа.

ЗАБЕЛЕШКА
Турбо фреквенциите не се загарантирани ако платформата има висока севкупна искористеност на процесорот. Повисоките основни турбо фреквенции се намалуваат како што се зголемува целокупната искористеност на процесорот.
5.2 Управување со енергија
Управувањето со енергијата може да влијае на перформансите, особено при ниски работни оптоварувања. Ако перформансите се поприоритетни од намалувањето на потрошувачката на енергија, Интел препорачува да експериментирате со ограничување на ефектите од управувањето со енергијата. Постојат многу различни начини за ограничување на управувањето со енергијата, преку алатки на оперативниот систем, поставките на BIOS-от и параметрите за подигање на јадрото. Изберете го најдобриот метод и ниво за да одговараат на вашата околина.
5.2.1 Контрола на C-држава
Ограничувањето на влезот на C-состојбата на CO или C1 ги подобрува перформансите и го зголемува искористувањето на енергијата.
Оневозможувањето на внесување состојба на пакетот CPU C6 може да ги подобри перформансите на мрежата. Сепак, ова ја зголемува потрошувачката на енергија.
Достапни се следните опции:

  • Динамично контролирајте го внесувањето на C-состојбата:
    Отвори
    /dev/cpu_dma_latency и напишете ја максималната дозволена латентност.

ЗАБЕЛЕШКА
Постои мала програма наречена cpudmalatency.c која може да се преземе од заедницата со отворен код, да се компајлира и да се изврши од командната линија за да се направи токму тоа.
Следниве прample овозможува пет μs време на будење и на тој начин овозможува влез во 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 или
    Оневозможи C-States: cpupower idle-set -D0

Забелешки:

  1. Оневозможете C-состојби на процесорот ако серверот има Intel® 4th Gen Intel® Xeon® скалабилен процесор(и). Кога е овозможено или оневозможено Hyper Threading, оневозможувањето на состојбите на мирување (-D0) спречува јадрата да влезат во состојби со мала моќност за време на периодите на мирување и ја намалува доцнењето за процесорот да премине помеѓу неактивен и активни состојби.
  2. Управувањето со енергијата на скалабилниот процесор Intel® 4th Gen Intel® Xeon® е исклучително агресивно. За да избегнете јадрата да влезат во состојби со мала моќност, обидете се да го намалите бројот на јадра што се користат за да ги држите будни подолго време (ethtool -L комбинирано ). Исто така, поврзете ги прекините за специфични јадра користејќи сет irq афинитет (најчесто со -x локално или листа на јадра на процесорот) и осигурајте се дека обемот на работа работи на истите тие јадра со сет на задачи или numactl. Ова ги подобрува перформансите со одржување на активни јадра и оптимизирање на справувањето со прекините.

Овозможи C6:
Cpupower неактивен-сет -d3
Овозможи C-состојби:
Cpupower неактивен-сет -E

  • Друг метод е да се искористи подесената алатка (вклучена со многу дистрибуции на Linux) за да се постави професионален перформансfile. Овие проfileизменете неколку поставки за ОС што може да влијаат на перформансите на многу апликации. Утврдено е дека мрежниот проток проfile обезбедува подобрување на повеќето оптоварувања.
    Проверете:
    подесен-адм активен
    Поставете:
    подесен-адм проfile мрежен проток
    ЗАБЕЛЕШКА
    Подесената услуга мора да работи за горенаведените команди. За да проверите/рестартирате, подесени: systemctl статус подесен systemctl рестарт подесен
    Можете исто така да не дозволите влез во C-состојба со додавање на следново во линијата за подигање на кернелот:
    неактивен=анкета
  • Ограничете ја C-состојбата преку системските поставки за управување со енергијата на BIOS-от, кои може да имаат добри перформансиfile достапни.
    Алатките како што се турбостатот или x86_energy_perf_policy може да се користат за проверка или поставување поставки за управување со енергијата.

5.2.2 PCIe Power Management
Управувањето со енергија во активна состојба (ASPM) овозможува пониска состојба на енергија за врските PCIe кога тие не се во активна употреба. Ова може да предизвика поголема латентност на PCIe мрежните уреди, па Intel препорачува да го оневозможите ASPM за работни оптоварувања чувствителни на латентност. Оневозможете го ASPM со додавање на следново на линијата за подигање на кернелот: pcie_aspm=off
5.2.3 Скалирање на фреквенцијата на процесорот
Скалирање на фреквенцијата на процесорот (или скалирање на брзината на процесорот) е техника за управување со енергија на Линукс во која брзината на часовникот на системот се приспособува веднаш за да заштеди енергија и топлина. Исто како и C-состојбите, ова може да предизвика несакана латентност на мрежните врски.
Алатката cpupower може да се користи и за проверка и менување на стандардните и ограничувањата на перформансите на процесорот:

  • Проверете: монитор на cpupower или
  • Поставете ги процесорите во режим на изведба: Cpupower фреквенција-сет -g перформанси

ЗАБЕЛЕШКА
Измените на ограничувањата на фреквенцијата на процесорот може да имаат влијание на многу оптоварувања и може да оневозможат други функции, како што е турбо режимот на процесорот.
За да го исклучите скалирањето на фреквенцијата на процесорот, оневозможете ја услугата за напојување на процесорот со следните команди:
systemctl стоп cpupower.service
systemctl оневозможи cpupower.service
5.2.4 Дополнителни упатства за управување со енергијата
Дополнителни детали се дадени во ова високо нивоview од многу од функциите за управување со енергија во процесорите 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 Огнени ѕидови
Огнените ѕидови можат да влијаат на перформансите, особено на перформансите на латентност.
Оневозможете ги iptables/firewalld ако не е потребно.
5.5 Поставки за апликација
Честопати една нишка (која одговара на една мрежна редица) не е доволна за да се постигне максимална пропусност. Некои архитектури на платформи, како што е AMD, имаат тенденција да испуштаат повеќе Rx пакети со една нишка во споредба со платформите со процесори базирани на Интел.
Размислете за користење алатки како што се множество задачи или 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 MB):
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 користејќи ја подесената команда. Ова менува неколку поставки на ОС за да обезбеди предност за мрежни апликации.
Проверете:
подесен-адм активен
Поставете:
подесен-адм проfile мрежен проток
5.8 Заостанати мрежни уреди
Оваа функција помага да се подобрат перформансите на мрежата со ефикасно управување со дојдовниот сообраќај, намалување на загубата на пакети, намалување на латентноста и зголемување на пропусната моќ. Ова води до подобро корисничко искуство и побрз одговор на системот.
Стандардно, тој е овозможен во повеќето оперативни системи Линукс. За да ја проверите стандардната вредност:
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 процесорот е исклучително агресивно во споредба со процесорите Intel® Xeon® Scalable од третата генерација. За да избегнете јадрата да влезат во состојби со мала моќност, обидете се да го намалите бројот на јадра што се користат за да ги држите будни подолго време.
Препорачани поставки за Bios за највисоки перформанси

  1. Овозможи/оневозможи Hyper-threading (врз основа на барањата за обемот на работа и целите за изведба) на процесорот.
  2. Поставете го системот проfile до Перформанси за максимални перформанси.
    ЗАБЕЛЕШКА
    Ова резултира со поголема потрошувачка на енергија
  3. Поставете го управувањето со енергијата на процесорот на Максимални перформанси за да се даде приоритет на максималните перформанси на процесорот пред ефикасноста на енергијата.
  4. Овозможи Turbo Boost. Оневозможувањето на Turbo Boost во поставките на системскиот BIOS обично го спречува процесорот динамично да ја зголемува брзината на часовникот над основната фреквенција.
  5. ЗАБЕЛЕШКА
    Оневозможувањето на Turbo Boost може да биде погодно за одредени случаи на употреба каде што конзистентните перформанси, енергетската ефикасност или термичкото управување се приоритетни пред максималните перформанси.
  6. Исклучете ја функцијата Single Root I/O Virtualization (SR-IOV), ако системот не користи технологии за виртуелизација.
  7. Оневозможете C-состојби за да му наложите на процесорот да остане активен и да спречи влегување во подлабоки состојби на мирување.
  8. Оневозможете го C1E, за да се осигурате дека процесорот останува активен и не влегува во состојба на мирување C1E.
  9. Поставете ја нејадрената фреквенција на максимална за да му наложите на системот да работи на највисоката достапна фреквенција.
  10. На платформите на Dell, поставете ја емулацијата на јадрата со повеќекратна APIC Description Table (MADT) на Linear (или Round-Robin во зависност од BIOS-от) за да обезбедите јасно и предвидливо мапирање на јадрата на процесорот.

Препорачани подесувања на ниво на ОС за оптимизирани перформанси

  1. Поставете го гувернерот за скалирање на фреквенцијата на процесорот на перформанси. cpupower фреквенција-сет -g перформанси cpupower фреквенција-информации
  2. Оневозможи C-states. Cpupower неактивен-сет -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 (обемот на работа зависи од пропусната моќ/латентноста).
    подесен-адм проfile мрежен проток

Препорачани подесувања на ниво на адаптер за оптимизирани перформанси

  1. Ограничете го бројот на редици за користење за сообраќај на апликации. Користете го минималниот број на редици потребни за одржување на поврзаните јадра на процесорот активни за да ги спречите да навлезат во подлабоки состојби на мирување (приспособете се за обемот на работа): ethtool -L комбинирано 32
  2. Поставете стапки на умереност на прекини. ethtool -C приспособливо-rx исклучено приспособливо-tx исклучено rx-usecs-високо 50 rx-usecs 50 tx-usecs 50
    Обидете се да го прилагодите тајмерот за здружување за пренос/примање/висок приоритет (80/100/150/200) или понизок (25/20/10/5) за да најдете оптимална вредност за обемот на работа.
  3. Поставете ги големините на прстените Rx/Tx. ethtool -Г rx 4096 tx 4096
    ЗАБЕЛЕШКА
    Ако видите Rx пакети паѓа со ethtool -S| grep drop, обидете се да ја намалите големината на прстенот на <4096. Обидете се да ја пронајдете оптималната вредност за обемот на работа каде што пакетите не се испуштаат.
  4. Поставете IRQ афинитет. Користете јадра локални за NIC или специфично мапирање на јадра (каде # јадра е еднаква на бројот на редици поставени во 1 на страница 26. systemctl стоп irqbalance set_irq_affinity -X local ИЛИ set_irq_affinity -X

5.9.2 AMD EPYC
AMD EPYC процесорите се моќни процесори создадени за сервери и центри за податоци, изградени на Зен архитектурата на AMD. Поставките подолу се од серијата EPYC од четвртата генерација на AMD.
Препорачани поставки на BIOS-от за највисоки перформанси

  1. Овозможете приспособен режим за да им овозможите на корисниците да ги приспособат перформансите на процесорот, потрошувачката на енергија и другите поставки. Ова помага во дотерување на системот за најдобар баланс помеѓу перформансите и енергетската ефикасност.
  2. Овозможете зајакнување на перформансите на јадрото за да му овозможите на процесорот автоматски да ја зголемува брзината за да се справи со поинтензивни задачи, подобрувајќи ги севкупните перформанси.
  3. Оневозможете ја глобалната контрола на C-state, за да спречите процесорот да навлезе во подлабоки состојби за заштеда на енергија, познати како C-states, што може да одржува одговор.
    ЗАБЕЛЕШКА
    Оневозможувањето на C-состојбите може да предизвика дополнителна потрошувачка на енергија и да ги зголеми топлинските температури. Следете ги и двете за обемот на работа.
  4. Овозможете/оневозможете Симултано повеќенишки (SMT) на процесорот, врз основа на барањата за обемот на работа и целите за изведба. SMT е еквивалентно на Hyper Threading на процесорите на Intel.
    ЗАБЕЛЕШКА
    За оптимизирани перформанси, погледнете во Tuning i40e Driver Settings на страница 13 и Platform Tuning (i40e Non-Specific) на страница 19 за препорачаното подесување на нивото на оперативниот систем и адаптерот.

Сврзување на адаптер

Линукс поврзувањето е моќна карактеристика што може значително да ги подобри перформансите на мрежата, вишокот и толеранцијата на грешки во опкружувањата на серверот. Сепак, важно е да се забележи дека бара компатибилен мрежен хардвер и соодветна конфигурација и на серверот и на прекинувачот за да функционира правилно.
Двигателот за поврзување во Linux ви овозможува да соберете повеќе физички мрежни интерфејси во поврзан интерфејс. Овој поврзан интерфејс се појавува како единствен виртуелен мрежен интерфејс за оперативниот систем и апликациите.
ЗАБЕЛЕШКА
Бондот е логичен интерфејс, така што не е можно да се постави афинитет на процесорот директно на интерфејсот за обврзници (на пр.ample, bond0). Односно, нема директна контрола над ракувањето со прекини или афинитетот на процесорот. Афинитетот на процесорот мора да биде конфигуриран за основните интерфејси кои се дел од врската.
Врзувањето обезбедува неколку начини на работа, секој со свои карактеристики.

Режим  Тип
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. Отворете ја конфигурацијата на NIC Files под /etc/sysconfig/network-scripts/ за потребниот NIC интерфејс (на пр.ample, vi ifcfg-ethX и vi ifcfg-ethY) и додајте го следниов текст:
    MASTER=bondN [Забелешка: N е цел број за да се спомене бројот на обврзницата.] SLAVE=да
  3. Создадете скрипта за мрежна врска file користејќи vi /etc/sysconfig/networkscripts/ifcfg-bondN и внесете го следниот текст:
    DEVICE=bondN [Забелешка: N е цел број за да се спомене бројот на обврзницата] ONBOOT=да USERCTL=не BOOTPROTO=dhcp (или) нема
    IPADDR=200.20.2.4 [потребно ако BOOTPROTO=нема] NETMASK=255.255.255.0 [потребно ако BOOTPROTO=нема] NETWORK=200.20.2.0 [потребно ако BOOTPROTO=нема] BROADCAST200.20.2.255=1потребно. BOOTPROTO=нема] BONDING_OPTS=”режим=100 миимон=XNUMX″
    ЗАБЕЛЕШКА
    Режимот може да биде кој било цел број од 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
  • За да гледате само бројачи без нула: гледајте -d (ethtool -S ethX) | egrep -v :\ 0 | колона
    Некои работи што треба да ги барате:
  • rx_dropped значи дека процесорот не ги сервисира баферите доволно брзо.
  • port.rx_dropped значи дека нешто не е доволно брзо во слотот/меморијата/ системот.

7.3 Мрежни бројачи
Проверете netstat -s пред/по извршување на обемот на работа.
Netstat собира мрежни информации од сите мрежни уреди во системот. Затоа, резултатите може да бидат засегнати од други мрежи освен од мрежата што се тестира. Излезот од netstat -s може да биде добар показател за проблеми со перформансите во оперативниот систем или кернелот Линукс. Консултирајте ги водичите за подесување на оперативниот систем, како што е Водичот за подесување на перформансите на мрежата на Red Hat Enterprise Linux, за повеќе увид во општото подесување на оперативниот систем.
7.4 Системски дневници
Проверете ги системските дневници за грешки и предупредувања (/var/log/messages, dmesg).
7.5 Интел svr-info алатка
Интел обезбедува алатка svr-info (види https://github.com/intel/svr-info) за Linux што снима релевантни хардверски и софтверски детали од сервер. Излезот svr-info може да биде исклучително корисен за да се идентификуваат тесните грла на системот или поставките/подесувањата кои не се оптимизирани за обемот на работа. Кога отворате кутија за поддршка со Intel за проблеми со перформансите поврзани со етернет, не заборавајте да вклучите излез svr-info (текст file) за секој Linux сервер во тест конфигурацијата.

  1. Преземете и инсталирајте svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > име на домаќин.txt
  2. Соберете го излезот:
    ./svr-info > име на домаќин.txt
  3. Прикачи еден текст (.txt) file за секој сервер до вашиот случај за поддршка на Intel за анализа.

Препораки за заеднички сценарија за изведба

8.1 ИП препраќање

  • Ажурирајте го кернелот.
    Некои неодамнешни кернели во дистрибуција ги намалија перформансите на рутирањето поради промените на кернелот во рутирачкиот код почнувајќи со отстранување на рутирачката кеш поради безбедност. Неодамнешните кернели надвор од дистрибуција треба да имаат закрпи кои го ублажуваат влијанието на овие промени на перформансите и може да обезбедат подобрени перформанси.
  • Оневозможи хипер-нишки (логички јадра).
  • Уредете ги параметрите за подигање на јадрото.
    — Принудете го iommu исклучен (intel_iommu=исклучен или iommu=off) од линијата за подигање на кернелот освен ако не е потребно за виртуелизација
    — Исклучете го управувањето со енергијата: processor.max_cstates=1 idle=ankete pcie_aspm=off
  • Ограничете го бројот на редици да биде еднаков на бројот на јадра на локалниот приклучок (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 е етернет интерфејсот што треба да се менува.
  • Оневозможете ја умереноста на адаптивни прекини и поставете статичка вредност. ethtool -C ethX адаптивен-rx исклучен приспособлив-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 стоп irqbalance или systemctl оневозможи irqbalance
  • Извршете ја скриптата за афинитет за да се шири низ јадрата. Пробајте или локално или сите.
  • Исклучете ја модерацијата на прекини. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-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 јазол. сет на задачи -в

Серија Intel ® Ethernet 700
Водич за подесување на перформансите на Linux
декември 2024 година
Доц. Бр.: 334019, Рев.: 1.2

Документи / ресурси

Подесување на перформансите на Линукс од серијата Интел Етернет 700 [pdf] Упатство за корисникот
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *