Intel ® Ethernet 700 Series
Linux Performans Tuning Bələdçisi
NEX Bulud Şəbəkə Qrupu (NCNG)
Vəhy 1.2
dekabr 2024
Təftiş Tarixçəsi
Reviziya | Tarix | Şərhlər |
1.2 | dekabr 2024 | · Əlavə Güc İdarəetmə Rəhbərliyi. · Əlavə edilmiş Intel* Turbo Boost. · Əlavə edilmiş Şəbəkə Qurğularının İş Qrupu. · Əlavə edilmiş Platformaya Xüsusi Konfiqurasiyalar və Tuning. · Əlavə edilmiş 4-cü Nəsil Intel* %eon* Ölçəklənən Prosessorlar. · Əlavə edilmiş AMD EPYC. · Yenilənmiş Yoxlama Sistemi Avadanlıq İmkanları. · Yenilənmiş iPerf2. · Yenilənmiş iPerf3. · Yenilənmiş Tx/Rx növbələri. · Yenilənmiş Kəsmə Moderasiyası. · Yenilənmiş Üzük Ölçüsü. · Yenilənmiş Platformanın Tuningi (i40e Qeyri-spesifik). · Yenilənmiş BIOS Parametrləri. · Yenilənmiş C-Dövlət Nəzarəti. · Yenilənmiş CPU Tezlik Ölçüsü. · Yenilənmiş Proqram Parametrləri. · Yenilənmiş Əməliyyat Sistemi/Kernel Parametrləri. · Yenilənmiş IP Yönləndirmə. · Yenilənib Aşağı Gecikmə. |
2023-cü ilin avqustu | Bu sənədə edilən dəyişikliklər aşağıdakıları əhatə edir: · Əlavə edilmiş Əlaqələr. · Əlavə edilib DDP Paketinin Düzgün Yükləndiyinə əmin olun. · iPerf2 əlavə edildi. · iPerf3 əlavə edildi. · Əlavə edilmiş netperf. · Yenilənmiş IRQ Yaxınlığı. · Əlavə edilmiş Tx/Rx növbələri. · Yenilənmiş Üzük Ölçüsü. · Əlavə edilmiş Jumbo Çərçivələr. · Added Adapter Bonding. · Əlavə edilmiş Intel svr-info Aləti. |
|
1.0 | Mart 2016 | İlkin buraxılış (Intel Public). |
Giriş
Bu təlimat Linux mühitlərində Intel ® Ethernet 700 Series NIC-lərdən istifadə edərək optimal şəbəkə performansı üçün mühitləri sazlamaq üçün təlimat vermək üçün nəzərdə tutulub. O, şəbəkə performansını yaxşılaşdıra biləcək avadanlıq, sürücü və əməliyyat sistemi şərtlərinə və parametrlərinə diqqət yetirir. Qeyd etmək lazımdır ki, şəbəkə performansına istənilən sayda kənar təsirlər təsir edə bilər, onlardan yalnız ən ümumi və dramatik olanları bu təlimatda əhatə olunub.
1.1 Əlaqədar İstinadlar
- Windows və Linux-u dəstəkləyən bütün Intel ® Ethernet adapterləri və cihazları üçün İstifadəçi Təlimatı:
Intel ® Ethernet Adapterləri və Cihazları İstifadəçi Təlimatı - Texniki məlumat cədvəli:
Intel ® Ethernet Controller X710/XXV710/XL710 Məlumat vərəqi - Bütün Intel ® Ethernet məhsulları üçün tam SW paketi (bütün drayverləri, NVM-ləri, alətləri və s. endirin):
Intel ® Ethernet Adapter Tam Sürücü Paketi - NVM (Qeyri-Uçucu Yaddaş) Yeniləmə Paketi:
Intel ® Ethernet Network Adapter 700 Series üçün Qeyri-Uçucu Yaddaş (NVM) Yeniləmə Utiliti - Serverdən müvafiq aparat və proqram təminatı təfərrüatlarını çəkən Linux üçün svr-info aləti: https://github.com/intel/svr-info
- DDP Texnologiya Bələdçisi:
Intel ® Ethernet 700 Series Dynamic Device Personalization (DDP) Texnologiya Bələdçisi
İlkin Yoxlama Siyahısı
2.1 Sürücü/Firmware Versiyalarını Yeniləyin
ethtool -i ethx istifadə edərək sürücü/firmware versiyalarını yoxlayın.
Lazım olduqda aşağıdakıları yeniləyin:
- I40e sürücüsünü yeniləyin
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 - Mikroproqramı yeniləyin
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 README-ni oxuyun
Məlum problemləri yoxlayın və README-dən ən son konfiqurasiya təlimatlarını əldə edin file i40e mənbə paketinə daxildir.
2.3 PCI Express (PCIe) yuvanızın x8 olduğunu yoxlayın
Bəzi PCIe x8 yuvaları əslində x4 yuvaları kimi konfiqurasiya edilmişdir. Bu slotların ikili port və dörd portlu cihazlarla tam xətt sürəti üçün kifayət qədər bant genişliyi yoxdur. Bundan əlavə, əgər siz PCIe v3.0-a malik adapteri PCIe v2.x yuvasına yerləşdirsəniz, tam ötürmə qabiliyyəti əldə edə bilməzsiniz. Proqram cihazının sürücüsü bu vəziyyəti aşkar edir və sistem jurnalına aşağıdakı mesajı yazır:
Bu kart üçün mövcud olan PCI-Express bant genişliyi optimal performans üçün kifayət deyil. Optimal performans üçün x8 PCI-Express yuvası tələb olunur.
Bu xəta baş verərsə, problemi həll etmək üçün adapterinizi əsl PCIe v3.0 x8 yuvasına köçürün.
2.4 Sistemin Avadanlıq imkanlarını yoxlayın
10 Gbps, 25 Gbps və 40 Gbps Ethernet-də bəzi minimum CPU və sistem tələbləri var. Ümumiyyətlə, müasir server sinif prosessoru və platformanız üçün optimal yaddaş konfiqurasiyası kifayət olmalıdır, lakin ehtiyaclar iş yükünüzdən asılı olaraq dəyişir. Bütün yaddaş kanalları doldurulmalı və BIOS-da yaddaş performansı rejimi aktivləşdirilməlidir. CPU və yaddaş konfiqurasiyanızın iş yükünüz üçün tələb etdiyiniz şəbəkə performansı səviyyəsini dəstəkləməyə qadir olduğunu yoxlayın.
QEYD
XL710 40 GbE nəzarətçidir. Bu nəzarətçidən istifadə edən 2 x 40 GbE adapter 2 x 40 GbE deyil, aktiv ehtiyat portu olan 1 x 40 GbE üçün nəzərdə tutulub. Hər iki portu əhatə edən xətt sürəti trafikindən istifadə etməyə cəhd edərkən, daxili keçid doymuş olur və iki port arasında birləşmiş bant genişliyi cəmi SO Gbps ilə məhdudlaşır.
2.4.1 Kernel Boot Parametrləri
Directed I/O üçün Intel® Virtualizasiya Texnologiyası (Intel® VT-d) BIOS-da aktivləşdirilibsə, Intel optimal host şəbəkə performansı üçün IOMMU-nun keçid rejimində olmasını tövsiyə edir. Bu, Virtual Maşınların (VM-lər) hələ də Intel® VT-d üstünlüklərinə malik olmasını təmin etməklə yanaşı, host trafikində DMA yükünü aradan qaldırır. Bu, nüvə açılış parametrlərinə aşağıdakı sətri əlavə etməklə həyata keçirilir: fommu-pt.
2.5 DDP Paketinin Düzgün Yükləndiyinə əmin olun
140ea və 140eb əsas drayverlərinin Dinamik Cihaz Fərdiləşdirməsi (DDP) üçün birbaşa dəstəyi yoxdur. 700 Series cihazları ilə DDP-dən istifadə etmək üçün DDP profile testpmd tətbiqi ilə tətbiq oluna bilər.
DDP pro haqqında ətraflı məlumat üçünfiles və DDP pro-nu necə tətbiq etmək olarfile 700 Series cihazlarda testpmd ilə Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) Texnologiya Bələdçisinə baxın.
DDP pro olub olmadığını yoxlamaq üçünfile uğurla yükləndi:
testpmd> ddp almaq siyahısı 0 Profile sayı: 1
QEYD
Əgər profile nömrə 0-dır, heç bir DDP paketi yüklənmir. DDP paketinin yüklənməsi xətası baş verdikdə, cihaz defolt olaraq təhlükəsiz rejimə keçir və bir çox performans xüsusiyyətləri mövcud deyil. DDP paketinin yüklənməsi ilə bağlı xətalar olarsa, bu, performans problemlərinə səbəb olacaq. Problemlərin aradan qaldırılması addımları üçün Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) Texnologiya Bələdçisinə baxın.
Baza Performans Ölçmələri və Tuning Metodologiyası
3.1 Şəbəkə Performansı Qiymətləndirmələri
Tuning məşqinə başlamazdan əvvəl, şəbəkə performansınızın yaxşı əsas ölçülməsi vacibdir. Adətən xüsusi tətbiqinizin/iş yükünüzün performansının ilkin ölçülməsini əldə etməklə yanaşı, şəbəkə cihazınızın yaxşı vəziyyətdə olduğunu yoxlamaq üçün standart şəbəkə performans göstəricisindən də istifadə etmək yaxşı fikirdir.
Tək sistemin optimallaşdırılması üçün, netperf və ya iperf və NetPIPE əlaqəni vurğulamağa və performans problemlərini diaqnoz etməyə imkan verən açıq mənbədən azad alətlərdir.
Netperf həm ötürmə qabiliyyəti, həm də gecikmə testi üçün güclüdür. NetPIPE gecikmə üçün xüsusi alətdir, lakin istənilən mühit üçün tərtib edilə bilər.
QEYD
Netperf-də TCP_RR testi əməliyyatlar/san dəyərində gecikməni qaytarır. Bu, gediş-gəliş nömrəsidir. Birtərəfli gecikmə aşağıdakı tənlikdən istifadə edərək hesablana bilər:
Gecikmə(istifadə) = (1⁄2) / [Əməliyyatlar/san] * 1,000,000
3.1.1 iPerf2
İstifadə asanlığı və tək tətbiq instansiyasında çoxlu iplik dəstəyi sayəsində Intel əksər müqayisəli vəziyyətlər üçün iperf2-ni iperf3 üzərindən tövsiyə edir. Intel 2G bağlantıları üçün 4-25 yivli və 4G bağlantıları üçün təxminən 6-40 yivli -P seçimi ilə işləməyi tövsiyə edir.
- Müştəridən serverə bir istiqamətli trafiki idarə etmək üçün: Server əmri məsələnample: iperf2 -s
Müştəri əmri məsələnample: iperf2 -c -P - Müştəridən serverə (və əksinə) iki istiqamətli trafiki idarə etmək üçün: Server əmri məsələnample: iperf2 –s –s
Müştəri əmri məsələnample:
iperf2 -c -səh -P -–tam dupleks OR
iperf2 -c -səh -P –d
QEYD
İperf2-də həm –full-duplex, həm də –d variantları istifadəçiyə iki istiqamətli sınaq keçirməyə imkan verir. Bununla belə, tam dupleks seçimi xüsusi olaraq tam dupleks testinə diqqət yetirir.
QEYD
İperf2-ni çoxsaylı server portları üzərində sınaqdan keçirərkən, eyni terminal pəncərəsindən arxa planda bütün server seanslarını işə salmaq üçün server əmrinə -d bayrağı əlavə edilə bilər. -d bayrağı server əmri skriptdə for-dövrəsinə daxil edildikdə də istifadə edilə bilər.
QEYD
Şəbəkə ötürmə qabiliyyəti testini tək axın/ip ilə işləyərkən (məsample: P1), AMD prosessorları gözlənilən ötürmə qabiliyyətini, xüsusən daha yüksək bant genişliyi NIC-ləri (sürət >= 25G bant genişliyidirsə) təmin etməyə bilər. Nəticədə, daha yüksək ötürmə qabiliyyətinə nail olmaq üçün tətbiqin xüsusi nüvələrə bağlanması tələb olunur. Baxın Tətbiq Parametrləri səhifə 22.
3.1.2 iPerf3
İperf3 istifadə edilərsə, tətbiqin bir neçə nümunəsi qabaqcadan qəbul edilməlidirtage çox mövzulu, RSS və aparat növbələri. Intel 2G bağlantıları üçün 4-25 proqram seansı və 4G bağlantıları üçün təxminən 6-40 seans ilə işləməyi tövsiyə edir. Hər sessiya -p seçimindən istifadə edərək unikal TCP port dəyərini təyin etməlidir.
- Müştəridən serverə bir istiqamətli trafiki idarə etmək üçün:
Server əmri məsələnample:
iperf3 -s -s
Müştəri əmri məsələnample:
iperf3 -c -səh - Müştəridən serverə (və əksinə) iki istiqamətli trafiki idarə etmək üçün:
Server əmri məsələnample:
iperf3 –s –s
Müştəri əmri məsələnample: iperf3 -c -səh -P –-bidir - İperf3-ün çoxsaylı nümunələrini (iplərini) işə salmaq üçün tövsiyə, ipləri TCP portlarına uyğunlaşdırmaq üçün for-loopdan istifadə etmək və paralel olaraq çoxsaylı proseslər yaratmaq üçün & istifadə edərək iperf3-ü fonda işə salmaqdır.
Server əmri məsələnample, 4 mövzuya başlayın: port=””; i üçün {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; görüldü; Müştəri əmri məsələnample, 4 mövzuya başlayın – Test portunu ötürün =””; i üçün {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; görüldü; Müştəri əmri məsələnample, 4 mövzuya başlayın – Test portunu qəbul edin=””; i üçün {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; görüldü; 40G bağlantıları üçün 6 misal/iplik yaratmaq üçün for-loopu artırın.
QEYD
Şəbəkə ötürmə qabiliyyəti testini tək axın/ip ilə işləyərkən (məsample: P1), AMD prosessorları gözlənilən ötürmə qabiliyyətini, xüsusilə də daha yüksək bant genişliyini təmin etməyə bilər
NIC-lər (sürət >= 25G bant genişliyidirsə). Nəticədə, daha yüksək ötürmə qabiliyyətinə nail olmaq üçün tətbiqin xüsusi nüvələrə bağlanması tələb olunur. Baxın Tətbiq Parametrləri səhifə 22 və AMD EPYC səhifə 26.
3.1.3 netperf
Netperf aləti həm ötürmə qabiliyyəti, həm də gecikmə testi üçün güclü seçimdir.
- Netperf-də TCP_STREAM testi cihazın ötürmə qabiliyyətini ölçür. Server əmri məsələnample: netserver Müştəri əmri, məsələnample: netperf -t TCP_STREAM -l 30 -H
- Netperf-də TCP_RR testi əməliyyatlar/saniyə dəyərində gecikməni qaytarır. Bu, gediş-gəliş nömrəsidir. -T x,x seçimindən istifadə etmək tövsiyə olunur, əgər x cihaz üçün lokal CPUdur. Birtərəfli gecikmə aşağıdakılardan istifadə etməklə hesablana bilər: Latency(usec)=(1⁄2)/ [Transactions/san]*1,000,\ Server əmri ör.ample: netserver
Müştəri əmri məsələnample: netperf -t TCP_RR -l 30 -H -T x,x - Netperf-in çoxsaylı misallarını (iplərini) işə salmaq üçün tövsiyə olunur ki, paralel olaraq çoxlu proseslər yaratmaq üçün & istifadə edərək fonda ipləri TCP portlarına uyğunlaşdırmaq və netperf-i işə salmaq üçün for-loopdan istifadə edin.
Server əmri məsələnample, 8 mövzuya başlayın:
port =””; i üçün {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; görüldü;
Müştəri əmri məsələnample, 8 mövzuya başlayın: port=””; i üçün {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; görüldü;
3.2 Sazlama metodologiyası
Hər dəfə bir tənzimləmə dəyişikliyinə diqqət yetirin ki, hər dəyişikliyin testinizə hansı təsir göstərdiyini biləsiniz. Tuning prosesində nə qədər metodik olsanız, performans darboğazlarının səbəblərini müəyyən etmək və aradan qaldırmaq bir o qədər asan olacaq.
i40e Sürücü Parametrlərinin tənzimlənməsi
4.1 IRQ yaxınlığı
Fərqli şəbəkə növbələri üçün kəsilmələrin müxtəlif CPU nüvələrinə uyğunlaşdırılması üçün IRQ yaxınlığının konfiqurasiyası performansa, xüsusən də çoxillik ötürmə testlərinə böyük təsir göstərə bilər.
IRQ yaxınlığını konfiqurasiya etmək üçün irqbalance-i dayandırın və sonra i40e mənbə paketindən set_irq_affinity skriptindən istifadə edin və ya növbələri əl ilə bağlayın. Növbənin bərkidilməsini aktivləşdirmək üçün istifadəçi sahəsi IRQ balanslaşdırıcısını deaktiv edin:
- systemctl irqbalance-i söndürün
- systemctl irqbalance-i dayandırın
i40e mənbə paketindən set_irq_affinity skriptindən istifadə (tövsiyə olunur): - Bütün nüvələrdən istifadə etmək üçün:
[i40epackage yolu]/scripts/set_irq_affinity -X bütün ethX - Yerli NUMA yuvasında yalnız nüvələrdən istifadə etmək üçün: [path-to-i40epackage]/scripts/set_irq_affinity -X yerli ethX
- Siz həmçinin bir sıra nüvələr seçə bilərsiniz. Cpu0-dan istifadə etməyin, çünki o, taymer tapşırıqlarını yerinə yetirir. [i40epackage yolu]/scripts/set_irq_affinity 1-2 ethX
QEYD
Yaxınlıq skripti, -x seçimi təyin edildikdə, bağlama prosesinin bir hissəsi kimi Ötürmə Paket Sükanı (XPS) funksiyasını işə salır. XPS aktivləşdirildikdə, Intel sizə irqbalance-i söndürməyi tövsiyə edir, çünki XPS ilə nüvə balanslaşdırıcısı gözlənilməz performansa səbəb ola bilər. -X seçimi təyin edildikdə, yaxınlıq skripti XPS-i söndürür. XPS-i söndürmək və simmetrik növbələri aktivləşdirmək Tx və Rx trafikinə eyni növbə cütlərində xidmət göstərildikdə ən yaxşı performansın əldə edildiyi iş yükləri üçün faydalıdır.
Linux-da simmetrik növbələrin konfiqurasiyası dəstəklənən şəbəkə adapterləri üçün simmetrik qəbul növbələrini (Rx) və simmetrik ötürmə növbələrini (Tx) aktivləşdirmək üçün şəbəkə interfeysi sürücüsü parametrlərinin tənzimlənməsini nəzərdə tutur.
QEYD
- Simmetrik növbələr inkişaf etmiş şəbəkə xüsusiyyətidir və 700 seriyalı şəbəkə adapterləri və ya sürücülərinin hamısı onları dəstəkləmir.
- Simmetrik növbələri konfiqurasiya etməyə cəhd etməzdən əvvəl lazımi sürücü və aparat dəstəyinə malik olduğunuzdan əmin olun.
Simmetrik növbələri konfiqurasiya etmək üçün bu ümumi addımları yerinə yetirin:
- Şəbəkə interfeysi konfiqurasiyasını redaktə edin File: Mətn redaktorundan istifadə edin (məsample, vi, nano və ya gedit) şəbəkə interfeysi konfiqurasiyasını redaktə etmək üçün file. The file adətən /etc/sysconfig/network-scripts/ kataloqunun altında yerləşir və ifcfg-ethX kimi bir ada malikdir, burada ethX şəbəkə interfeysinizin adıdır.
- Simmetrik növbə parametrləri əlavə edin. Şəbəkə interfeysi konfiqurasiyasına aşağıdakı sətirləri əlavə edin file: ETHTOOL_OPTS=”rx-növbələr 8 tx-növbələr 8”
- Şəbəkə Xidmətini yenidən başladın.
Dəyişiklikləri etdikdən sonra yeni konfiqurasiyanı tətbiq etmək üçün şəbəkə xidmətini yenidən başladın. sudo systemctl şəbəkəsini yenidən başladın
Əl ilə:
-
Hər bir node-a qoşulmuş prosessorları tapın: numactl –hardware lscpu
-
Prosessorların hər biri üçün bit maskalarını tapın:
- Düyün 0 üçün 11-0 nüvələri fərz etsək: [1,2,4,8,10,20,40,80,100,200,400,800]
- Təyin olunan porta təyin edilmiş IRQ-ları tapın: grep ethX /proc/interrupts və IRQ dəyərlərini qeyd edinample, yüklənmiş 181 vektor üçün 192-12.
- SMP yaxınlıq dəyərini müvafiq IRQ girişinə əks etdirin. Qeyd edək ki, bu, hər IRQ girişi üçün edilməlidir: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity IRQ yaxınlığını göstər:
- Bütün nüvələr üçün IRQ yaxınlığını göstərmək üçün: /scripts/set_irq_affinity -s ethX
- Yalnız yerli NUMA yuvasında nüvələri göstərmək üçün: /scripts/set_irq_affinity -s yerli ethX
- Siz həmçinin bir sıra nüvələr seçə bilərsiniz: /scripts/set_irq_affinity -s 40-0-8,16 ethX
QEYD
set_irq_affinity skripti i40e driver 2.16.11 və sonrakı versiyalarında -s bayrağını dəstəkləyir.
4.2 Tx/Rx növbələri
Başlama zamanı sürücü tərəfindən hər bir Ethernet portu üçün aktivləşdirilmiş növbələrin standart sayı platformada mövcud olan CPU-ların ümumi sayına bərabərdir. Bu, bir çox platformalar və iş yükü konfiqurasiyaları üçün yaxşı işləyir. Bununla belə, yüksək nüvə sayı və/və ya yüksək Ethernet port sıxlığı olan platformalarda bu konfiqurasiya resurs mübahisəsinə səbəb ola bilər. Buna görə də, bəzi hallarda sistemdəki hər bir port üçün standartı dəyişdirmək lazım ola bilər.
Tx/Rx növbələrinin standart sayı xüsusi model və sürücü versiyasından asılı olaraq dəyişə bilər. Növbələrin sayı aşağıda sadalanan ethtool -L əmrindən istifadə etməklə tənzimlənə bilər.
QEYD
Bu hallarda, Intel hər bir port üçün standart növbə sayını adapter portunda lokal olan NUMA node-da mövcud olan CPU sayından çox olmamağı tövsiyə edir. Bəzi hallarda, yüksək port sayı tətbiqlərində resursları balanslaşdırmağa cəhd edərkən, bu sayı daha da azaltmaq lazım ola bilər.
Növbə konfiqurasiyasını dəyişdirmək üçün:
Aşağıdakı keçmişample portu 32 Tx/Rx növbəsinə təyin edir: ethtool -L ethX birləşdirilmiş 32
Exampçıxış:
ettool -l ethX
ethX üçün kanal parametrləri: Əvvəlcədən təyin edilmiş maksimumlar:
RX: 96
TX: 96
Digər: 1
Birləşdirilmiş: 96
Cari aparat parametrləri:
RX: 0
TX: 0
Digər: 1
Birləşdirilmiş: 32
4.3 Moderasiyanın kəsilməsi
Adaptiv kəsmə moderasiyası defolt olaraq aktivdir və aşağı CPU istifadəsi ilə yüksək performans arasında balanslaşdırılmış yanaşma təmin etmək üçün nəzərdə tutulmuşdur. Bununla belə, istifadə vəziyyətinizə uyğunlaşdırmaq üçün kəsmə parametrlərini əl ilə tənzimləməyə cəhd edə bilərsiniz.
0-235 mikrosaniyə diapazonu saniyədə 4,310-dan 250,000-ə qədər kəsilmənin effektiv diapazonunu təmin edir. rx-μsecs-high dəyəri eyni ettool əmrində rx-μsecs və tx-μsecs-dən asılı olmayaraq təyin edilə bilər və həmçinin adaptiv kəsilmənin moderasiyası alqoritmindən asılı deyil. Əsas aparat 2 mikrosaniyəlik intervallarda qranulyarlığı dəstəkləyir, ona görə də bitişik dəyərlər eyni kəsmə sürəti ilə nəticələnə bilər.
- Adaptiv kəsmə moderasiyasını söndürmək üçün: ethtool -C ethX adaptive-rx off adaptive-tx off
- Adaptiv kəsmə moderasiyasını aktiv etmək üçün: ethtool -C ethX adaptive-rx on adaptive-tx on
Ümumi tənzimləmə üçün başlamaq üçün yaxşı yer 84 μs və ya ~12000 fasilə/s-dir. Trafik zamanı (ethtool -S ethX istifadə edərək) rx_dropped sayğaclarının işlədiyini görsəniz, ehtimal ki, CPU-nuz çox yavaşdır, paketləri 84 μs və ya aşağı kəsilmə sürətində saxlamaq üçün adapterin halqa ölçüsündən (ethtool -G) kifayət qədər bufer yoxdur.
- Kesinti moderasiyasını kəsmələr arasında 84 μs sabit kəsmə sürətinə təyin etmək üçün (12000 kəsilmə/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Əgər siz CPU62 μs istifadəsini maksimum istifadə etməmisinizsə, sınanacaq növbəti dəyərdir. Bu, daha çox CPU istifadə edir, lakin buferlərə daha sürətli xidmət edir və daha az deskriptor tələb edir (ring ölçüsü, ettool -G).
- Kesinti moderasiyasını kəsilmələr arasında 62 istifadənin sabit kəsilmə sürətinə təyin etmək (16000 kəsilmə/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Trafik zamanı rx_dropped sayğacları artarsa (ethtool -S ethX istifadə edərək), çox güman ki, CPU-nuz çox yavaşdır, adapterin üzük ölçüsündən (ethtool -G) kifayət qədər bufer yoxdur və ya kəsilmə sürəti çox aşağıdır. Əgər CPU-dan maksimum istifadə etməmisinizsə, ITR dəyərini aşağı salmaqla kəsilmə sürətini artıra bilərsiniz. Bu, daha çox CPU istifadə edir, lakin xidmətlər daha sürətli buferlənir və daha az deskriptor tələb edir (ring ölçüsü, ettool -G).
Əgər CPU 100% səviyyəsindədirsə, kəsmə sürətini artırmaq məsləhət görülmür. CPU ilə əlaqəli iş yükü kimi müəyyən hallarda, digər proqramlar üçün daha çox CPU vaxtını aktivləşdirmək üçün μs dəyərini artırmaq istəyə bilərsiniz.
Aşağı gecikmə performansına ehtiyacınız varsa və/yaxud şəbəkə emalına həsr etmək üçün çoxlu CPU-nuz varsa, kəsmə moderasiyasını tamamilə söndürə bilərsiniz ki, bu da kəsmələrin mümkün qədər tez yanmasına imkan verir. - Moderasiya kəsilməsini deaktiv etmək üçün ettool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
QEYD
Kəsmə moderasiyası deaktiv edilmiş halda işləyərkən hər növbə üzrə kəsmə sürəti çox yüksək ola bilər. Kəsmə sürətinə yuxarı həddi təyin etmək üçün rx-usec-high parametrini daxil etməyi düşünün. Aşağıdakı əmr adaptiv kəsmə moderasiyasını deaktiv edir və qəbulun və ya ötürmənin tamamlandığını göstərənə qədər maksimum 5 mikrosaniyə icazə verir. Saniyədə 200,000-ə qədər kəsilmə ilə nəticələnmək əvəzinə, rx-usec-high parametri vasitəsilə saniyədə ümumi kəsilmələri 50,000-ə qədər məhdudlaşdırır. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Ötürmə/qəbul/yüksək prioritet birləşmə taymerini daha yüksək (80/100/150/200) və ya daha aşağı (25/20 iş üçün optimal dəyəri tapmaq/10) tənzimləməyə çalışın.
4.4 Üzük ölçüsü
Ettool -S ethX (rx_dropped, rx_dropped.nic)-də rx_dropped sayğacları görürsünüzsə və ya bir neçə növbə aktiv olan keş təzyiqindən şübhələnirsinizsə, zəng ölçüsünü standart dəyərdən tənzimləməyə cəhd edə bilərsiniz. Varsayılan dəyər 512, maksimum 4096-dır.
- Cari dəyərləri yoxlamaq üçün: ethtool -g ethX
Əgər tamponlamanın olmamasının cari kəsmə sürətinin azalmasına səbəb olduğundan şübhələnirsinizsə, əvvəlcə maksimumu, sonra minimumu sınaya bilərsiniz, sonra optimal performansı görənə qədər ikili axtarışa davam edə bilərsiniz.
Keş təzyiqindən şübhələnirsinizsə (bir çox növbə aktivdir) buferləri defoltdan azaltmaq Intel ® Data Direct I/O (Intel ® DDIO) ilə daha səmərəli işləməyə kömək edə bilər. Intel hər növbə üçün 128 və ya 256-nı sınamağı tövsiyə edir, rx_dropped artımının qarşısını almaq üçün ettool -C vasitəsilə kəsilmə sürətinin artırılmasının lazım ola biləcəyini bilir. - Üzük ölçüsünü sabit dəyərə təyin etmək üçün: ethtool -G eth12 rx 256 tx 256
QEYD
ethtool -S ethX|grep drop ilə aşkar edilən Rx paket düşmələrini düzəltmək üçün zəng ölçüsünü 4096-a qədər artırın. İş yükü üçün ən yaxşı parametri tapmaq üçün sınaqdan keçirin, lakin daha yüksək dəyərlərlə həddindən artıq yaddaş istifadəsinə diqqət yetirin.
4.5 Axına nəzarət
Layer 2 axını nəzarəti TCP performansına əhəmiyyətli dərəcədə təsir göstərə bilər və əksər iş yükləri üçün deaktiv edilməsi tövsiyə olunur. Potensial istisna, partlamaların uzun sürmədiyi partlayışlı trafikdir.
Axına nəzarət defolt olaraq qeyri-aktivdir.
- Axına nəzarəti aktivləşdirmək üçün: ethtool -A ethX rx on tx on
- Axına nəzarəti söndürmək üçün: ethtool -A ethX rx off tx off
QEYD
Axına nəzarəti uğurla aktivləşdirmək üçün axına nəzarət edə bilən link partnyorunuz olmalıdır.
4.6 Jumbo Çərçivələr
Gözlənilən trafik mühiti ötürülən məlumatların böyük bloklarından ibarət olduqda, jumbo çərçivə funksiyasını aktivləşdirmək faydalı ola bilər. Jumbo Çərçivələrin dəstəyi Maksimum Ötürmə Vahidini (MTU) standart dəyərdən 1500-dən daha böyük dəyərə dəyişdirməklə aktivləşdirilir. Bu, cihaza məlumatı şəbəkə mühitində daha böyük paketlərdə ötürməyə imkan verir. Bu parametr ötürmə qabiliyyətini yaxşılaşdıra və böyük I/O iş yükləri üçün CPU istifadəsini azalda bilər. Bununla belə, bu, kiçik paket və ya gecikməyə həssas iş yüklərinə təsir göstərə bilər.
QEYD
Jumbo çərçivələr və ya daha böyük MTU parametrləri şəbəkə mühitinizdə düzgün şəkildə konfiqurasiya edilməlidir.
MTU ölçüsünü artırmaq üçün ifconfig əmrindən istifadə edin. məsələnample, aşağıdakıları daxil edin, harada interfeys nömrəsidir: ifconfig mtu 9000 yuxarı
Alternativ olaraq, ip əmrindən aşağıdakı kimi istifadə edə bilərsiniz: ip link set mtu 9000 dev ip link quraşdırma dev
Platformanın Tuningi (i40e Qeyri-spesifik)
5.1 BIOS Parametrləri
- Virtuallaşdırma iş yükləri üçün Intel® VT-d-ni aktivləşdirin.
- Hyper-threading (məntiqi prosessorlar) performansa təsir edə bilər. İş yükünüz üçün onu yandırın və ya söndürün.
- Intel® Turbo Boost CPU nüvələrinə CPU-nun əsas tezliyindən daha yüksək tezlikdə işləməyə imkan verir. Intel® Turbo Boost-un aktivləşdirilməsi bir çox iş yükü üçün performansı yaxşılaşdıra bilər, lakin nüvələri daha yüksək tezlikdə saxlamaq üçün daha çox enerji sərf edir. İş yükünüz üçün Turbo Boost-u söndürün/açın.
QEYD
Platforma yüksək ümumi CPU istifadəsi ilə qarşılaşırsa, Turbo tezliklərə zəmanət verilmir. Ümumi CPU istifadəsi artdıqca daha yüksək nüvə turbo tezlikləri azalır.
5.2 Gücün idarə edilməsi
Güc idarəçiliyi performansa təsir göstərə bilər, xüsusən də gecikmə az olan iş yüklərində. Performans enerji istehlakını azaltmaqdan daha yüksək prioritetdirsə, Intel enerji idarəçiliyinin təsirlərini məhdudlaşdırmaqla təcrübə etməyi tövsiyə edir. Əməliyyat sistemi alətləri, BIOS parametrləri və nüvə açılış parametrləri vasitəsilə güc idarəçiliyini məhdudlaşdırmağın bir çox müxtəlif yolu var. Ətrafınıza uyğun ən yaxşı üsul və səviyyəni seçin.
5.2.1 C-Dövlət Nəzarəti
CO və ya C1-ə C vəziyyətinə girişin məhdudlaşdırılması performansı yaxşılaşdırır və enerji istifadəsini artırır.
CPU Paketi C6 dövlət girişinin söndürülməsi şəbəkə performansını yaxşılaşdıra bilər. Ancaq bu, enerji istehlakını artırır.
Aşağıdakı seçimlər mövcuddur:
- C vəziyyəti girişini dinamik şəkildə idarə edin:
Açıq
/dev/cpu_dma_latency və ona icazə verilən maksimum gecikməni yazın.
QEYD
Cpudmalatency.c adlı kiçik bir proqram var ki, bu proqram tam olaraq bunu etmək üçün açıq mənbə icmasından endirilə, tərtib oluna və komanda xəttindən işlədilə bilər.
Aşağıdakı keçmişample beş μs oyanma vaxtına imkan verir və beləliklə, C1 girişinə icazə verir: cpudmalatency 5 &
- Kernel açılış parametrlərində maksimum C vəziyyətini məhdudlaşdırın:
Intel CPU-ları üçün: intel_idle.max_cstates=1
Qeyri-Intel CPU-lar üçün: processor.max_cstates=1 - CPU C6 vəziyyətini yoxlamaq və söndürmək üçün cpupower əmrindən istifadə edin: Yoxlayın: cpupower monitor və ya cpupower idle-info
C6-nı söndürün: cpupower idle-set -d3 və ya
C-Dövlətlərini söndürün: cpupower idle-set -D0
Qeydlər:
- Serverdə Intel® 4-cü Nəsil Intel® Xeon® Ölçəklənən Prosessor(lar) varsa, CPU-da C vəziyyətlərini söndürün. Hyper Threading aktivləşdirildikdə və ya söndürüldükdə, boş vəziyyətlərin (-D0) söndürülməsi nüvələrin boş dövrlərdə aşağı güc vəziyyətlərinə daxil olmasının qarşısını alır və CPU-nun boş və aktiv vəziyyətlər arasında keçidi üçün gecikməni azaldır.
- Intel® 4-cü Nəsil Intel® Xeon® Ölçəklənən Prosessorun enerji idarəetməsi son dərəcə aqressivdir. Nüvələrin aşağı güc vəziyyətinə düşməsinin qarşısını almaq üçün onları daha uzun müddət oyaq saxlamaq üçün istifadə olunan nüvələrin sayını azaltmağa çalışın (ethtool -L birləşdirilmiş ). Həmçinin, müəyyən edilmiş irq yaxınlığından (əksər hallarda -x yerli və ya CPU nüvələrinin siyahısı ilə) istifadə edərək, kəsmələri xüsusi nüvələrə bağlayın və iş yükünün taskset və ya numactl ilə eyni nüvələrdə işləməsini təmin edin. Bu, nüvələri aktiv saxlamaqla və fasilələrin idarə edilməsini optimallaşdırmaqla performansı yaxşılaşdırır.
C6-nı aktivləşdirin:
CPU gücü boş rejimdə -d3
C-Dövlətlərini aktivləşdirin:
CPU gücü boş rejimdə -E
- Başqa bir üsul, performans peşəkarını təyin etmək üçün tənzimlənmiş alətdən (bir çox Linux paylamalarına daxildir) istifadə etməkdirfile. Bu profiles bir çox proqramda performansa təsir edə biləcək bir neçə OS parametrlərini dəyişdirin. Müəyyən edilmişdir ki, şəbəkə ötürmə qabiliyyəti profile əksər iş yüklərinin təkmilləşdirilməsini təmin edir.
Yoxlayın:
tuned-adm aktivdir
Set:
tuned-adm profile şəbəkə ötürmə qabiliyyəti
QEYD
Tənzimlənmiş xidmət yuxarıdakı əmrlər üçün işləməlidir. Yoxlamaq/yeniden başlatmaq üçün sazlandı: systemctl statusu tənzimləndi systemctl restart tuned
Siz həmçinin kernel açılış xəttinə aşağıdakıları əlavə etməklə hər hansı C statusu girişinə icazə verə bilərsiniz:
boş = sorğu - Performans peşəkarı ola biləcək sistemin BIOS güc idarəetmə parametrləri vasitəsilə C vəziyyətini məhdudlaşdırınfile mövcuddur.
Turbostat və ya x86_energy_perf_policy kimi alətlər güc idarəetmə parametrlərini yoxlamaq və ya qurmaq üçün istifadə edilə bilər.
5.2.2 PCIe Power Management
Active-State Power Management (ASPM) aktiv istifadədə olmadıqda PCIe əlaqələri üçün daha aşağı güc vəziyyətinə imkan verir. Bu, PCIe şəbəkə cihazlarında daha yüksək gecikməyə səbəb ola bilər, ona görə də Intel gecikməyə həssas iş yükləri üçün ASPM-i deaktiv etməyi tövsiyə edir. Kernel açılış xəttinə aşağıdakıları əlavə etməklə ASPM-i söndürün: pcie_aspm=off
5.2.3 CPU Tezliyinin Ölçüsü
CPU tezliyinin miqyası (və ya CPU sürətinin miqyası) güc və istiliyə qənaət etmək üçün sistemin saat sürətinin tez tənzimləndiyi Linux güc idarəetmə texnikasıdır. C-dövlətləri kimi, bu da şəbəkə bağlantılarında arzuolunmaz gecikməyə səbəb ola bilər.
Cpupower aləti həmçinin CPU performansının defoltlarını və məhdudiyyətlərini yoxlamaq və dəyişdirmək üçün istifadə edilə bilər:
- Yoxlayın: cpupower monitor və ya
- CPU-ları performans rejiminə qoyun: cpupower tezlik-set -g performansı
QEYD
CPU tezliyi limitlərinə edilən dəyişikliklər bir çox iş yüklərinə təsir edə bilər və CPU turbo rejimi kimi digər funksiyaları deaktiv edə bilər.
CPU tezliyinin miqyasını söndürmək üçün CPU güc xidmətini aşağıdakı əmrlərlə deaktiv edin:
systemctl cpupower.service-i dayandırın
systemctl cpupower.service'i söndürün
5.2.4 Enerjinin İdarə Edilməsi üzrə Əlavə Təlimat
Əlavə təfərrüatlar bu yüksək səviyyədə təqdim olunurview 3-cü Nəsil Intel® Xeon® Scalable prosessorlarında bir çox enerji idarəetmə funksiyaları, həmçinin bu xüsusiyyətlərin platforma səviyyəsində necə inteqrasiya olunacağına dair təlimat: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost lazım olduqda prosessoru daha sürətli edir, lakin əlavə enerji sərf edə bilər. Turbo Boost-un söndürülməsi prosessoru sabit sürətdə saxlayır və sizə xüsusi iş yükləri üçün ardıcıl performans səviyyəsi verir.
5.4 Firewalllar
Firewall performansa, xüsusən gecikmə performansına təsir göstərə bilər.
Lazım deyilsə, iptables/firewalld-ı deaktiv edin.
5.5 Tətbiq Parametrləri
Çox vaxt tək bir iplik (bir şəbəkə növbəsinə uyğundur) maksimum bant genişliyinə nail olmaq üçün kifayət deyil. Bəzi platforma arxitekturaları, məsələn, AMD, Intel əsaslı prosessorları olan platformalarla müqayisədə bir iplə daha çox Rx paketini buraxmağa meyllidir.
Tətbiqləri NUMA node və ya şəbəkə cihazının yerli CPU nüvələrinə bağlamaq üçün tapşırıq dəsti və ya numactl kimi alətlərdən istifadə etməyi düşünün. Yaddaş giriş/çıxışı kimi bəzi iş yükləri üçün tətbiqi yerli olmayan qovşaqlara köçürmək fayda təmin edir.
Mümkünsə, tətbiqinizin istifadə etdiyi mövzuların sayını artırmaqla sınaqdan keçirin.
5.6 Kernel Versiyası
Müasir qutudaxili nüvələrin əksəriyyəti performans üçün kifayət qədər yaxşı optimallaşdırılıb, lakin istifadə vəziyyətinizdən asılı olaraq nüvəni yeniləmək təkmilləşdirilmiş performans təmin edə bilər. Mənbənin yüklənməsi, həmçinin nüvəni yaratmazdan əvvəl müəyyən funksiyaları aktivləşdirməyə/deaktiv etməyə imkan verir.
5.7 Əməliyyat Sistemi/Kernel Parametrləri
Ümumi əməliyyat sisteminin tənzimlənməsi haqqında daha çox məlumat üçün Red Hat Enterprise Linux Network Performance Tuning Guide kimi əməliyyat sisteminin tənzimləmə təlimatlarına müraciət edin.
Sazlamaq üçün bəzi ümumi parametrlər aşağıdakı cədvəldə verilmişdir. Qeyd edək ki, bunlar yalnız təklif olunan başlanğıc nöqtələridir və onları defoltlardan dəyişdirmək sistemdə istifadə olunan resursları artıra bilər. Dəyərlərin artırılması performansı yaxşılaşdırmağa kömək edə bilsə də, müəyyən bir sistem, iş yükü və trafik növü üçün nəyin ən yaxşı olduğunu müəyyən etmək üçün müxtəlif dəyərlərlə sınaqdan keçirmək lazımdır.
Kernel parametrləri aşağıda göstərildiyi kimi Linux-da sysctl yardım proqramından istifadə etməklə konfiqurasiya edilə bilər.
Kimə view sistemdə rmem və wmem üçün standart dəyərlər:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Dəyərləri maksimuma təyin edin (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Qəbul buferi (rmem) və ötürmə buferi (wmem) kimi də tanınan soket bufer ölçüləri daxil olan və gedən şəbəkə trafiki üçün ayrılmış yaddaşın miqdarını təyin edən sistem parametrləridir.
-w arqumenti olmadan sysctl-in işə salınması parametri cari parametrlə birlikdə siyahıya alır.
Stack Setting | Təsvir |
net.core.rmem_default | Defolt Qəbul Pəncərəsinin Ölçüsü |
net.core.wmem_default | Defolt Ötürmə Pəncərəsinin Ölçüsü |
net.core.rmem_max | Maksimum Qəbul Pəncərəsi Ölçüsü |
net.core.wmem_max | Maksimum ötürücü pəncərə ölçüsü |
net.core.optmem_max | Maksimum Seçim Yaddaş Buferləri |
net.core.netdev_max_backlog | Kernel düşməyə başlamazdan əvvəl işlənməmiş paketlərin yığılması |
net.ipv4.tcp_rmem | TCP oxuma buferləri üçün yaddaş ehtiyatı |
net.ipv4.tcp_wmem | TCP üçün yaddaş ehtiyatı buferləri göndərir |
Kernel, şəbəkə yığını, yaddaş idarəedicisi, CPU sürəti və güc idarəetmə parametrləri şəbəkə performansına böyük təsir göstərə bilər. Ümumi bir tövsiyə, şəbəkə ötürücülüyə müraciət etməkdirfile tuned əmrindən istifadə etməklə. Bu, şəbəkə proqramlarına üstünlük vermək üçün bir neçə ƏS parametrlərini dəyişdirir.
Yoxlayın:
tuned-adm aktivdir
Set:
tuned-adm profile şəbəkə ötürmə qabiliyyəti
5.8 Şəbəkə Qurğularının İş Qrupu
Bu xüsusiyyət daxil olan trafiki effektiv idarə etməklə, paket itkisini azaltmaqla, gecikməni azaltmaqla və ötürmə qabiliyyətini artırmaqla şəbəkə performansını yaxşılaşdırmağa kömək edir. Bu, daha yaxşı istifadəçi təcrübəsi və daha sürətli sistem reaksiyasına gətirib çıxarır.
Varsayılan olaraq, Linux əməliyyat sistemlərinin əksəriyyətində aktivdir. Standart dəyəri yoxlamaq üçün:
sysctl net.core.netdev_max_backlog
netdev_max_backlog üçün maksimum dəyər nüvə versiyası, aparat, yaddaş və iş yükü kimi amillərdən asılı olaraq dəyişə bilər. Bir çox hallarda 8192 yaxşı dəyər kimi qəbul edilir. sysctl -w net.core.netdev_max_backlog=8192
5.9 Platformaya Xüsusi Konfiqurasiyalar və Tuning
5.9.1 4-cü Nəsil Intel® Xeon® Ölçəklənən Prosessorlar
Intel® 4-cü Nəsil Intel® Xeon® Scalable prosessorunun enerji idarəetməsi 3-cü Nəsil Intel® Xeon® Scalable prosessorları ilə müqayisədə olduqca aqressivdir. Nüvələrin aşağı güc vəziyyətlərinə düşməsinin qarşısını almaq üçün onları daha uzun müddət oyaq saxlamaq üçün istifadə olunan nüvələrin sayını azaltmağa çalışın.
Ən yüksək performans üçün tövsiyə olunan Bios Parametrləri
- CPU-da Hyper-threading aktivləşdirin/deaktiv edin (iş yükü tələbi və performans məqsədləri əsasında).
- Sistem pro seçinfile Maksimum performans üçün Performans.
QEYD
Bu, daha yüksək enerji istehlakı ilə nəticələnir - Maksimum CPU performansını enerji səmərəliliyindən üstün tutmaq üçün CPU enerji idarəetməsini Maksimum Performans olaraq təyin edin.
- Turbo Boost-u aktivləşdirin. Sistem BIOS parametrlərində Turbo Boost-un söndürülməsi adətən CPU-nun saat sürətini əsas tezliyindən kənara dinamik şəkildə artırmasının qarşısını alır.
- QEYD
Turbo Boost-un söndürülməsi ardıcıl performans, enerji səmərəliliyi və ya istilik idarəetməsinin maksimum performansdan daha çox üstünlük təşkil etdiyi müəyyən istifadə halları üçün uyğun ola bilər. - Sistem virtuallaşdırma texnologiyalarından istifadə etmirsə, Single Root I/O Virtualization (SR-IOV) funksiyasını söndürün.
- CPU-nun aktiv qalması və daha dərin boş vəziyyətlərə daxil olmasının qarşısını almaq üçün C-dövlətlərini söndürün.
- CPU-nun aktiv qalmasını və C1E boş vəziyyətinə girməməsini təmin etmək üçün C1E-ni söndürün.
- Sistemə mövcud olan ən yüksək tezlikdə işləməyi təlimatlandırmaq üçün əsas olmayan tezliyi maksimuma təyin edin.
- Dell platformalarında, CPU nüvələrinin aydın və proqnozlaşdırıla bilən xəritəsini təmin etmək üçün Çoxlu APIC Təsvir Cədvəli (MADT) əsas emulyasiyasını Xətti (və ya BIOS-dan asılı olaraq Round-Robin) seçin.
Optimallaşdırılmış Performans üçün Tövsiyə olunan ƏS Səviyyəsi Tuninqləri
- CPU tezliyi miqyası tənzimləyicisini performansa təyin edin. cpupower tezlik-set -g performans cpupower tezlik-info
- C-Dövlətlərini söndürün. CPU gücü boş rejimdə -D0
- Əsas Rx (rmem) və Tx (wmem) buferlərini maksimum dəyərə qoyun. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Şəbəkə cihazının geri planını təyin edin. sysctl -w net.core.netdev_max_backlog=8192
- Tənzimlənmiş pro seçinfile (iş yükü ötürmə qabiliyyətindən/gecikmədən asılıdır).
tuned-adm profile şəbəkə ötürmə qabiliyyəti
Optimallaşdırılmış Performans üçün Tövsiyə Edilən Adapter Səviyyəsi Tuninqləri
- Tətbiq trafiki üçün istifadə ediləcək növbələrin sayını məhdudlaşdırın. Əlaqədar CPU nüvələrinin daha dərin boş vəziyyətlərə düşməsinin qarşısını almaq üçün onları aktiv saxlamaq üçün tələb olunan minimum növbə sayından istifadə edin (iş yükünü tənzimləyin): ethtool -L birləşdirilmiş 32
- Moderasiya dərəcələrini kəsin. ettool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
İş yükü üçün optimal dəyəri tapmaq üçün ötürmə/qəbul/yüksək prioritet birləşmə taymerini daha yüksək (80/100/150/200) və ya aşağı (25/20/10/5) tənzimləməyə çalışın. - Rx/Tx üzük ölçülərini təyin edin. ettool -G rx 4096 tx 4096
QEYD
Rx paketinin ettool -S| ilə düşdüyünü görürsünüzsə grep buraxın, üzük ölçüsünü <4096-a endirməyə çalışın. Paketlərin atılmadığı yerlərdə iş yükü üçün optimal dəyəri tapmağa çalışın. - IRQ yaxınlığını təyin edin. NIC üçün yerli nüvələrdən və ya xüsusi əsas xəritələşdirmədən istifadə edin (burada # nüvə səhifə 1-da 26-də təyin edilmiş növbələrin sayına bərabərdir. systemctl stop irqbalance set_irq_affinity -X yerli VEYA set_irq_affinity -X
5.9.2 AMD EPYC
AMD EPYC prosessorları AMD-nin Zen arxitekturasında qurulmuş serverlər və məlumat mərkəzləri üçün hazırlanmış güclü CPUlardır. Aşağıdakı parametrlər AMD-nin 4-cü nəsil EPYC seriyasındandır.
Ən Yüksək Performans üçün tövsiyə olunan BIOS Parametrləri
- İstifadəçilərə CPU performansını, enerji istehlakını və digər parametrləri tənzimləmək imkanı vermək üçün fərdi rejimi aktiv edin. Bu, performans və enerji səmərəliliyi arasında ən yaxşı tarazlıq üçün sistemin dəqiq tənzimlənməsinə kömək edir.
- Ümumi performansı yaxşılaşdıraraq daha intensiv tapşırıqların öhdəsindən gəlmək üçün CPU-nun sürətini avtomatik artırmasına icazə vermək üçün əsas performans artımını aktivləşdirin.
- CPU-nun cavab vermə qabiliyyətini saxlaya bilən C vəziyyətləri kimi tanınan daha dərin enerjiyə qənaət vəziyyətlərinə daxil olmasının qarşısını almaq üçün qlobal C vəziyyətinə nəzarəti söndürün.
QEYD
C-dövlətlərinin söndürülməsi əlavə enerji istehlakına və istilik temperaturunun artmasına səbəb ola bilər. Hər iki iş yükünə nəzarət edin. - İş yükü tələbi və performans məqsədləri əsasında CPU-da Sinxron Çox Yönlü (SMT) aktivləşdirin/deaktiv edin. SMT Intel CPU-larında Hyper Threading-ə bərabərdir.
QEYD
Optimallaşdırılmış performans üçün tövsiyə olunan ƏS və adapter səviyyəsinin tənzimlənməsi üçün səhifə 40-də i13e Sürücü Parametrlərinin Sazlanmasına və 40-cu səhifədə Platforma Tuninginə (i19e Qeyri-spesifik) baxın.
Adapterin bağlanması
Linux bağlantısı server mühitlərində şəbəkə performansını, artıqlığı və nasazlığa dözümlülüyü əhəmiyyətli dərəcədə yaxşılaşdıra bilən güclü xüsusiyyətdir. Bununla belə, qeyd etmək vacibdir ki, onun düzgün işləməsi üçün uyğun şəbəkə avadanlıqları və həm serverdə, həm də keçiddə düzgün konfiqurasiya tələb olunur.
Linux-da bonding driver birdən çox fiziki şəbəkə interfeysini birləşdirilmiş interfeysdə birləşdirməyə imkan verir. Bu birləşdirilmiş interfeys əməliyyat sistemi və proqramlar üçün vahid virtual şəbəkə interfeysi kimi görünür.
QEYD
İstiqraz məntiqi interfeysdir, ona görə də birbaşa istiqraz interfeysində CPU yaxınlığını təyin etmək mümkün deyil (məs.ample, bağ0). Yəni, onun kəsilmələrin idarə edilməsinə və ya CPU yaxınlığına birbaşa nəzarəti yoxdur. CPU yaxınlığı əlaqənin bir hissəsi olan əsas interfeyslər üçün konfiqurasiya edilməlidir.
Bağlama hər biri öz xüsusiyyətləri olan bir neçə əməliyyat rejimi təmin edir.
Rejim | Növ |
0 | Dəyirmi Robin |
1 | Aktiv Yedəkləmə |
2 | XOR |
3 | Yayım |
4 | LACP |
5 | Yük balansını ötür |
6 | Adaptiv yük balansı |
Linux-da əlaqə yaratmaq üçün müxtəlif üsullar var. Ən çox yayılmış üsullardan biri şəbəkə konfiqurasiyasından istifadə etməkdir files (məsample, /etc/şəbəkə/ interfeysləri və ya /etc/sysconfig/network-scripts/ifcfg-bondX).
Şəbəkə konfiqurasiyasından istifadə edərək konfiqurasiya Files
Aşağıdakı addımlar şəbəkə konfiqurasiyası vasitəsilə əlaqə yaradır files.
- Birləşdirmə üçün iki və ya daha çox NIC portunu seçin (məsample, ethX və ethY)
- NIC Konfiqurasiyasını açın Files tələb olunan NIC İnterfeysi üçün /etc/sysconfig/network-scripts/ altında (məs.ample, vi ifcfg-ethX və vi ifcfg-ethY) yazın və aşağıdakı mətni əlavə edin:
MASTER=bondN [Qeyd: N istiqraz nömrəsini qeyd etmək üçün tam ədəddir.] SLAVE=bəli - Bağlı şəbəkə skripti yaradın file vi /etc/sysconfig/networkscripts/ifcfg-bondN istifadə edərək aşağıdakı mətni daxil edin:
DEVICE=bondN [Qeyd: N istiqraz nömrəsini qeyd etmək üçün tam ədəddir] ONBOOT=bəli USERCTL=yox BOOTPROTO=dhcp (və ya) heç biri
IPADDR=200.20.2.4 [BOOTPROTO=yoxdursa tələb olunur] NETMASK=255.255.255.0 [BOOTPROTO=yoxdursa tələb olunur] ŞƏBƏKƏ=200.20.2.0 [BOOTPROTO=yoxdursa tələb olunur] BROADCAST=200.20.2.255 tələb olunur.1 tələb olunur. BOOTPROTO=heç biri] BONDING_OPTS=”rejim=100 miimon=XNUMX″
QEYD
Tələbdən asılı olaraq rejim 0-dan 6-ya qədər istənilən tam ədəd ola bilər. - Xidmət şəbəkəsini yenidən başladın və ya Systemctl NetworkManager.service-i yenidən başladın istifadə edərək şəbəkə xidmətlərini yenidən başladın
Performans problemlərinin aradan qaldırılması
7.1 CPU İstifadəsi
İş yükü işləyərkən hər nüvə üçün CPU istifadəsini yoxlayın.
Nəzərə alın ki, hər nüvədən istifadə ümumi CPU istifadəsindən daha çox performansa uyğundur, çünki o, şəbəkə növbəsi üzrə CPU istifadəsi haqqında fikir verir. Şəbəkə trafikini idarə edən yalnız bir neçə mövzu varsa, o zaman yalnız bir neçə nüvədən istifadə edə bilərsiniz. Bununla belə, əgər bu nüvələr 100% -dirsə, o zaman şəbəkə ötürmə qabiliyyətiniz CPU istifadəsi ilə məhdudlaşır və aşağıdakıları yerinə yetirməyin vaxtıdır:
- IRQ moderasiyasını/zənginin ölçüsünü Kesinti Moderasiyasında təfərrüatlı şəkildə tənzimləyin.
- CPU yükünü daha çox nüvəyə yaymaq üçün proqram iplərinin sayını artırın. Bütün nüvələr 100% işləyirsə, tətbiqiniz şəbəkəyə bağlı deyil, CPU ilə əlaqəli ola bilər.
Ümumi mövcud alətlər:
- üst
— CPU-ların siyahısını genişləndirmək və hansıların istifadə olunduğunu yoxlamaq üçün 1 düyməsini basın.
— İstifadə səviyyəsinə diqqət yetirin.
— Hansı proseslərin ən aktiv olaraq sadalandığına diqqət yetirin (siyahının yuxarısı). - mpstat
Aşağıdakı keçmişample komanda xətti Red Hat Enterprise Linux 7.x-də sınaqdan keçirilmişdir.
O, hər nüvəyə görə CPU istifadəsini göstərir (ümumi boş faizi tapmaq və 100-dən çıxmaqla) və 80%-dən yuxarı olan dəyərləri qırmızı rənglə vurğulayır. mpstat -P ALL 1 1 | grep -v Orta | quyruq -n +5 | baş -n -1 | awk '{ çap edin (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | sütun - perf top Dövrlərin hara xərcləndiyini axtarın.
7.2 i40e Sayğacları
i40e drayveri ethtool -S ethX əmri vasitəsilə interfeysin sazlanması və monitorinqi üçün sayğacların uzun siyahısını təqdim edir. İş yükü işləyərkən çıxışı izləmək və/yaxud iş yükündən əvvəl və sonra sayğac dəyərlərini müqayisə etmək faydalı ola bilər.
- Tam i40e sayğaclarını əldə etmək üçün: ethtool -S ethX
- Sadəcə sıfır olmayan sayğacları izləmək üçün: watch -d (ethtool -S ethX) | egrep -v :\ 0 | sütun
Axtarmaq üçün bəzi şeylər: - rx_dropped o deməkdir ki, CPU buferlərə kifayət qədər sürətli xidmət etmir.
- port.rx_dropped slot/yaddaş/ sistemində nəyinsə kifayət qədər sürətli olmadığını bildirir.
7.3 Şəbəkə sayğacları
İş yükündən əvvəl/sonra netstat -s yoxlayın.
Netstat sistemdəki bütün şəbəkə cihazlarından şəbəkə məlumatlarını toplayır. Buna görə də nəticələr sınaq altında olan şəbəkədən başqa şəbəkələrdən təsirlənə bilər. netstat -s çıxışı Linux əməliyyat sistemində və ya nüvədə performans problemlərinin yaxşı göstəricisi ola bilər. Ümumi əməliyyat sisteminin tənzimlənməsi haqqında daha çox məlumat üçün Red Hat Enterprise Linux Network Performance Tuning Guide kimi əməliyyat sisteminin tənzimləmə təlimatlarına müraciət edin.
7.4 Sistem Qeydləri
Sistem qeydlərini səhvlər və xəbərdarlıqlar üçün yoxlayın (/var/log/messages, dmesg).
7.5 Intel svr-info Aləti
Intel svr-info aləti təmin edir (bax https://github.com/intel/svr-info) serverdən müvafiq aparat və proqram təminatı təfərrüatlarını tutan Linux üçün. svr-info çıxışı iş yükü üçün optimallaşdırılmamış sistem darboğazlarını və ya parametrləri/tənzimləmələri müəyyən etmək üçün çox faydalı ola bilər. Ethernet ilə əlaqəli performans problemləri üçün Intel ilə dəstək qutusunu açarkən, svr-info çıxışını (mətn) daxil etməyinizə əmin olun. file) test konfiqurasiyasında hər bir Linux serveri üçün.
- svr-info-nu yükləyin və quraşdırın:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Çıxışı toplayın:
./svr-info > hostname.txt - Bir mətn əlavə edin (.txt) file təhlil üçün hər bir server üçün Intel dəstək qutunuza.
Ümumi Performans Ssenariləri üçün Tövsiyələr
8.1 IP yönləndirilməsi
- Kerneli yeniləyin.
Bəzi yeni distrodaxili nüvələr təhlükəsizlik səbəbiylə marşrutlaşdırma keşinin silinməsindən başlayaraq marşrut kodundakı nüvə dəyişiklikləri səbəbindən marşrutlaşdırma performansını aşağı saldı. Dağıtımdan çıxmış son nüvələrdə bu dəyişikliklərin performans təsirini yüngülləşdirən və təkmilləşdirilmiş performans təmin edə bilən yamaqlar olmalıdır. - Hyper-threading (məntiqi nüvələr) deaktiv edin.
- Kernel açılış parametrlərini redaktə edin.
— Virtuallaşdırma üçün tələb olunmadıqda, nüvə açılış xəttindən iommu-u məcbur edin (intel_iommu=off və ya iommu=off)
— Güc idarəçiliyini söndürün: processor.max_cstates=1 boş=poll pcie_aspm=off - Növbələrin sayını yerli rozetkadakı nüvələrin sayına bərabər olaraq məhdudlaşdırın (burada 12)ample). ethtool -L ethX birləşdirilmiş 12
- Yalnız yerli rozetkaya pin kəsir. set_irq_affinity -X yerli ethX VEYA set_irq_affinity -X yerli ethX
QEYD
İş yükündən asılı olaraq -X və ya -x istifadə edilə bilər. - Tx və Rx üzük ölçülərini lazım olduqda dəyişdirin. Daha böyük dəyər daha çox resurs tələb edir, lakin daha yaxşı ötürmə dərəcələri təmin edə bilər. ettool -G ethX rx 4096 tx 4096
- Marşrutlaşdırarkən GRO-nu söndürün.
Məlum nüvə probleminə görə marşrutlaşdırma/yönləndirmə zamanı GRO söndürülməlidir. ethtool -K ethX gro off, burada ethX dəyişdiriləcək Ethernet interfeysidir. - Adaptiv kəsmə moderasiyasını deaktiv edin və statik dəyər təyin edin. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
QEYD
Prosessorun növündən və iş yükündən asılı olaraq, RX və TX üçün birləşmə parametrləri təkmilləşdirilmiş performans (və ya daha az çərçivə itkisi) üçün tənzimlənə bilər.
- Firewall-u deaktiv edin. sudo systemctl firewalld söndürün sudo systemctl firewalld dayandırın
- IP yönləndirməni aktivləşdirin. sysctl -w net.ipv4.ip_forward=1
- Qəbul və göndərmə yuvası bufer ölçüləri üçün maksimum dəyərləri konfiqurasiya edin. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
QEYD
İş yükündən və ya tələbdən asılı olaraq, bu dəyərlər standartdan dəyişdirilə bilər.
8.2 Aşağı Gecikmə
- Hyper-threading (məntiqi nüvələr) söndürün.
- Şəbəkə cihazının numa core 0 ilə yerli olduğundan əmin olun.
- Taskset -c 0 istifadə edərək etalon 0-a sabitləyin.
- systemctl stop irqbalance istifadə edərək irqbalance-i söndürün və ya systemctl irqbalance-i söndürün
- Nüvələr arasında yaymaq üçün yaxınlıq skriptini işə salın. Yerli və ya hamısını sınayın.
- Moderasiyanın kəsilməsini söndürün. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Yerli rozetkadakı nüvələrin sayına bərabər olmaq üçün növbələrin sayını məhdudlaşdırın (burada 32).ample). ethtool -L ethX birləşdirilmiş 32
- Yalnız yerli rozetkaya pin kəsir (skript i40e sürücü mənbəyi ilə paketlənmişdir). set_irq_affinity -X yerli ethX
- Netperf -t TCP_RR, netperf -t UDP_RR və ya NetPipe kimi müəyyən edilmiş meyardan istifadə edin. netperf -t TCP_RR və ya netperf -t UDP_RR
- Yerli NUMA qovşağında bir nüvəyə etalon pin edin. tapşırıq dəsti -c
Intel ® Ethernet 700 Series
Linux Performans Tuning Bələdçisi
dekabr 2024
Dok. №: 334019, Rev.: 1.2
Sənədlər / Resurslar
![]() |
Intel Ethernet 700 Series Linux Performans Tuning [pdf] İstifadəçi təlimatı 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |