Intel ® Ethernet 700 сериясы
Linux Performance Tuning Guide
NEX Cloud Networking Group (NCNG)
Аян 1.2
декабрь 2024
Кайра карап чыгуу тарыхы
Ревизия | Дата | Комментарийлер |
1.2 | декабрь 2024 | · Кошумча кубаттуулукту башкаруу көрсөтмөсү кошулду. · Intel* Turbo Boost кошулду. · Тармак түзмөктөрүнүн арткы тизмеси кошулду. · Платформага тиешелүү конфигурациялар жана тюнинг кошулду. · 4-муундагы Intel* %eon* масштабдуу процессорлору кошулду. · AMD EPYC кошулду. · Жаңыртылган текшерүү тутумунун аппараттык мүмкүнчүлүктөрү. · Жаңыланган iPerf2. · Жаңыланган iPerf3. · Жаңыртылган Tx/Rx кезектери. · Жаңыртылган Үзгүлтүккө Модерация. · Жаңыртылган шакек өлчөмү. · Жаңыртылган Platform Tuning (i40e Nonspecific). · Жаңыртылган BIOS Орнотуулары. · Жаңыланган C-мамлекеттик көзөмөл. · Жаңыланган CPU жыштыгын масштабдоо. · Жаңыртылган Колдонмонун Орнотуулары. · Жаңыртылган Операция системасы/Ядро жөндөөлөрү. · Жаңыланган IP багыттоо. · Жаңыртылган Төмөнкү кечигүү. |
2023-жылдын августу | Бул документке өзгөртүүлөр төмөнкүлөрдү камтыйт: · Кошулган тиешелүү шилтемелер. · Кошулган DDP пакетинин туура жүктөлүп жатканын текшериңиз. · iPerf2 кошулду. · iPerf3 кошулду. · Netperf кошулду. · Жаңыланган IRQ Affinity. · Кошулган Tx/Rx кезектери. · Жаңыртылган шакек өлчөмү. · Кошулган Jumbo Frames. · Кошулган адаптер байланышы. · Intel svr-info куралы кошулду. |
|
1.0 | Март 2016 | Алгачкы релиз (Intel Public). |
Introduction
Бул колдонмо Linux чөйрөлөрүндө Intel ® Ethernet 700 Series NICтерди колдонуу менен оптималдуу тармактык иштеши үчүн чөйрөлөрдү тууралоо боюнча көрсөтмөлөрдү берүү үчүн арналган. Бул тармактын иштешин жакшыртышы мүмкүн болгон аппараттык камсыздоого, драйверге жана операциялык системанын шарттарына жана жөндөөлөрүнө багытталган. Белгилей кетчү нерсе, тармактын иштешине тышкы таасирлердин ар кандай саны таасир этиши мүмкүн, алардын эң кеңири тарагандары жана эң драмалуулары гана бул колдонмодо камтылган.
1.1 Тиешелүү шилтемелер
- Windows жана Linux колдогон бардык Intel ® Ethernet адаптерлери жана түзмөктөрү үчүн Колдонуучу колдонмо:
Intel ® Ethernet адаптерлери жана түзмөктөрү Колдонуучунун колдонмосу - Техникалык маалымат баракчасы:
Intel ® Ethernet Controller X710/XXV710/XL710 маалымат жадыбалы - Бардык Intel ® Ethernet өнүмдөрү үчүн толук SW таңгагы (бардык драйверлерди, NVMлерди, куралдарды ж.б. жүктөп алыңыз):
Intel ® Ethernet адаптери толук драйвер топтому - NVM (Volatile Memory) Жаңыртуу топтому:
Intel ® Ethernet Network Adapter 700 сериясы үчүн Учуучу эмес эс тутумдун (NVM) жаңыртуу программасы - Linux үчүн svr-info куралы, ал серверден тиешелүү аппараттык жана программалык камсыздоо деталдарын алат: https://github.com/intel/svr-info
- DDP технологиялык колдонмо:
Intel ® Ethernet 700 Сериялар Динамикалык түзмөк персоналдаштыруу (DDP) технологиялык колдонмо
Баштапкы текшерүү тизмеси
2.1 Драйверди/ Микропрограмма версияларын жаңыртуу
ethtool -i ethx аркылуу драйверди/программанын версияларын текшериңиз.
Төмөнкүлөрдү зарылчылыкка жараша жаңыртыңыз:
- i40e драйверин жаңыртуу
http://sourceforge.net/projects/e1000/files/i40e%20stable/ or https:// downloadcenter.intel.com/ download/24411/Network-Adapter-Driver-for-PCI-E-40- Gigabit-Network-Connections-under-Linux - Микропрограмманы жаңыртуу
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 README окуу
Белгилүү маселелерди текшерип, READMEден эң акыркы конфигурация нускамаларын алыңыз file i40e булак пакетине киргизилген.
2.3 Сиздин PCI Express (PCIe) слоту x8 экенин текшериңиз
Кээ бир PCIe x8 уячалары чындыгында x4 уячалары катары конфигурацияланган. Бул уячаларда кош порт жана төрт порт түзмөктөрү менен толук линия ылдамдыгы үчүн өткөрүү жөндөмдүүлүгү жетишсиз. Мындан тышкары, PCIe v3.0-жөндөмдүү адаптерди PCIe v2.x уячасына салсаңыз, өткөрүү жөндөмдүүлүгүн толук ала албайсыз. Программалык камсыздоо түзүлүшүнүн драйвери бул жагдайды аныктап, системанын журналына төмөнкү билдирүүнү жазат:
Бул карта үчүн жеткиликтүү PCI-Express өткөрүү жөндөмдүүлүгү оптималдуу иштеши үчүн жетишсиз. Оптималдуу иштеши үчүн x8 PCI-Express слоту талап кылынат.
Эгер бул ката пайда болсо, маселени чечүү үчүн адаптериңизди чыныгы PCIe v3.0 x8 слотуна жылдырыңыз.
2.4 Системанын аппараттык мүмкүнчүлүктөрүн текшерүү
10 Gbps, 25 Gbps жана 40 Gbps Ethernet ылдамдыгында CPU жана системанын минималдуу талаптары бар. Жалпысынан алганда, заманбап сервер классынын процессору жана платформаңыз үчүн оптималдуу эс конфигурациясы жетиштүү болушу керек, бирок муктаждыктар иш жүгүңүзгө жараша өзгөрүп турат. Бардык эстутум каналдары толтурулуп, эс тутумдун иштөө режими BIOS'та иштетилиши керек. Сиздин CPU жана эстутум конфигурацияңыз сиздин жумуш жүгүңүз үчүн талап кылынган тармактын иштешинин деңгээлин колдоого жөндөмдүү экенин текшериңиз.
ЭСКЕРТҮҮ
XL710 40 GbE контроллери болуп саналат. Бул контроллерди колдонгон 2 x 40 GbE адаптер 2 x 40 GbE эмес, жигердүү резервдик порту бар 1 x 40 GbE болууга арналган. Эки портту тең камтыган линиялык ылдамдык трафигин колдонууга аракет кылып жатканда, ички коммутатор каныккан жана эки порттун ортосундагы бириктирилген өткөрүү жөндөмдүүлүгү жалпысынан SO Gbps менен чектелген.
2.4.1 Ядро жүктөө параметрлери
Эгерде Intel® Virtualization Technology for Directed I/O (Intel® VT-d) BIOS'та иштетилген болсо, Intel хост тармагынын оптималдуу иштеши үчүн IOMMU өткөрүү режиминде болууну сунуштайт. Бул виртуалдык машиналарга (VM) Intel® VT-d артыкчылыктарына ээ болууга мүмкүнчүлүк берип, хост трафигиндеги DMA ашыкча чыгымын жок кылат. Бул ядронун жүктөө параметрлерине төмөнкү сапты кошуу менен ишке ашат: fommu-pt.
2.5 DDP пакети туура жүктөлүп жатканын текшериңиз
140ea жана 140eb базалык драйверлери Динамикалык түзмөк персоналдаштырууну (DDP) түз колдоосуна ээ эмес. DDP 700 Series түзмөктөрү менен колдонуу үчүн, DDP проfile testpmd колдонмосу менен колдонсо болот.
DDP pro боюнча чоо-жайы үчүнfileс, жана DDP про кантип колдонуу керекfile 700 Сериялар түзмөктөрүндө testpmd менен, Intel® Ethernet 700 Сериясынын Динамикалык түзмөк персоналдаштыруу (DDP) Технология колдонмосун караңыз.
DDP про экендигин текшерүү үчүнfile ийгиликтүү жүктөлдү:
testpmd> ddp алуу тизмеси 0 Profile саны: 1
ЭСКЕРТҮҮ
Эгерде проfile саны 0, DDP пакети жүктөлгөн жок. DDP пакетин жүктөө катасы болгон учурда, түзмөк демейки коопсуз режимге өтөт жана көптөгөн аткаруу функциялары жеткиликсиз болот. DDP пакетин жүктөө менен байланышкан каталар бар болсо, ал аткаруу көйгөйлөрүн жаратат. Мүчүлүштүктөрдү жоюу кадамдары үчүн, Inte/* Ethernet 700 сериясынын динамикалык түзмөктү персоналдаштыруу (DDP) технологиялык колдонмосун караңыз.
Базалык көрсөткүчтөрдү өлчөө жана тюнинг методологиясы
3.1 Тармактын натыйжалуулугунун көрсөткүчтөрү
Тюнинг көнүгүүлөрүн баштоодон мурун, тармактын иштешин жакшы базалык өлчөө үчүн маанилүү. Адатта, сиздин конкреттүү тиркемеңиздин/жумушуңуздун иштешинин алгачкы өлчөөсүн алуудан тышкары, тармак түзмөгүңүздүн жакшы абалда экенин текшерүү үчүн тармактын иштешинин стандарттык эталондорун колдонуу жакшы идея.
Жалгыз системаны оптималдаштыруу үчүн, netperf же iperf жана NetPIPE байланышты баса белгилеп, иштөө маселелерин диагностикалоого мүмкүндүк берген ачык булаксыз катуу куралдар.
Netperf өткөрүү жөндөмдүүлүгү жана кечигүү сыноолору үчүн күчтүү. NetPIPE кечигүү үчүн атайын курал, бирок ар кандай чөйрө үчүн түзүлүшү мүмкүн.
ЭСКЕРТҮҮ
Netperf ичиндеги TCP_RR тести транзакциялардын/сек маанисинде күтүү убактысын кайтарат. Бул эки тарапка бара турган номер. Бир тараптуу кечиктирүүнү төмөнкү теңдеме менен эсептөөгө болот:
Кечирүү(пайдалануу) = (1⁄2) / [Транзакциялар/сек.] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Бир колдонмо инстанциясында бир нече жипти колдонуу жана колдоо оңой болгондуктан, Intel көпчүлүк бенчмаркинг жагдайлары үчүн iperf2ди iperf3 үстүнөн сунуштайт. Intel -P опциясы менен 2G туташуулары үчүн 4-25 жип жана 4G туташуулары үчүн 6-40 жип менен иштөөнү сунуштайт.
- Кардардан серверге бир багыттуу трафикти иштетүү үчүн: Сервер буйругу эксample: iperf2 -s
Кардар буйругу эксample: iperf2 -c -П - Кардардан серверге (жана тескерисинче) эки багыттуу трафикти иштетүү үчүн: Сервердин буйругу эксample: iperf2 –s –p
Кардар буйругу эксampле:
iperf2 -c -б -П -–толук дуплекс ЖЕ
iperf2 -c -б -П – д
ЭСКЕРТҮҮ
Iperf2деги –full-duplex жана -d параметрлери тең колдонуучуга эки багыттуу тестирлөө жүргүзүүгө мүмкүндүк берет. Бирок, -толук дуплекстүү опция өзгөчө толук дуплекстүү тестирлөөгө багытталган.
ЭСКЕРТҮҮ
Iperf2ди бир нече сервер портторунда сынап жатканда, сервердин буйругуна -d желегин бир эле терминал терезесинен фондо бардык сервер сеанстарын иштетүү үчүн кошууга болот. -d желеги сервер буйругу скрипттеги for циклинин ичине киргизилгенде да колдонулушу мүмкүн.
ЭСКЕРТҮҮ
Тармактын өткөрүү жөндөмдүүлүгүн текшерүүнү бир агым/жип менен иштетүүдө (мисample: P1), AMD процессорлору күтүлгөн өткөрүү жөндөмдүүлүгүн, айрыкча жогорку өткөрүү жөндөмдүүлүгүн NIC'лерди камсыз кылбашы мүмкүн (эгер ылдамдык >= 25G өткөрүү жөндөмдүүлүгү болсо). Натыйжада, жогорку өткөрүү жөндөмдүүлүгүнө жетүү үчүн атайын өзөктөргө тиркемени кадоо талап кылынат. 22-беттеги Колдонмо орнотууларын караңыз.
3.1.2 iPerf3
Эгерде iperf3 колдонулса, алдын ала алуу үчүн колдонмонун бир нече нускасы талап кылынатtagкөп жиптер, RSS жана аппараттык кезектер. Intel 2G туташуусу үчүн 4-25 тиркеме сеансы жана 4G туташуусу үчүн 6-40 сеанс менен иштөөнү сунуштайт. Ар бир сеанс -p параметрин колдонуу менен уникалдуу TCP порт маанисин көрсөтүшү керек.
- Кардардан серверге бир багыттуу трафикти иштетүү үчүн:
Сервер буйругу, мисалыampле:
iperf3 -s -p
Кардар буйругу эксampле:
iperf3 -c -б - Кардардан серверге (жана тескерисинче) эки багыттуу трафикти иштетүү үчүн:
Сервер буйругу, мисалыampле:
iperf3 –s –б
Кардар буйругу эксample: iperf3 -c -б -П –-бидир - iperf3 бир нече инстанцияларын (жиптерин) баштоо үчүн, сунуш катары TCP портторуна жиптерди картага салуу үчүн for циклин колдонуу жана параллелдүү бир нече процесстерди түзүү үчүн & колдонуу менен iperf3'ту фондо иштетүү сунушталат.
Сервер буйругу, мисалыample, 4 жипти баштаңыз: port=””; i үчүн {0..3}; порт=520$i; bash -c “iperf3 -s -p $port &”; жасалган; Кардар буйругу эксample, 4 жипти баштоо – Тест портун өткөрүү =””; i үчүн {0..3}; порт=520$i; bash -c “iperf3 -c $serverIP -p $port &”; жасалган; Кардар буйругу эксample, 4 жипти баштоо – Сыноо портун алуу=””; i үчүн {0..3}; порт=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; жасалган; 40G туташуулары үчүн 6 инстанцияга/жипке чейин түзүү үчүн for циклин көбөйтүңүз.
ЭСКЕРТҮҮ
Тармактын өткөрүү жөндөмдүүлүгүн текшерүүнү бир агым/жип менен иштетүүдө (мисample: P1), AMD процессорлору күтүлгөн өткөрүү жөндөмдүүлүгүн, айрыкча жогорку өткөрүү жөндөмдүүлүгүн камсыз кылбашы мүмкүн
NICs (эгер ылдамдык >= 25G өткөрүү жөндөмдүүлүгү болсо). Натыйжада, жогорку өткөрүү жөндөмдүүлүгүнө жетүү үчүн атайын өзөктөргө тиркемени кадоо талап кылынат. 22-беттеги Колдонмо орнотууларын жана 26-беттеги AMD EPYCди караңыз.
3.1.3 netperf
Netperf куралы өткөрүү жөндөмдүүлүгүн жана күтүү мөөнөтүн текшерүү үчүн күчтүү тандоо.
- Netperf ичиндеги TCP_STREAM тести аппараттын өткөрүү мүмкүнчүлүктөрүн өлчөйт. Сервер буйругу, мисалыample: netserver Client буйругу example: netperf -t TCP_STREAM -l 30 -H
- Netperf ичиндеги TCP_RR тести транзакциялардын/секундадагы күтүү убактысын кайтарат. Бул эки тарапка бара турган номер. Бул -T x,x параметрин колдонуу сунушталат, эгерде x түзмөктө жергиликтүү CPU болсо. Бир тараптуу кечигүү төмөнкү менен эсептелсе болот: Latency(usec)=(1⁄2)/ [Транзакциялар/сек]*1,000,\ Сервер буйругу эксample: netserver
Кардар буйругу эксample: netperf -t TCP_RR -l 30 -H -T x,x - Netperfдин бир нече инстанцияларын (жиптерин) баштоо үчүн, сунуш катары TCP портторуна жиптерди картага түшүрүү үчүн for циклин колдонуу жана параллелдүү бир нече процесстерди түзүү үчүн & аркылуу фондо netperf иштетүү сунушталат.
Сервер буйругу, мисалыample, 8 теманы баштаңыз:
port=””; i үчүн {0..7}; порт=520$i; bash -c “netserver -L $serverIP -p $port &”; жасалган;
Кардар буйругу эксample, 8 жипти баштаңыз: port=””; i үчүн {0..7}; порт=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; жасалган;
3.2 Тюнинг методологиясы
Ар бир өзгөртүү тестиңизге кандай таасир тийгизерин билүү үчүн, бир убакта бир тюнинг өзгөртүүсүнө көңүл буруңуз. Сиз тууралоо процессинде канчалык методикалык болсоңуз, аткаруудагы кыйынчылыктардын себептерин аныктоо жана чечүү ошончолук оңой болот.
i40e драйверинин жөндөөлөрүн тууралоо
4.1 IRQ жакындыгы
IRQ жакындыгын конфигурациялоо ар кандай тармак кезектери үчүн үзгүлтүктөр ар кандай CPU өзөктөрүнө туташтырылат, аткарууга, айрыкча көп агымдык өткөрүү тесттерине чоң таасирин тийгизиши мүмкүн.
IRQ жакындыгын конфигурациялоо үчүн, irqbalanceди токтотуп, андан кийин i40e булак топтомунан set_irq_affinity скриптин колдонуңуз же кезектерди кол менен коюңуз. Кезекти кадоону иштетүү үчүн колдонуучу мейкиндигинин IRQ балансын өчүрүңүз:
- systemctl irqbalanceди өчүрүү
- systemctl irqbalance токтотуу
i40e булак пакетинен set_irq_affinity скриптин колдонуу (сунушталат): - Бардык өзөктөрдү колдонуу үчүн:
[path-to-i40epackage]/scripts/set_irq_affinity -X all ethX - Жергиликтүү NUMA розеткасында өзөктөрдү гана колдонуу үчүн: [path-to-i40epackage]/scripts/set_irq_affinity -X жергиликтүү ethX
- Ошондой эле бир катар өзөктөрдү тандай аласыз. cpu0 колдонуудан качыңыз, анткени ал таймер тапшырмаларын аткарат. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
ЭСКЕРТҮҮ
Жакындык скрипти -x опциясы көрсөтүлгөндө төөнөгүч процессинин бир бөлүгү катары Transmit Packet Steering (XPS) функциясын иштетет. XPS иштетилгенде, Intel irqbalance өчүрүүнү сунуштайт, анткени XPS менен ядро баланстоочу күтүлбөгөн көрсөткүчтөргө алып келиши мүмкүн. -X опциясы көрсөтүлгөндө, жакындык скрипти XPSти өчүрөт. XPSти өчүрүү жана симметриялуу кезектерди иштетүү Tx жана Rx трафиги бир кезектеги жупта(ларда) тейленгенде эң жакшы көрсөткүчкө жетишилген жумуш жүктөрү үчүн пайдалуу.
Linux'та симметриялык кезектерди конфигурациялоо колдоого алынган тармак адаптерлери үчүн симметриялуу кабыл алуу кезектерин (Rx) жана симметриялуу берүү кезегин (Tx) иштетүү үчүн тармак интерфейсинин драйверинин параметрлерин тууралоону камтыйт.
ЭСКЕРТҮҮ
- Симметриялык кезектер өнүккөн тармактык өзгөчөлүк болуп саналат жана бардык 700 сериялуу тармак адаптерлери же драйверлери аларды колдой бербейт.
- Симметриялуу кезектерди конфигурациялоодон мурун керектүү драйвер жана аппараттык колдоо бар экенин текшериңиз.
Симметриялык кезектерди конфигурациялоо үчүн бул жалпы кадамдарды аткарыңыз:
- Тармак интерфейсинин конфигурациясын түзөтүңүз File: Текст редакторун колдонуңуз (мисалыample, vi, nano же gedit) тармак интерфейсинин конфигурациясын түзөтүү үчүн file. The file адатта /etc/sysconfig/network-scripts/ каталогунун астында жайгашкан жана ifcfg-ethX сыяктуу аталышка ээ, мында ethX сиздин тармак интерфейсиңиздин аты.
- Симметриялык кезек параметрлерин кошуу. Тармак интерфейсинин конфигурациясына төмөнкү саптарды кошуңуз file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
- Тармак кызматын кайра иштетүү.
Өзгөртүүлөрдү киргизгенден кийин, жаңы конфигурацияны колдонуу үчүн тармак кызматын өчүрүп күйгүзүңүз. sudo systemctl тармагын кайра баштоо
Кол менен:
-
Ар бир түйүнгө тиркелген процессорлорду табуу: numactl –hardware lscpu
-
Процессорлордун ар бири үчүн бит маскаларын табыңыз:
- 0 түйүн үчүн 11-0 өзөктөрүн кабыл алуу: [1,2,4,8,10,20,40,80,100,200,400,800]
- Дайындалган портко ыйгарылган IRQларды табыңыз: grep ethX /proc/interrupts жана IRQ маанилерин белгилеңиз, мисалы.ample, 181-192 жүктөлгөн 12 вектор үчүн.
- SMP жакындык маанисин тиешелүү IRQ жазуусуна жаңыртыңыз. Бул ар бир IRQ жазуусу үчүн жасалышы керек экенин эске алыңыз: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity IRQ жакындыгын көрсөтүү:
- Бардык өзөктөр үчүн IRQ жакындыгын көрсөтүү үчүн: /scripts/set_irq_affinity -s ethX
- Жергиликтүү NUMA розеткасындагы өзөктөрдү гана көрсөтүү үчүн: /scripts/set_irq_affinity -s жергиликтүү ethX
- Сиз ошондой эле бир катар өзөктөрдү тандай аласыз: /scripts/set_irq_affinity -s 40-0-8,16 ethX
ЭСКЕРТҮҮ
set_irq_affinity скрипти i40e драйверинин 2.16.11 жана андан кийинки версияларында -s желегин колдойт.
4.2 Tx/Rx кезектери
Драйвер инициализациялоодо ар бир Ethernet порту үчүн иштетилген кезектердин демейки саны платформада жеткиликтүү CPUлардын жалпы санына барабар. Бул көптөгөн платформалар жана жүктөө конфигурациялары үчүн жакшы иштейт. Бирок, өзөктүк саны жана/же Ethernet портунун тыгыздыгы жогору платформаларда бул конфигурация ресурстук талаш-тартыштарды жаратышы мүмкүн. Ошондуктан, кээ бир учурларда системадагы ар бир порт үчүн демейкиди өзгөртүү зарыл болушу мүмкүн.
Tx/Rx кезектеринин демейки саны белгилүү бир моделге жана драйвердин версиясына жараша өзгөрүшү мүмкүн. Төмөндө тизмеленген ethtool -L буйругу менен кезектердин санын жөнгө салууга болот.
ЭСКЕРТҮҮ
Мындай учурларда, Intel ар бир порт үчүн демейки кезек санын адаптер портуна локалдуу NUMA түйүнүндө жеткиликтүү болгон CPU санынан ашпаганга чейин кыскартууну сунуштайт. Кээ бир учурларда, порттордун жогорку санын ишке ашыруу боюнча ресурстарды тең салмактоого аракет кылып жатканда, бул санды андан ары кыскартуу зарыл болушу мүмкүн.
Кезектин конфигурациясын өзгөртүү үчүн:
Кийинки экс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 Үзгүлтүккө учуратуу
Адаптивдүү үзгүлтүккө модерация демейки боюнча күйгүзүлгөн жана CPU аз колдонулушу менен жогорку өндүрүмдүүлүктүн ортосунда тең салмактуу мамилени камсыз кылуу үчүн иштелип чыккан. Бирок, сиз колдонуу жагдайыңызга ылайыктуу үчүн үзгүлтүктүн жөндөөлөрүн кол менен жөндөп көрүңүз.
0-235 микросекунд диапазону секундасына 4,310дон 250,000ге чейинки үзгүлтүккө чейинки эффективдүү диапазону камсыз кылат. rx-μsecs-high мааниси бир эле ethtool буйругунда rx-μsecs жана tx-μsecs көз карандысыз коюлушу мүмкүн, ошондой эле адаптациялоочу үзгүлтүктөрдү модерациялоо алгоритмине көз каранды эмес. Негизги жабдык 2 микросекунддук аралыкта майдаланууну колдойт, андыктан чектеш маанилер бирдей үзгүлтүккө алып келиши мүмкүн.
- Адаптивдүү үзгүлтүккө модерацияны өчүрүү үчүн: ethtool -C ethX adaptive-rx өчүк adaptive-tx өчүк
- Адаптивдүү үзгүлтүктү модерациялоону күйгүзүү үчүн: ethtool -C ethX adaptive-rx боюнча адаптивдик-tx күйүк
Жалпы жөндөө үчүн жакшы жер 84 мкс, же ~12000 үзгүлтүк/с. Эгер сиз rx_dropped эсептегичтери трафик учурунда иштеп жатканын көрсөңүз (ethtool -S ethX колдонуп), анда сизде CPU өтө жай болушу мүмкүн, пакеттерди 84 мкс же төмөнкү үзгүлтүккө чейин кармоо үчүн адаптердин шакек өлчөмүнөн (ethtool -G) буферлер жетишсиз.
- Үзгүлтүктөрдү модерациялоону үзгүлтүктөрдүн ортосунда 84 μs туруктуу үзгүлтүккө учуратуу ылдамдыгына коюу үчүн (12000 үзгүлтүк/с): ethtool -C ethX adaptive-rx off adaptive-tx өчүк rx-usecs 84 tx-usecs 84 Кийинки маани, эгерде сиз CPU62 μs максималдуу пайдаланбасаңыз, аракет кылуу керек. Бул көбүрөөк CPU колдонот, бирок буферлерди тезирээк тейлейт жана азыраак дескрипторлорду талап кылат (шакек өлчөмү, ethtool -G).
- Үзгүлтүктөрдүн модерациясын үзгүлтүксүз үзгүлтүккө учуратуу ылдамдыгына 62 колдонуучу үзгүлтүккө (16000 үзгүлтүк/с) коюу. ethtool -C ethX adaptive-rx өчүк adaptive-tx өчүк rx-usecs 62 tx-usecs 62
Трафик учурунда rx_dropped эсептегичтери көбөйсө (ethtool -S ethX менен), сизде CPU өтө жай, адаптердин шакекчесинин өлчөмүнөн буферлер жетишсиз (ethtool -G) же үзгүлтүккө учуроо ылдамдыгы өтө төмөн. Эгерде сиз CPU колдонууда максималдуу эмес болсоңуз, ITR маанисин төмөндөтүү менен үзүлүү ылдамдыгын жогорулата аласыз. Бул процессорду көбүрөөк колдонот, бирок кызматтар тезирээк буферленет жана азыраак дескрипторлорду талап кылат (шакек өлчөмү, ethtool -G).
Эгерде сиздин CPU 100% болсо, анда үзгүлтүктүн ылдамдыгын жогорулатуу сунушталбайт. Белгилүү бир жагдайларда, мисалы, CPU менен байланышкан жумуш жүгү, башка колдонмолор үчүн көбүрөөк CPU убактысын иштетүү үчүн μs маанисин жогорулатсаңыз болот.
Эгер сизге аз күтүү убактысы керек болсо жана/же тармакты иштетүүгө көп CPU керек болсо, үзгүлтүккө учуратуу модерациясын толугу менен өчүрүп койсоңуз болот, бул үзгүлтүктөрдү мүмкүн болушунча тез иштетүүгө мүмкүндүк берет. - Үзгүлтүксүз модерацияны өчүрүү үчүн ethtool -C ethX adaptive-rx өчүк adaptive-tx өчүк rx-usecs 0 tx-usecs 0
ЭСКЕРТҮҮ
Үзгүлтүккө учуратуу режими өчүрүлгөндө, ар бир кезекте үзгүлтүккө учуроо ылдамдыгы өтө жогору болушу мүмкүн. Үзүлүү ылдамдыгынын жогорку чегин коюу үчүн rx-usec-high параметрин кошууну карап көрүңүз. Төмөнкү буйрук адаптациялоочу үзгүлтүктү модерациялоону өчүрөт жана кабыл алуу же жөнөтүү аяктаганга чейин эң көп дегенде 5 микросекундга уруксат берет. Ал секундасына 200,000 50,000 үзгүлтүккө алып келүүнүн ордуна rx-usec-high параметри аркылуу секундасына жалпы үзгүлтүктөрдү 20 5ге чейин чектейт. # ethtool -C ethX adaptive-rx өчүк adaptive-tx өчүк rx-usecs-high 5 rx-usecs 80 txusecs 100 Берүү/кабыл алуу/жогорку приоритеттүү бириктирүү таймерин жогорураак (150/200/25/20) же андан төмөн (10/5/жүктөө үчүн оптималдуу маанини табууга) тууралап көрүңүз.
4.4 Шакектин өлчөмү
Эгер сиз ethtool -S ethX (rx_dropped, rx_dropped.nic) ичинде rx_dropped эсептегичтерин көрүп жатсаңыз же бир нече кезектер активдүү болгон кэш басымынан шектенсеңиз, шакек өлчөмүн демейки мааниден тууралап көрүңүз. Демейки маани 512, максимум 4096.
- Учурдагы маанилерди текшерүү үчүн: ethtool -g ethX
Буферлөөнүн жетишсиздиги учурдагы үзгүлтүккө учуроо ылдамдыгынын төмөндөшүнө алып келет деп шектенсеңиз, адегенде максимумга, андан соң минимумга аракет кылып көрүңүз, андан кийин оптималдуу аткарууну көргөнгө чейин бинардык издөөнү улантыңыз.
Кэш басымы шектенсе (көптөгөн кезектер активдүү) буферлерди демейкиден азайтуу Intel ® Data Direct I/O (Intel ® DDIO) жакшыраак эффективдүү иштешине жардам берет. Intel rx_dropped көбөйүшүнө жол бербөө үчүн ethtool -C аркылуу үзүлүү ылдамдыгын жогорулатуу зарыл болушу мүмкүн экенин билип, кезекте 128 же 256 сынап көрүүнү сунуштайт. - Шакектин өлчөмүн белгиленген мааниге коюу үчүн: ethtool -G eth12 rx 256 tx 256
ЭСКЕРТҮҮ
ethtool -S ethX|grep төмөндөшү менен табылган Rx пакетинин тамчыларын оңдоо үчүн шакек өлчөмүн 4096га чейин көбөйтүүнү карап көрүңүз. Жумуш жүгү үчүн эң жакшы жөндөөнү табуу үчүн эксперимент жасаңыз, бирок жогорураак маанилер менен эстутумдун ашыкча колдонулушун байкаңыз.
4.5 Агымды башкаруу
2-кабат агымын башкаруу TCP иштешине олуттуу таасирин тийгизет жана көпчүлүк жүктөмдөр үчүн өчүрүү сунушталат. Потенциалдуу өзгөчөлүк - бул жарылуулар узакка созулбаган катуу трафик.
Агымды башкаруу демейки боюнча өчүрүлгөн.
- Агымды башкарууну иштетүү үчүн: ethtool -A ethX rx on tx on
- Агымды башкарууну өчүрүү үчүн: ethtool -A ethX rx off tx off
ЭСКЕРТҮҮ
Агымды башкарууну ийгиликтүү иштетүү үчүн сизде агымды башкарууга жөндөмдүү шилтеме өнөктөш болушу керек.
4.6 Jumbo алкактары
Күтүлгөн трафик чөйрөсү өткөрүлүп жаткан чоң блоктордон турганда, jumbo кадр функциясын иштетүү пайдалуу болушу мүмкүн. Jumbo Frames колдоосу максималдуу өткөрүү бирдигин (MTU) демейки 1500 маанисинен чоңураак мааниге өзгөртүү аркылуу иштетилет. Бул түзмөккө тармак чөйрөсүндө чоңураак пакеттерде маалыматтарды өткөрүүгө мүмкүндүк берет. Бул жөндөө өткөрүү жөндөмдүүлүгүн жакшыртып, чоң киргизүү/чыгарма жүктөмдөрү үчүн CPU колдонууну азайтышы мүмкүн. Бирок, ал кичинекей пакеттерге же күтүү убактысына сезгич жүктөмгө таасир этиши мүмкүн.
ЭСКЕРТҮҮ
Jumbo алкактары же чоңураак MTU жөндөөлөрү сиздин тармак чөйрөңүздө туура конфигурацияланышы керек.
MTU өлчөмүн көбөйтүү үчүн ifconfig буйругун колдонуңуз. Мисалы үчүнampле, төмөнкүнү киргизиңиз, кайда интерфейс номери болуп саналат: ifconfig мту 9000 чейин
Же болбосо, сиз ip буйругун төмөнкүдөй колдоно аласыз: ip link set mtu 9000 dev IP шилтемесин орнотуу dev
Платформаны тюнинг (i40e атайын эмес)
5.1 BIOS орнотуулары
- Виртуалдаштыруу жумуш жүктөрү үчүн Intel® VT-d иштетиңиз.
- Hyper-threading (логикалык процессорлор) иштешине таасир этиши мүмкүн. Иш жүктөөңүз үчүн аны күйгүзүп же өчүрүп көрүңүз.
- Intel® Turbo Boost процессордун өзөктөрүн процессордун базалык жыштыгына караганда жогору жыштыкта иштөөгө мүмкүндүк берет. Intel® Turbo Boost иштетүү көптөгөн жүктөмдөрдүн иштөөсүн жакшыртат, бирок өзөктөрдү жогорку жыштыкта кармап туруу үчүн көбүрөөк энергия керектейт. Иш жүктөөңүз үчүн Turbo Boost өчүрүп/күйгүзүп көрүңүз.
ЭСКЕРТҮҮ
Турбо жыштыктарга кепилдик жок, эгерде платформа жалпы CPU колдонууну баштан кечирип жатса. Жогорку негизги турбо жыштыктары жалпы CPU колдонуу көбөйгөн сайын кыскарат.
5.2 Электр энергиясын башкаруу
Энергияны башкаруу майнаптуулугуна таасир этиши мүмкүн, өзгөчө аз күтүү убактысында. Эгерде өндүрүмдүүлүк энергияны керектөөнү азайтууга караганда артыкчылыктуу болсо, Intel кубаттуулукту башкаруунун таасирин чектөө менен эксперимент жасоону сунуштайт. Иштөө тутумунун куралдары, BIOS орнотуулары жана ядронун жүктөө параметрлери аркылуу кубаттуулукту башкарууну чектөөнүн ар кандай жолдору бар. Айлана-чөйрөңүзгө ылайыктуу эң жакшы ыкманы жана деңгээлди тандаңыз.
5.2.1 C-Мамлекеттик көзөмөл
CO же C1ге C-мамлекеттин киришин чектөө аткарууну жакшыртат жана электр энергиясын пайдаланууну жогорулатат.
CPU пакетинин C6 абалын өчүрүү тармактын иштешин жакшыртат. Бирок, бул электр энергиясын колдонууну көбөйтөт.
Төмөнкү опциялар жеткиликтүү:
- C абалындагы жазууну динамикалык башкаруу:
Open
/dev/cpu_dma_latency жана ага максималдуу уруксат берилген кечиктирүүнү жазыңыз.
ЭСКЕРТҮҮ
Cpudmalatency.c деп аталган кичинекей программа бар, аны ачык булак коомчулугунан жүктөп алып, компиляциялап, буйрук сабынан иштетсе болот.
Кийинки эксample беш μs ойгонуу убактысына мүмкүндүк берет жана ошентип C1 киришине мүмкүндүк берет: cpudmalatency 5 &
- Ядронун жүктөө жөндөөлөрүндө максималдуу C абалын чектөө:
Intel процессорлору үчүн: intel_idle.max_cstates=1
Intel эмес процессорлор үчүн: processor.max_cstates=1 - CPU C6 абалын текшерүү жана өчүрүү үчүн cpupower буйругун колдонуңуз: Текшерүү: cpupower монитору же cpupower idle-info
C6 өчүрүү: cpupower idle-set -d3 же
C-Мамлекеттерин өчүрүү: cpupower idle-set -D0
Эскертүүлөр:
- Эгерде серверде Intel® 4th Gen Intel® Xeon® масштабдуу процессорлору бар болсо, CPUдагы C абалын өчүрүңүз. Hyper Threading иштетилгенде же өчүрүлгөндө, бош абалдарды өчүрүү (-D0) бош мезгилдердеги ядролордун аз кубаттуулукка өтүшүнө жол бербейт жана CPU бош жана активдүү абалдардын ортосунда өтүү үчүн күтүү убактысын азайтат.
- Intel® 4th Gen Intel® Xeon® масштабдуу процессорунун кубаттуулугун башкаруу өтө агрессивдүү. Өзөктөр аз кубаттуулукка кирбеши үчүн, аларды узак убакыт бою сергек кармоо үчүн колдонулуп жаткан өзөктөрдүн санын азайтып көрүңүз (ethtool -L бириктирилген ). Ошондой эле, белгиленген irq жакындыгын (көбүнчө -x локалдуу же CPU өзөктөрүнүн тизмеси менен) колдонуп, үзгүлтүктөрдү белгилүү өзөктөр менен байланыштырыңыз жана жумуш жүгү ошол эле өзөктөрдүн taskset же numactl менен иштешин камсыз кылыңыз. Бул өзөктөрдү активдүү кармап туруу жана үзгүлтүктөрдү башкарууну оптималдаштыруу менен иштөөнү жакшыртат.
C6 иштетүү:
cpupower бош орнотулган -d3
C-мамлекеттерин иштетүү:
cpupower бош орнотулган -E
- Дагы бир ыкма - профессионал өндүрүмдүүлүктү орнотуу үчүн жөндөлгөн куралды (көптөгөн Linux дистрибуциялары менен кошо) колдонууfile. Бул проfileкөптөгөн колдонмолордун иштешине таасирин тийгизе турган бир нече OS жөндөөлөрүн өзгөртүү. Бул тармак-тын продукцнясы бар экендиги аныкталдыfile көпчүлүк жүктөмдөрдү жакшыртууну камсыз кылат.
Текшерүү:
tuned-adm активдүү
Орнотуу:
tuned-adm profile тармак өткөрүү
ЭСКЕРТҮҮ
Түзүлгөн кызмат жогорудагы буйруктар үчүн иштеши керек. Текшерүү/кайра баштоо үчүн, туураланган: systemctl статусу tuned systemctl restart tuned
Сиз ошондой эле ядронун жүктөө линиясына төмөнкүнү кошуу менен ар кандай C абалындагы жазууларга тыюу салсаңыз болот:
бош = сурамжылоо - C-абалын системанын BIOS кубаттуулугун башкаруу жөндөөлөрү аркылуу чектеңиз, алар аткаруу профессионалдуу болушу мүмкүнfile жеткиликтүү.
Турбостат же x86_energy_perf_policy сыяктуу куралдар кубаттуулукту башкаруу жөндөөлөрүн текшерүү же коюу үчүн колдонулушу мүмкүн.
5.2.2 PCIe Power Management
Active-State Power Management (ASPM) PCIe шилтемелери жигердүү колдонулбай турганда азыраак кубаттуулукту камсыз кылат. Бул PCIe тармак түзмөктөрүндө көбүрөөк кечиктирүүгө алып келиши мүмкүн, андыктан Intel күтүү убактысына сезгич жумуш жүктөрү үчүн ASPMди өчүрүүнү сунуштайт. Ядро жүктөө линиясына төмөнкүнү кошуу менен ASPMди өчүрүңүз: pcie_aspm=off
5.2.3 CPU жыштыгын масштабдоо
CPU жыштыгын масштабдоо (же CPU ылдамдыгын масштабдоо) - бул Linux кубаттуулугун башкаруу ыкмасы, мында системанын саатынын ылдамдыгы энергияны жана жылуулукту үнөмдөө үчүн тез жөнгө салынат. C-мамлекеттери сыяктуу эле, бул тармак туташууларындагы керексиз кечиктирүүгө алып келиши мүмкүн.
cpupower куралы CPU иштешинин демейки параметрлерин жана чектөөлөрүн текшерүү жана өзгөртүү үчүн да колдонулушу мүмкүн:
- Текшерүү: cpupower монитор же
- Процессорлорду аткаруу режимине коюңуз: cpupower жыштыгы коюлган -g аткаруу
ЭСКЕРТҮҮ
Процессордун жыштык чектерине өзгөртүүлөр көп жүктөмгө таасирин тийгизиши мүмкүн жана CPU турбо режими сыяктуу башка функцияларды өчүрүшү мүмкүн.
CPU жыштыгын масштабдоону өчүрүү үчүн, CPU кубаттуулугун төмөнкү буйруктар менен өчүрүңүз:
systemctl cpupower.service токтотуу
systemctl cpupower.service өчүрүү
5.2.4 Электр энергиясын башкаруу боюнча кошумча көрсөтмө
Кошумча маалымат бул жогорку деңгээлде берилгенview 3rd Generation Intel® Xeon® Scalable процессорлорунун көптөгөн кубаттуулукту башкаруу функциялары, ошондой эле бул функцияларды платформа деңгээлинде кантип интеграциялоо боюнча жетекчилик: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost процессорду керек болгондо ылдамдатат, бирок кошумча кубатту талап кылат. Turbo Boost өчүрүү процессорду туруктуу ылдамдыкта кармап, белгилүү бир жүктөмдөрдүн ырааттуу иштешин камсыз кылат.
5.4 Firewalls
Firewalls иштешине, өзгөчө кечиктирүүгө таасир этиши мүмкүн.
Эгер талап кылынбаса, iptables / Firewalld өчүрүңүз.
5.5 Колдонмо орнотуулары
Көбүнчө бир жип (бир тармак кезегине туура келет) максималдуу өткөрүү жөндөмдүүлүгүнө жетишүү үчүн жетиштүү эмес. Кээ бир платформа архитектуралары, мисалы, AMD, Intel негизиндеги процессорлору бар платформаларга салыштырмалуу бир жип менен Rx пакеттерин көбүрөөк түшүрүшөт.
Тапшырмаларды NUMA түйүнүнө же тармак түзмөгүнүн жергиликтүү CPU өзөктөрүнө кадоо үчүн taskset же numactl сыяктуу куралдарды колдонууну карап көрүңүз. Сактагыч I/O сыяктуу кээ бир жүктөмдөр үчүн колдонмону жергиликтүү эмес түйүнгө жылдыруу пайда берет.
Мүмкүн болсо, колдонмоңуз колдонгон жиптердин санын көбөйтүү менен эксперимент жасаңыз.
5.6 Ядро версиясы
Заманбап кутудагы өзөктөрдүн көпчүлүгү аткаруу үчүн жакшы оптималдаштырылган, бирок колдонуу шартыңызга жараша, ядрону жаңыртуу жакшыраак иштөөнү камсыз кылышы мүмкүн. Булакты жүктөө, ошондой эле ядрону куруудан мурун белгилүү бир функцияларды иштетүү/өчүрүү мүмкүнчүлүгүн берет.
5.7 Операция системасы/Ядро орнотуулары
Жалпы операциялык тутумду жөндөө боюнча көбүрөөк маалымат алуу үчүн, Red Hat Enterprise Linux Network Performance Tuning Guide сыяктуу операциялык системаны жөндөө боюнча көрсөтмөлөргө кайрылыңыз.
Төмөнкү таблицада тууралоо үчүн кээ бир жалпы параметрлер келтирилген. Булар сунушталган башталгыч чекиттер гана экенин жана аларды демейкиден өзгөртүү системада колдонулган ресурстарды көбөйтүшү мүмкүн экенин эске алыңыз. Маанилерди көбөйтүү майнаптуулукту жакшыртууга жардам берсе да, берилген системага, жумуш жүгүнө жана трафиктин түрүнө эмне ылайыктуу экенин аныктоо үчүн ар кандай баалуулуктар менен эксперимент жүргүзүү керек.
Ядронун параметрлери төмөндө көрсөтүлгөндөй Linux ичиндеги sysctl утилитасынын жардамы менен конфигурацияланат.
үчүн view системадагы rmem жана wmem үчүн демейки маанилер:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Маанилерди максимумга коюу (16 МБ):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Сокет буферинин өлчөмдөрү, ошондой эле кабыл алуу буфери (rmem) жана өткөрүп берүү буфери (wmem) катары белгилүү, кирүүчү жана чыгуучу тармак трафиги үчүн сакталган эстутумдун көлөмүн аныктаган системанын параметрлери.
-w аргументи жок sysctl иштетүү параметрди учурдагы жөндөөсү менен тизмелейт.
Стек орнотуу | Description |
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 үчүн эстутумду резервдик буфер жөнөтүү |
Ядро, тармактык стек, эс тутум менен иштөөчү, CPU ылдамдыгы жана кубаттуулукту башкаруу параметрлери тармактын иштешине чоң таасирин тийгизиши мүмкүн. Жалпы сунуш - тармактык өткөрүү жөндөмдүүлүгүнө кайрылууfile жөндөө буйругун колдонуу. Бул тармактык колдонмолорго артыкчылык берүү үчүн бир нече OS жөндөөлөрүн өзгөртөт.
Текшерүү:
tuned-adm активдүү
Орнотуу:
tuned-adm profile тармак өткөрүү
5.8 Тармак түзүлүшүнүн артта калуусу
Бул функция кирүүчү трафикти эффективдүү башкаруу, пакет жоготууларын азайтуу, күтүү убактысын азайтуу жана өткөрүү жөндөмдүүлүгүн жогорулатуу аркылуу тармактын иштешин жакшыртууга жардам берет. Бул жакшыраак колдонуучу тажрыйбасына жана тезирээк системанын жообуна алып келет.
Демейки боюнча, ал Linux операциялык тутумдарынын көпчүлүгүндө иштетилген. Демейки маанини текшерүү үчүн:
sysctl net.core.netdev_max_backlog
netdev_max_backlog үчүн максималдуу маани ядро версиясы, аппараттык камсыздоо, эс тутум жана жумуш жүгү сыяктуу факторлорго жараша өзгөрүшү мүмкүн. Көп учурларда, 8192 жакшы баа катары каралат. sysctl -w net.core.netdev_max_backlog=8192
5.9 Платформага тиешелүү конфигурациялар жана тюнинг
5.9.1 4-муундагы Intel® Xeon® масштабдуу процессорлору
Intel® 4th Generation Intel® Xeon® Scalable процессорунун кубаттуулугун башкаруу 3rd Generation Intel® Xeon® Scalable процессорлоруна салыштырмалуу өтө агрессивдүү. Өзөктөр аз кубаттуулукка кирбөө үчүн, аларды көпкө чейин ойготуу үчүн колдонулуп жаткан өзөктөрдүн санын азайтып көрүңүз.
Эң жогорку өндүрүмдүүлүк үчүн сунушталган Bios орнотуулары
- Процессордогу Hyper-threading иштетүү/өчүрүү (жумуштун жүгү талабына жана аткаруу максаттарына жараша).
- Профи системаны орнотуңузfile максималдуу аткаруу үчүн Performance.
ЭСКЕРТҮҮ
Бул көбүрөөк энергия керектөөгө алып келет - Кубаттын эффективдүүлүгүнө караганда CPU кубаттуулугунун максималдуу иштешине артыкчылык берүү үчүн CPU кубаттуулугун башкарууну Максималдуу Ишке орнотуңуз.
- Turbo Boost иштетүү. Системанын BIOS жөндөөлөрүндө Turbo Boost өчүрүү, адатта, процессордун саат ылдамдыгын динамикалык түрдө негизги жыштыктан тышкары жогорулатуусуна жол бербейт.
- ЭСКЕРТҮҮ
Turbo Boost өчүрүү ырааттуу аткаруу, кубаттуулуктун натыйжалуулугу же жылуулукту башкаруу максималдуу өндүрүмдүүлүккө караганда артыкчылыктуу болгон айрым колдонуу учурларда ылайыктуу болушу мүмкүн. - Эгерде система виртуалдаштыруу технологияларын колдонбосо, Single Root I/O Virtualization (SR-IOV) функциясын өчүрүңүз.
- CPU жигердүү бойдон калууга жана тереңирээк бош абалдарга кирүүгө жол бербөөгө көрсөтмө берүү үчүн C абалын өчүрүңүз.
- CPU активдүү бойдон калышын жана C1E бош абалына кирбешин камсыз кылуу үчүн C1Eди өчүрүңүз.
- Системага эң жогорку жеткиликтүү жыштыкта иштөөгө көрсөтмө берүү үчүн негизги жыштыкты максимумга коюңуз.
- Dell платформаларында CPU өзөктөрүнүн так жана болжолдуу картасын камсыз кылуу үчүн Multiple APIC Description Table (MADT) негизги эмуляциясын Linear (же BIOS'го жараша Round-Robin) кылып коюңуз.
Оптимизацияланган аткаруу үчүн сунушталган ОС деңгээлиндеги тюнингдер
- CPU жыштыгын масштабдоо башкаруучусун аткарууга орнотуңуз. cpupower жыштыгы-коюлган -g аткаруу cpupower жыштыгы-info
- C-мамлекеттерин өчүрүү. cpupower бош орнотулган -D0
- Негизги Rx (rmem) жана Tx (wmem) буферлерин максималдуу мааниге коюңуз. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Тармак түзмөгүнүн артта калган тизмесин коюу. sysctl -w net.core.netdev_max_backlog=8192
- Тандалган проfile (жумуш жүгү өткөрүү жөндөмдүүлүгүнө/кечигүүгө көз каранды).
tuned-adm profile тармак өткөрүү
Оптимизацияланган аткаруу үчүн сунушталган адаптер деңгээлиндеги тюнингдер
- Колдонмонун трафиги үчүн колдонуу үчүн кезектердин санын чектөө. Кошумча процессор өзөктөрүн активдештирүү үчүн талап кылынган кезектердин минималдуу санын колдонуңуз, алардын тереңирээк бош абалына кирүүсүн болтурбоо (жумуш жүгүн тууралоо): ethtool -L бириккен 32
- Үзгүлтүктөрдү модерациялоо тарифтерин коюу. ethtool -C adaptive-rx өчүк adaptive-tx өчүк rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Иш жүктөмүнүн оптималдуу маанисин табуу үчүн өткөрүү/кабыл алуу/жогорку приоритеттүү бириктирүү таймерин жогору (80/100/150/200) же төмөн (25/20/10/5) тууралап көрүңүз. - Rx/Tx шакек өлчөмдөрүн коюңуз. эттоол -Г rx 4096 tx 4096
ЭСКЕРТҮҮ
Эгер сиз Rx пакетинин ethtool -S| менен түшүп жатканын көрсөңүз grep drop, шакек өлчөмүн <4096 чейин азайтып көрүңүз. Пакеттер түшүрүлбөгөн жумуш жүгү үчүн оптималдуу маанини табууга аракет кылыңыз. - IRQ Affinity орнотуу. Жергиликтүү өзөктөрдү NICге же белгилүү бир өзөк картасын колдонуңуз (мында # өзөк 1-беттеги 26де коюлган кезектердин санына барабар. systemctl stop irqbalance set_irq_affinity -X жергиликтүү ЖЕ set_irq_affinity -X
5.9.2 AMD EPYC
AMD EPYC процессорлору AMDдин Zen архитектурасына курулган серверлер жана маалымат борборлору үчүн жасалган күчтүү процессорлор. Төмөнкү орнотуулар AMDдин 4-муундагы EPYC сериясынан.
Эң жогорку өндүрүмдүүлүк үчүн сунушталган BIOS орнотуулары
- Колдонуучуларга CPU өндүрүмдүүлүгүн, кубат керектөөсүн жана башка жөндөөлөрдү тууралоого уруксат берүү үчүн ыңгайлаштырылган режимди иштетиңиз. Бул аткаруу жана энергияны үнөмдөөнүн ортосундагы эң жакшы баланс үчүн системаны тактоодо жардам берет.
- Процессордун интенсивдүү тапшырмаларды аткаруу үчүн ылдамдыгын автоматтык түрдө жогорулатууга мүмкүндүк берүү үчүн негизги өндүрүмдүүлүктү жогорулатууну күйгүзүп, жалпы өндүрүмдүүлүктү жакшыртыңыз.
- Процессордун жооп берүү жөндөмдүүлүгүн сактай турган C-мамлекеттери деп аталган тереңирээк энергия үнөмдөөчү абалга кирүүсүн алдын алуу үчүн глобалдык C абалын башкарууну өчүрүңүз.
ЭСКЕРТҮҮ
C-мамлекеттерин өчүрүү кошумча энергия керектелишине жана жылуулук температурасынын жогорулашына алып келиши мүмкүн. Жумуштун жүгүн тең көзөмөлдөңүз. - Иш жүктөө талабына жана аткаруу максаттарына жараша CPUда бир убактагы көп агымды (SMT) иштетүү/өчүрүү. SMT Intel процессорлорундагы Hyper Threadingге барабар.
ЭСКЕРТҮҮ
Оптималдаштырылган аткаруу үчүн, сунушталган OS жана адаптер деңгээлин жөндөө үчүн 40-беттеги i13e драйверинин жөндөөлөрүн тюнинг жана 40-беттеги Платформаны жөндөө (i19e атайын эмес) караңыз.
Адаптерди бириктирүү
Linux байланышы сервердик чөйрөлөрдө тармактын иштешин, ашыкча жана каталарга чыдамкайлыгын олуттуу жакшыртуучу күчтүү функция. Бирок, ал туура иштеши үчүн серверде да, коммутатордо да шайкеш келген тармак жабдыктарын жана туура конфигурацияны талап кылаарын белгилей кетүү маанилүү.
Linux'тагы байланыш драйвери бир нече физикалык тармак интерфейстерин бириктирилген интерфейске бириктирүүгө мүмкүндүк берет. Бул бириктирилген интерфейс операциялык тутумга жана тиркемелерге бирдиктүү виртуалдык тармак интерфейси катары көрүнөт.
ЭСКЕРТҮҮ
Байланыш логикалык интерфейс, ошондуктан CPU жакындыгын түздөн-түз байланыш интерфейсине коюу мүмкүн эмес (мисалы,ample, bond0). Башкача айтканда, ал үзгүлтүктөрдү башкарууну же CPU жакындыгын түз көзөмөлдөй албайт. CPU жакындыгы байланыштын бир бөлүгү болгон негизги интерфейстер үчүн конфигурацияланышы керек.
Байланыш ар бири өзүнүн өзгөчөлүктөрүнө ээ болгон бир нече операциялар режимин камсыз кылат.
Mode | Type |
0 | Раунд Робин |
1 | Active Backup |
2 | XOR |
3 | Берүү |
4 | LACP |
5 | Жүктүн балансын өткөрүп берүү |
6 | Адаптивдүү жүк балансы |
Linux'та байланыш түзүүнүн ар кандай ыкмалары бар. Эң кеңири таралган ыкмалардын бири - тармак конфигурациясын колдонуу fileс (мис. үчүнample, /etc/network/ интерфейстери же /etc/sysconfig/network-scripts/ifcfg-bondX).
Тармак конфигурациясын колдонуу менен конфигурациялоо Files
Төмөнкү кадамдар тармак конфигурациясы аркылуу байланышты түзөт files.
- Байланыштыруу үчүн эки же андан көп NIC портторун тандаңыз (мисалыample, ethX жана ethY)
- NIC конфигурациясын ачыңыз Files талап кылынган NIC интерфейси үчүн /etc/sysconfig/network-scripts/ астында (мисалы,ample, vi ifcfg-ethX жана vi ifcfg-ethY) жана төмөнкү текстти тиркеңиз:
МАСТЕР=байланышN [Эскертүү: N байланыш номерин айтуу үчүн бүтүн сан.] SLAVE=ооба - байланыш тармагын скрипт түзүү file vi /etc/sysconfig/networkscripts/ifcfg-bondN колдонуп, төмөнкү текстти киргизиңиз:
DEVICE=bondN [Эскертүү: N - байланыш номерин көрсөтүү үчүн бүтүн сан] ONBOOT=ооба USERCTL=жок BOOTPROTO=dhcp (же) жок
IPADDR=200.20.2.4 [BOOTPROTO=эч болбосо керек] NETMASK=255.255.255.0 [эгерде BOOTPROTO=эч болбосо керек] NETWORK=200.20.2.0 [BOOTPROTO=эч бири болсо талап кылынат] BROADCAST=200.20.2.255кызыл болсо. BOOTPROTO=жок] BONDING_OPTS=”режим=1мимон=100″
ЭСКЕРТҮҮ
Режим талаптын негизинде 0дөн 6га чейинки каалаган бүтүн сан болушу мүмкүн. - Кызмат тармагын кайра иштетүү же NetworkManager.service systemctl кайра иштетүү аркылуу тармак кызматтарын кайра иштетиңиз
Performance Troubleshooting
7.1 CPU колдонуу
Жумуш жүгү иштеп жатканда бир ядронун CPU колдонулушун текшериңиз.
Көңүл буруңуз, бир өзөктү колдонуу жалпы CPU колдонууга караганда өндүрүмдүүлүккө көбүрөөк тиешелүү, анткени ал тармак кезегинде CPU колдонуу идеясын берет. Эгер сизде тармак трафигин башкарган бир нече жиптер болсо, анда сизде бир нече өзөктөр гана колдонулушу мүмкүн. Бирок, эгерде бул өзөктөр 100% болсо, анда сиздин тармагыңыздын өткөрүү жөндөмдүүлүгү CPU колдонуу менен чектелиши мүмкүн жана төмөндөгүлөрдү аткарууга убакыт келди:
- IRQ модерациясын/шакек өлчөмүн Үзгүлтүккө учуроодо деталдаштырып коюңуз.
- Процессордун жүгүн көбүрөөк өзөктөргө жайылтуу үчүн колдонмо жиптеринин санын көбөйтүңүз. Эгерде бардык өзөктөр 100% иштеп жатса, анда сиздин колдонмоңуз тармакка эмес, CPU менен байланышкан болушу мүмкүн.
Жалпы жеткиликтүү куралдар:
- үстү
— Процессорлордун тизмесин кеңейтүү жана кайсынысы колдонулуп жатканын текшерүү үчүн 1ди басыңыз.
— Пайдалануунун децгээлин байкап.
— Кайсы процесстер эң активдүү деп саналганына көңүл буруңуз (тизменин башында). - mpstat
Кийинки эксample буйрук сабы Red Hat Enterprise Linux 7.x боюнча сыналган.
Ал бир өзөк үчүн CPU колдонууну көрсөтөт (жалпы иштебей турган пайызды таап, 100дөн кемитүү менен) жана 80%дан жогору маанилерди кызыл менен баса белгилейт. mpstat -P ALL 1 1 | grep -v Орточо | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][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 CPU буферлерди жетиштүү тез тейлебей жатканын билдирет.
- port.rx_dropped бир нерсе slot/memory/ тутумунда жетиштүү ылдам эмес дегенди билдирет.
7.3 Тармак эсептегичтери
Жумуш жүгүн иштетүүгө чейин/кийин netstat -s текшериңиз.
Netstat тутумдагы бардык тармак түзмөктөрүнөн тармак маалыматын чогултат. Демек, натыйжаларга сыналып жаткан тармактан башка тармактар таасир этиши мүмкүн. netstat -s натыйжасы Linux операциялык тутумундагы же ядродогу иштөө маселелеринин жакшы көрсөткүчү болушу мүмкүн. Жалпы операциялык тутумду жөндөө боюнча көбүрөөк маалымат алуу үчүн, Red Hat Enterprise Linux Network Performance Tuning Guide сыяктуу операциялык системаны жөндөө боюнча көрсөтмөлөргө кайрылыңыз.
7.4 Системалык журналдар
Тутум журналдарын каталар жана эскертүүлөр үчүн текшериңиз (/var/log/messages, dmesg).
7.5 Intel svr-info куралы
Intel svr-info куралын камсыз кылат (кара https://github.com/intel/svr-info) серверден тиешелүү аппараттык жана программалык деталдарды камтыган Linux үчүн. svr-info чыгышы системанын тоскоолдуктарын же жумуш жүгү үчүн оптималдаштырылбаган орнотууларды/тюнингдерди аныктоо үчүн абдан пайдалуу болушу мүмкүн. Ethernet менен байланышкан иштөө маселелери боюнча Intel менен колдоо кутусун ачканда, svr-info чыгышын (текст) кошуңуз. file) сыноо конфигурациясындагы ар бир Linux сервери үчүн.
- svr-info жүктөп алып, орнотуу:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Чыгууларды чогултуу:
./svr-info > hostname.txt - Бир текстти (.txt) тиркеңиз file талдоо үчүн ар бир сервер үчүн Intel колдоо ишиңизге.
Жалпы аткаруу сценарийлери боюнча сунуштар
8.1 IP багыттоо
- Өзөктү жаңыртыңыз.
Кээ бир акыркы дистрибуциядагы өзөктөр коопсуздуктан улам маршруттук кэш өчүрүлгөндөн баштап маршруттук коддун ядросунун өзгөрүшүнө байланыштуу маршрутташтыруу иштешин начарлатты. Дистродон чыгарылган акыркы ядролордо бул өзгөрүүлөрдүн эффективдүүлүгүн жеңилдеткен жана жакшыртылган аткарууну камсыз кылган тактар болушу керек. - Hyper-threading (логикалык өзөктөрдү) өчүрүү.
- Ядронун жүктөө параметрлерин түзөтүңүз.
— Виртуалдаштыруу үчүн талап кылынбаса, ядронун жүктөө линиясынан iommu өчүрүү (intel_iommu=өчүрүү же iommu=өчүрүү)
— Кубат башкарууну өчүрүү: processor.max_cstates=1 idle=poll pcie_aspm=off - Кезектердин санын жергиликтүү розеткадагы өзөктөрдүн санына барабар кылып чектеңиз (мында 12ample). ethtool -L ethX бириктирилген 12
- Кадоо жергиликтүү розеткага гана үзгүлтүккө учурайт. set_irq_affinity -X жергиликтүү ethX ЖЕ set_irq_affinity -X жергиликтүү ethX
ЭСКЕРТҮҮ
-X же -x жумуштун жүгүнө жараша колдонулушу мүмкүн. - Tx жана Rx шакек өлчөмдөрүн зарылчылыкка жараша өзгөртүңүз. Чоңураак маани көбүрөөк ресурстарды талап кылат, бирок жакшыраак жөнөтүү ылдамдыгын камсыздай алат. ethtool -G ethX rx 4096 tx 4096
- Багыттоодо GRO өчүрүү.
Белгилүү өзөк маселесине байланыштуу, GRO багыттоо/багыттоодо өчүрүлүшү керек. ethtool -K ethX gro өчүрүлгөн жерде ethX өзгөртүлүүчү Ethernet интерфейси. - Адаптивдүү үзгүлтүктү модерациялоону өчүрүп, статикалык маанини коюңуз. ethtool -C ethX adaptive-rx өчүрүү 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 Төмөнкү кечигүү
- Hyper-threading (логикалык өзөктөрдү) ӨЧҮРҮҮ.
- Тармак түзмөгү 0 numa core локалдуу экенин текшериңиз.
- Taskset -c 0 аркылуу эталонду 0 өзөккө кадап коюңуз.
- systemctl stop irqbalance аркылуу irqbalance өчүрүү же systemctl irqbalance өчүрүү
- Өзөктөр боюнча жайылтуу үчүн жакындык скриптин иштетиңиз. Жергиликтүү же бардыгын колдонуп көрүңүз.
- Үзгүлтүксүз модерацияны өчүрүү. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx өчүк adaptive-tx өчүк rxusecs- жогорку 0
- Кезектердин чектүү саны жергиликтүү розеткадагы өзөктөрдүн санына барабар болушу керек (мында 32ample). 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 Performance Tuning Guide
декабрь 2024
Док. №: 334019, Аян: 1.2
Документтер / Ресурстар
![]() |
Intel Ethernet 700 Series Linux Performance Tuning [pdf] Колдонуучунун колдонмосу 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |