Intel ® Ethernet 700 Series
Linux Performance Tuning Guide
NEX Cloud Networking Group (NCNG)
Wahyu 1.2
Desember 2024
Riwayat Revisi
Revisi | Tanggal | Komentar |
1.2 | Desember 2024 | · Ditambahake Pandhuan Manajemen Daya Tambahan. · Ditambahake Intel * Turbo Boost. · Ditambahake Backlog Piranti Jaringan. · Ditambahake Konfigurasi lan Tuning Khusus Platform. · Ditambahake Intel Generasi 4 * %eon * Prosesor Scalable. · Ditambahake AMD EPYC. · Dianyari Priksa Kapabilitas Hardware Sistem. · Dianyari iPerf2. · Dianyari iPerf3. · Dianyari Tx / Rx Antrian. · Dianyari Interrupt Moderation. · Dianyari Ukuran Ring. · Dianyari Platform Tuning (i40e Non-Spesifik). · Dianyari Setelan BIOS. · Dianyari C-State Control. · Dianyari CPU Frequency Scaling. · Dianyari Setelan Aplikasi. · Dianyari Sistem Operasi/Setelan Kernel. · Dianyari IP Forwarding. · Dianyari Low Latency. |
Agustus 2023 | Owah-owahan ing dokumen iki kalebu: · Nambah Referensi sing Gegandhengan. · Ditambahake Priksa Paket DDP dimuat kanthi bener. · Ditambahake iPerf2. · Ditambahake iPerf3. · Ditambahake netperf. · Dianyari Afinitas IRQ. · Ditambahake Tx / Rx Queues. · Dianyari Ukuran Ring. · Ditambahake Bingkai Jumbo. · Added Adaptor Bonding. · Added Intel svr-info Tool. |
|
1.0 | Maret 2016 | Rilis Awal (Intel Public). |
Pambuka
Pandhuan iki dimaksudake kanggo menehi tuntunan kanggo nyetel lingkungan kanggo kinerja jaringan sing optimal nggunakake Intel ® Ethernet 700 Series NICs ing lingkungan Linux. Fokus ing hardware, driver, lan kahanan lan setelan sistem operasi sing bisa nambah kinerja jaringan. Perlu dicathet menawa kinerja jaringan bisa kena pengaruh apa wae saka pengaruh njaba, mung sing paling umum lan dramatis sing dibahas ing pandhuan iki.
1.1 Referensi sing gegandhengan
- Pandhuan pangguna kanggo kabeh adaptor lan piranti Intel ® Ethernet, ndhukung Windows lan Linux:
Pandhuan Pangguna Adaptor lan Piranti Ethernet Intel ® - Lembar data teknis:
Lembar Data Intel ® Ethernet Controller X710/XXV710/XL710 - Paket SW lengkap kanggo kabeh produk Intel ® Ethernet (download kabeh driver, NVM, alat, lsp):
Intel ® Ethernet Adaptor Paket Driver Lengkap - Paket Update NVM (Non-Volatile Memory):
Utilitas Nganyari Memori Non-Volatile (NVM) kanggo Intel® Ethernet Network Adapter 700 Series - alat svr-info kanggo Linux sing njupuk rincian hardware lan piranti lunak sing cocog saka server: https://github.com/intel/svr-info
- Panduan Teknologi DDP:
Intel ® Ethernet 700 Series Dynamic Piranti Personalisasi (DDP) Pandhuan Teknologi
Dhaptar Priksa wiwitan
2.1 Nganyari Driver / Versi Firmware
Priksa versi driver / firmware nggunakake ethtool -i ethx.
Nganyari ing ngisor iki yen perlu:
- Nganyari driver 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 - Nganyari firmware
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Maca README
Priksa masalah sing dikenal lan entuk instruksi konfigurasi paling anyar saka README file klebu ing paket sumber i40e.
2.3 Priksa manawa Slot PCI Express (PCIe) Sampeyan x8
Sawetara slot PCIe x8 bener diatur minangka slot x4. slot iki duwe bandwidth ora cukup kanggo tingkat line lengkap karo port dual lan piranti kotak port. Kajaba iku, yen sampeyan sijine adaptor PCIe v3.0-saged menyang slot PCIe v2.x, sampeyan ora bisa njaluk bandwidth lengkap. Pembalap piranti lunak ndeteksi kahanan iki lan nulis pesen ing ngisor iki ing log sistem:
bandwidth PCI-Express kasedhiya kanggo kertu iki ora cukup kanggo kinerja optimal. Kanggo kinerja optimal dibutuhake x8 PCI-Express slot.
Yen ana kesalahan iki, pindhah adaptor menyang slot PCIe v3.0 x8 bener kanggo mutusake masalah masalah.
2.4 Priksa Kapabilitas Perangkat Keras Sistem
Ing 10 Gbps, 25 Gbps, lan 40 Gbps Ethernet, ana sawetara syarat CPU lan sistem minimal. Umumé, prosesor kelas server modern lan konfigurasi memori optimal kanggo platform sampeyan kudu cukup, nanging kabutuhan beda-beda gumantung saka beban kerja sampeyan. Kabeh saluran memori kudu diisi lan mode kinerja memori kudu diaktifake ing BIOS. Verifikasi manawa konfigurasi CPU lan memori sampeyan bisa ndhukung tingkat kinerja jaringan sing dibutuhake kanggo beban kerja sampeyan.
CATETAN
XL710 minangka pengontrol 40 GbE. Adaptor 2 x 40 GbE sing nggunakake pengontrol iki ora dimaksudake dadi 2 x 40 GbE nanging 1 x 40 GbE kanthi port serep aktif. Nalika nyoba nggunakake lalu lintas line-rate nglibatno loro bandar, ngalih internal kebak lan bandwidth gabungan antarane loro bandar diwatesi kanggo total SO Gbps.
2.4.1 Parameter Boot Kernel
Yen Intel® Virtualization Technology for Directed I/O (Intel® VT-d) diaktifake ing BIOS, Intel nyaranake supaya IOMMU ing mode pass-through kanggo kinerja jaringan host sing optimal. Iki ngilangi DMA overhead ing lalu lintas host nalika mbisakake Virtual Machines (VMs) isih duwe keuntungan saka Intel® VT-d. Iki ditindakake kanthi nambahake baris ing ngisor iki menyang paramèter boot kernel: fommu-pt.
2.5 Priksa manawa Paket DDP dimuat kanthi bener
Pembalap basis 140ea lan 140eb ora duwe dhukungan langsung kanggo Personalisasi Piranti Dinamis (DDP). Kanggo nggunakake DDP karo 700 piranti Series, DDP profile bisa ditrapake nganggo aplikasi testpmd.
Kanggo rincian DDP profiles, lan carane aplikasi DDP profile karo testpmd ing 700 piranti Series, deleng Intel® Ethernet 700 Series Dynamic Piranti Personalisasi (DDP) Pandhuan Teknologi.
Kanggo verifikasi yen DDP profile wis kasil dimuat:
testpmd> ddp entuk dhaptar 0 Profile nomer: 1
CATETAN
Yen profile nomer 0, ora paket DDP dimuat. Yen ana kesalahan momotan paket DDP, piranti bakal dadi mode aman lan akeh fitur kinerja ora kasedhiya. Yen ana kesalahan sing ana gandhengane karo ngemot paket DDP, bakal nyebabake masalah kinerja. Kanggo langkah ngatasi masalah, waca Pandhuan Teknologi Inte / * Ethernet 700 Series Dynamic Device Personalization (DDP).
Pangukuran Kinerja Baseline lan Metodologi Tuning
3.1 Patokan Kinerja Jaringan
Sadurunge miwiti latihan tuning, penting kanggo duwe pangukuran garis dasar sing apik babagan kinerja jaringan. Biasane, saliyane njupuk pangukuran awal kinerja aplikasi/beban kerja tartamtu, luwih becik nggunakake pathokan kinerja jaringan standar kanggo verifikasi manawa piranti jaringan sampeyan apik.
Kanggo optimasi sistem tunggal, netperf utawa iperf lan NetPIPE minangka alat gratis opensource sing padhet sing ngidini sampeyan negesake sambungan lan diagnosa masalah kinerja.
Netperf kuwat kanggo tes throughput lan latency. NetPIPE minangka alat khusus latensi nanging bisa dikompilasi kanggo lingkungan apa wae.
CATETAN
Tes TCP_RR ing netperf ngasilake latensi ing nilai transaksi / detik. Iki nomer round-trip. Latensi siji arah bisa diwilang nganggo persamaan ing ngisor iki:
Latency(usec) = (1⁄2) / [Transaksi/detik] * 1,000,000
3.1.1 iPerf2
Intel nyaranake iperf2 liwat iperf3 kanggo umume kahanan benchmarking amarga gampang digunakake lan ndhukung sawetara utas ing siji aplikasi. Intel nyaranake mlaku nganggo opsi -P kanthi 2-4 utas kanggo sambungan 25G lan watara 4-6 utas kanggo sambungan 40G.
- Kanggo mbukak lalu lintas uni-arah saka klien menyang server: Printah server example: iperf2 -s
Perintah klien example: iperf2 -c -P - Kanggo mbukak lalu lintas loro-arah saka klien menyang server (lan kosok balene): Server printah example: iperf2 –s –p
Perintah klien example:
iperf2 -c -p -P -–full-duplex UTAWA
iperf2 -c -p -P –d
CATETAN
Opsi -full-duplex lan -d ing iperf2 ngidini pangguna nindakake tes bidirectional. Nanging, opsi -full-duplex khusus fokus ing testing duplex lengkap.
CATETAN
Nalika nyoba iperf2 ing macem-macem port server, flag -d bisa ditambahake menyang perintah server kanggo mbukak kabeh sesi server ing latar mburi saka jendhela terminal sing padha. Gendéra -d uga bisa digunakake nalika printah server ditempelake ing for-loop ing skrip.
CATETAN
Nalika nglakokake tes throughput jaringan kanthi siji stream / thread (misample: P1), prosesor AMD ora bisa nyedhiyani throughput samesthine, NICs bandwidth utamané luwih (yen kacepetan > = 25G bandwidth). Akibaté, aplikasi pinning menyang inti tartamtu dibutuhake kanggo entuk throughput sing luwih dhuwur. Waca Setelan Aplikasi ing kaca 22.
3.1.2 iPerf3
Yen iperf3 digunakake, macem-macem conto aplikasi dibutuhake kanggo njupuk advantage saka multi-threads, RSS, lan antrian hardware. Intel nyaranake mlaku nganggo 2-4 sesi aplikasi kanggo sambungan 25G lan sekitar 4-6 sesi kanggo sambungan 40G. Saben sesi kudu nemtokake nilai port TCP unik nggunakake pilihan -p.
- Kanggo mbukak lalu lintas uni-arah saka klien menyang server:
Server printah example:
iperf3 -s -p
Perintah klien example:
iperf3 -c -p - Kanggo mbukak lalu lintas loro-arah saka klien menyang server (lan kosok balene):
Server printah example:
iperf3 –s –p
Perintah klien example: iperf3 -c -p -P --bidir - Kanggo miwiti macem-macem conto (utas) iperf3, rekomendasi nggunakake loop kanggo peta thread menyang port TCP lan mbukak iperf3 ing latar mburi nggunakake & kanggo nggawe macem-macem proses kanthi podo karo.
Server printah example, miwiti 4 utas: port = ""; kanggo i ing {0..3}; iki port=520$i; bash -c "iperf3 -s -p $ port &"; rampung; Perintah klien example, miwiti 4 Utas - Ngirim port test = ""; kanggo i ing {0..3}; iki port=520$i; bash -c "iperf3 -c $ serverIP -p $ port &"; rampung; Perintah klien example, miwiti 4 Utas - Nampa port test = ""; kanggo i ing {0..3}; iki port=520$i; bash -c "iperf3 -R -c $ serverIP -p $ port &"; rampung; Kanggo sambungan 40G, tambahake loop kanggo nggawe nganti 6 conto / thread.
CATETAN
Nalika nglakokake tes throughput jaringan kanthi siji stream / thread (misample: P1), prosesor AMD bisa uga ora nyedhiyani throughput samesthine, bandwidth utamané luwih
NICs (yen kacepetan > = 25G bandwidth). Akibaté, aplikasi pinning menyang inti tartamtu dibutuhake kanggo entuk throughput sing luwih dhuwur. Waca Setelan Aplikasi ing kaca 22 lan AMD EPYC ing kaca 26.
3.1.3 netperf
Alat netperf minangka pilihan sing kuat kanggo tes throughput lan latency.
- Tes TCP_STREAM ing netperf ngukur kemampuan throughput piranti. Perintah server example: netserver Client printah example: netperf -t TCP_STREAM -l 30 -H
- Tes TCP_RR ing netperf ngasilake latensi ing nilai transaksi / detik. Iki nomer round-trip. Disaranake nggunakake pilihan -T x,x, padha x CPU lokal kanggo piranti. Latensi siji arah bisa diwilang nggunakake: Latency(usec)=(1⁄2)/ [Transaksi/detik]*1,000,\ Server command example: netserver
Perintah klien example: netperf -t TCP_RR -l 30 -H -T x,x - Kanggo miwiti sawetara kedadean (utas) netperf, rekomendasi nggunakake for-loop kanggo map thread menyang port TCP lan mbukak netperf ing latar mburi nggunakake & kanggo nggawe macem-macem proses ing podo karo.
Server printah example, miwiti 8 utas:
port = ""; kanggo i ing {0..7}; iki port=520$i; bash -c "netserver -L $ serverIP -p $ port &"; rampung;
Perintah klien example, miwiti 8 utas: port = ""; kanggo i ing {0..7}; iki port=520$i; bash -c "netperf -H $ serverIP -p $ port -t TCP_STREAM -l 30 &"; rampung;
3.2 Metodologi Tuning
Fokusake siji owah-owahan tuning sekaligus supaya sampeyan ngerti apa pengaruh saben owah-owahan ing tes sampeyan. Luwih metodis sampeyan ing proses tuning, luwih gampang kanggo ngenali lan ngatasi panyebab kemacetan kinerja.
Tuning Setelan Driver i40e
4.1 Afinitas IRQ
Konfigurasi afinitas IRQ supaya interrupts kanggo antrian jaringan sing beda-beda digabungake karo inti CPU sing beda-beda bisa nduwe pengaruh gedhe ing kinerja, utamane tes throughput multithread.
Kanggo ngatur karemenan IRQ, mungkasi irqbalance banjur nggunakake script set_irq_affinity saka paket sumber i40e utawa pin antrian kanthi manual. Pateni pangimbang IRQ ruang pangguna kanggo ngaktifake pinning antrian:
- systemctl mateni irqbalance
- systemctl mungkasi irqbalance
Nggunakake skrip set_irq_affinity saka paket sumber i40e (disaranake): - Kanggo nggunakake kabeh inti:
[path-to-i40epackage]/scripts/set_irq_affinity -X kabeh ethX - Kanggo nggunakake mung inti ing soket NUMA lokal: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Sampeyan uga bisa milih sawetara inti. Aja nggunakake cpu0 amarga mbukak tugas timer. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
CATETAN
Skrip afinitas mbisakake Transmit Packet Steering (XPS) minangka bagéan saka proses pinning nalika pilihan -x kasebut. Nalika XPS diaktifake, Intel nyaranake sampeyan mateni irqbalance, amarga keseimbangan kernel karo XPS bisa nyebabake kinerja sing ora bisa ditebak. Skrip afinitas mateni XPS nalika opsi -X ditemtokake. Mateni XPS lan ngaktifake antrian simetris migunani kanggo beban kerja sing kinerja paling apik diraih nalika lalu lintas Tx lan Rx dilayani ing pasangan antrian sing padha.
Konfigurasi antrian simetris ing Linux kalebu nyetel paramèter driver antarmuka jaringan supaya bisa nampa antrian simetris (Rx) lan antrian ngirim simetris (Tx) kanggo adaptor jaringan sing didhukung.
CATETAN
- Antrian simetris minangka fitur jaringan canggih, lan ora kabeh adaptor jaringan seri 700 utawa pembalap ndhukung.
- Priksa manawa sampeyan duwe dhukungan driver lan hardware sing dibutuhake sadurunge nyoba ngatur antrian simetris.
Kanggo ngatur antrian simetris, tindakake langkah-langkah umum iki:
- Sunting Konfigurasi Antarmuka Jaringan File: Gunakake editor teks (kanggo contoample, vi, nano, utawa gedit) kanggo ngowahi konfigurasi antarmuka jaringan file. Ing file biasane ana ing sangisore direktori /etc/sysconfig/network-scripts/ lan nduweni jeneng kaya ifcfg-ethX, ing ngendi ethX minangka jeneng antarmuka jaringan sampeyan.
- Tambah Parameter Antrian Simetris. Tambah baris ing ngisor iki kanggo konfigurasi antarmuka jaringan file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
- Wiwiti maneh Layanan Jaringan.
Sawise nggawe pangowahan, miwiti maneh layanan jaringan kanggo ngetrapake konfigurasi anyar. sudo systemctl miwiti maneh jaringan
kanthi manual:
-
Temokake prosesor sing dipasang ing saben simpul nggunakake: numactl –hardware lscpu
-
Temokake topeng bit kanggo saben prosesor:
- Assuming inti 0-11 kanggo simpul 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Temokake IRQ sing ditugasake menyang port sing ditugasake: grep ethX /proc/interrupts lan cathet nilai IRQ For example, 181-192 kanggo 12 vektor dimuat.
- Echo nilai afinitas SMP menyang entri IRQ sing cocog. Elinga yen iki kudu ditindakake kanggo saben entri IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Tampilake afinitas IRQ:
- Kanggo nuduhake afinitas IRQ kanggo kabeh inti: /scripts/set_irq_affinity -s ethX
- Kanggo nuduhake mung inti ing soket NUMA lokal: /scripts/set_irq_affinity -s lokal ethX
- Sampeyan uga bisa milih sawetara inti: /scripts/set_irq_affinity -s 40-0-8,16 ethX
CATETAN
Skrip set_irq_affinity ndhukung flag -s ing versi driver i40e 2.16.11 lan mengko.
4.2 Tx / Rx Antrian
Nomer standar antrian sing diaktifake kanggo saben port Ethernet dening driver nalika wiwitan padha karo jumlah total CPU sing kasedhiya ing platform kasebut. Iki bisa digunakake kanggo akeh platform lan konfigurasi beban kerja. Nanging, ing platform kanthi jumlah inti sing dhuwur lan / utawa Kapadhetan port Ethernet sing dhuwur, konfigurasi iki bisa nyebabake konflik sumber daya. Mulane, ing sawetara kasus bisa uga perlu kanggo ngowahi standar kanggo saben port ing sistem.
Nomer standar antrian Tx/Rx bisa beda-beda gumantung saka model lan versi driver tartamtu. Jumlah antrian bisa diatur nggunakake printah ethtool -L sing kapacak ing ngisor iki.
CATETAN
Ing kasus kasebut, Intel nyaranake sampeyan nyuda antrian standar kanggo saben port dadi ora luwih saka jumlah CPU sing kasedhiya ing simpul NUMA lokal menyang port adaptor. Ing sawetara kasus, nalika nyoba ngimbangi sumber daya ing implementasine count port dhuwur, bisa uga perlu kanggo ngurangi nomer iki malah luwih.
Kanggo ngowahi konfigurasi antrian:
Ex ing ngisor ikiample nyetel port dadi 32 antrian Tx/Rx: ethtool -L ethX gabungan 32
Exampoutput sing:
ethtool -l ethX
Parameter saluran kanggo ethX: Maksimum sing wis disetel:
RX: 96
TX: 96
Liyane: 1
Gabungan: 96
Setelan hardware saiki:
RX: 0
TX: 0
Liyane: 1
Gabungan: 32
4.3 Ngganggu Moderasi
Moderasi interupsi adaptif diuripake kanthi gawan, lan dirancang kanggo nyedhiyakake pendekatan sing seimbang antarane panggunaan CPU sing kurang lan kinerja dhuwur. Nanging, sampeyan bisa nyoba nyetel setelan interupsi kanthi manual supaya pas karo kasus panggunaan sampeyan.
Jangkoan 0-235 mikrodetik nyedhiyakake jangkauan efektif 4,310 nganti 250,000 interupsi per detik. Nilai rx-μsecs-high bisa disetel independen saka rx-μsecs lan tx-μsecs ing printah ethtool padha, lan uga independen saka algoritma moderasi gangguan adaptif. Hardware dhasar ndhukung granularity ing interval 2microdetik, supaya nilai jejer bisa nyebabake tingkat interupsi sing padha.
- Kanggo mateni moderasi interupsi adaptif: ethtool -C ethX adaptive-rx off adaptive-tx off
- Kanggo nguripake moderasi interupsi adaptif: ethtool -C ethX adaptive-rx urip adaptif-tx aktif
Panggonan sing apik kanggo miwiti tuning umum yaiku 84 μs, utawa ~ 12000 interrupts / s. Yen sampeyan ndeleng counters rx_dropped mlaku sak lalu lintas (nggunakake ethtool -S ethX) sampeyan mbokmenawa duwe CPU alon banget, ora cukup buffer saka ukuran ring adaptor (ethtool -G) kanggo nahan paket kanggo 84 μs utawa kurang saka tingkat interupsi.
- Kanggo nyetel moderasi interupsi menyang tingkat interupsi tetep 84 μs antarane interrupts (12000 interrupts/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Nilai sabanjure kanggo nyoba, yen sampeyan ora maksimal ing panggunaan CPU, yaiku 62μs. Iki nggunakake luwih akeh CPU, nanging layanan buffer luwih cepet, lan mbutuhake deskriptor luwih sithik (ukuran dering, ethtool -G).
- Kanggo nyetel moderat interupsi menyang tingkat interupsi tetep 62 usecs antarane interrupts (16000 interrupts / s). ethtool -C ethX adaptif-rx mati adaptif-tx mati rx-usecs 62 tx-usecs 62
Yen counters rx_dropped mundhak sak lalu lintas (nggunakake ethtool -S ethX), sampeyan mbokmenawa wis alon banget saka CPU, ora cukup buffer saka ukuran ring adaptor (ethtool -G), utawa banget kurang saka tingkat interupsi. Yen sampeyan ora maksimal ing panggunaan CPU, sampeyan bisa nambah tingkat interupsi kanthi nyuda nilai ITR. Iki nggunakake CPU liyane, nanging layanan buffer luwih cepet, lan mbutuhake deskriptor kurang (ukuran ring, ethtool -G).
Yen CPU sampeyan 100%, banjur nambah tingkat interupsi ora dianjurake. Ing kahanan tartamtu kayata beban kerja sing kaiket CPU, sampeyan bisa uga pengin nambah nilai μs kanggo ngaktifake wektu CPU luwih akeh kanggo aplikasi liyane.
Yen sampeyan mbutuhake kinerja latensi sing sithik lan / utawa duwe CPU akeh kanggo ngolah jaringan, sampeyan bisa mateni moderasi interupsi kabeh, sing ngidini interrupts bisa murub kanthi cepet. - Kanggo mateni interrupt moderation ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
CATETAN
Nalika mlaku kanthi moderat interupsi dipateni, tingkat interupsi ing saben antrian bisa dhuwur banget. Coba kalebu parameter rx-usec-high kanggo nyetel wates ndhuwur ing tingkat interupsi. Printah ing ngisor iki mateni moderasi interupsi adaptif lan ngidini maksimal 5 mikrodetik sadurunge nuduhake nampa utawa ngirim wis rampung. Tinimbang ngasilake nganti 200,000 interrupts per detik, watesan total interrupts per detik kanggo 50,000 liwat parameter rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Coba atur timer coalescing ngirim / nampa / prioritas dhuwur sing luwih dhuwur (80/100/150/200) utawa luwih murah (25/20/10/5) kanggo nemokake nilai sing optimal kanggo karya.
4.4 Ukuran Ring
Yen sampeyan ndeleng counters rx_dropped ing ethtool -S ethX (rx_dropped, rx_dropped.nic), utawa curiga meksa cache karo sawetara antrian aktif, sampeyan bisa nyoba nyetel ukuran ring saka nilai standar. Nilai standar yaiku 512, maksimal yaiku 4096.
- Kanggo mriksa nilai saiki: ethtool -g ethX
Yen dicurigai kekurangan buffering nyebabake nyuda tingkat interupsi saiki, sampeyan bisa nyoba maksimal dhisik, banjur minimal, banjur nerusake ing panelusuran binar nganti sampeyan ndeleng kinerja optimal.
Yen tekanan cache dicurigai (akeh antrian aktif) nyuda buffer saka gawan bisa mbantu Intel ® Data Direct I / O (Intel ® DDIO) operate kanthi luwih efisien. Intel nyaranake nyoba 128 utawa 256 saben antrian, amarga ngerti yen kenaikan tingkat interupsi liwat ethtool -C bisa uga perlu kanggo ngindhari paningkatan rx_dropped. - Kanggo nyetel ukuran dering dadi nilai tetep: ethtool -G eth12 rx 256 tx 256
CATETAN
Kanggo ndandani tetesan paket Rx sing ditemokake nganggo ethtool -S ethX|grep drop, tambahake ukuran dering dadi 4096. Eksperimen kanggo nemokake setelan sing paling apik kanggo beban kerja nanging awas panggunaan memori sing gedhe banget kanthi nilai sing luwih dhuwur.
4.5 Kontrol Aliran
Kontrol aliran Layer 2 bisa nyebabake kinerja TCP banget lan dianjurake supaya dipateni kanggo umume beban kerja. Pangecualian potensial yaiku lalu lintas sing bledosan nalika bledosan ora suwe.
Kontrol aliran dipateni kanthi gawan.
- Kanggo ngaktifake kontrol aliran: ethtool -A ethX rx on tx on
- Kanggo mateni kontrol aliran: ethtool -A ethX rx off tx off
CATETAN
Sampeyan kudu duwe partner link sing bisa ngontrol aliran supaya bisa ngaktifake kontrol aliran.
4.6 Bingkai Jumbo
Nalika lingkungan lalu lintas samesthine kasusun saka pamblokiran gedhe saka data sing ditransfer, iku bisa migunani kanggo ngaktifake fitur pigura jumbo. Dhukungan Jumbo Frames diaktifake kanthi ngganti Unit Transmisi Maksimum (MTU) dadi nilai sing luwih gedhe tinimbang nilai standar 1500. Iki ngidini piranti nransfer data ing paket sing luwih gedhe ing lingkungan jaringan. Setelan iki bisa nambah throughput lan nyuda panggunaan CPU kanggo beban kerja I/O sing gedhe. Nanging, bisa uga mengaruhi paket cilik utawa beban kerja sing sensitif latensi.
CATETAN
Bingkai Jumbo utawa setelan MTU sing luwih gedhe kudu dikonfigurasi kanthi bener ing lingkungan jaringan sampeyan.
Gunakake printah ifconfig kanggo nambah ukuran MTU. Kanggo example, ketik ing ngisor iki, ngendi iku nomer antarmuka: ifconfig mtu 9000 munggah
Utawa, sampeyan bisa nggunakake printah ip kaya ing ngisor iki: ip link set mtu 9000 dev ip link nyetel dev
Platform Tuning (i40e Non-Spesifik)
5.1 Setelan BIOS
- Aktifake Intel® VT-d kanggo beban kerja virtualisasi.
- Hyper-threading (prosesor logis) bisa mengaruhi kinerja. Eksperimen nganggo utawa mateni kanggo beban kerja sampeyan.
- Intel® Turbo Boost ngidini inti CPU bisa digunakake kanthi frekuensi sing luwih dhuwur tinimbang frekuensi dhasar CPU. Ngaktifake Intel® Turbo Boost bisa ningkatake kinerja kanggo akeh beban kerja nanging nggunakake daya luwih akeh kanggo njaga inti ing frekuensi sing luwih dhuwur. Eksperimen nganggo Turbo Boost off/on kanggo beban kerja sampeyan.
CATETAN
Frekuensi Turbo ora dijamin yen platform ngalami panggunaan CPU sakabèhé sing dhuwur. Frekuensi turbo inti sing luwih dhuwur dikurangi amarga panggunaan CPU sakabèhé mundhak.
5.2 Manajemen Daya
Manajemen daya bisa mengaruhi kinerja, utamane ing beban kerja latensi sing sithik. Yen kinerja minangka prioritas sing luwih dhuwur tinimbang ngurangi konsumsi daya, Intel nyaranake sampeyan nyoba kanggo mbatesi efek manajemen daya. Ana macem-macem cara kanggo matesi manajemen daya, liwat piranti sistem operasi, setelan BIOS, lan paramèter boot kernel. Pilih cara lan level sing paling apik sing cocog karo lingkungan sampeyan.
5.2.1 C-Negara Kontrol
Watesan entri C-state menyang CO utawa C1 nambah kinerja lan nambah panggunaan daya.
Mateni entri negara Paket C6 CPU bisa nambah kinerja jaringan. Nanging, iki nambah panggunaan daya.
Pilihan ing ngisor iki kasedhiya:
- Ngontrol entri C-state kanthi dinamis:
Mbukak
/dev/cpu_dma_latency lan nulis latensi maksimum sing diidini.
CATETAN
Ana program cilik sing disebut cpudmalatency.c sing bisa diundhuh saka komunitas open source, disusun, lan mbukak saka baris printah kanggo nindakake persis iki.
Ex ing ngisor ikiample ngidini limang μs wektu tangi, lan kanthi mangkono ngidini entri C1: cpudmalatency 5 &
- Batesi status C maksimum ing setelan boot kernel:
Kanggo CPU Intel: intel_idle.max_cstates=1
Kanggo CPU non-Intel: processor.max_cstates=1 - Gunakake perintah cpupower kanggo mriksa lan mateni status CPU C6: Priksa: cpupower monitor utawa cpupower idle-info
Pateni C6: cpupower idle-set -d3 utawa
Pateni C-States: cpupower idle-set -D0
Cathetan:
- Pateni C-states ing CPU yen server nduweni Intel® 4th Gen Intel® Xeon® Scalable Processor(s). Nalika Hyper Threading diaktifake utawa dipatèni, mateni negara nganggur (-D0) ngalangi intine saka ngetik negara kurang daya sak wektu meneng lan nyuda latensi kanggo CPU kanggo transisi antarane negara nganggur lan aktif.
- Manajemen daya saka Intel® 4th Gen Intel® Xeon® Scalable Processor banget agresif. Kanggo ngindhari intine mlebu negara-negara sing kurang daya, coba kurangi jumlah inti sing digunakake supaya tetep siyaga luwih suwe (ethtool -L digabungake ). Uga, ikatan interrupts kanggo intine tartamtu nggunakake set irq karemenan (paling asring karo -x lokal utawa dhaftar intine CPU), lan mesthekake workload mlaku ing sing padha intine karo taskset utawa numactl. Iki nambah kinerja kanthi njaga inti aktif lan ngoptimalake penanganan interupsi.
Aktifake C6:
cpupower idle-set -d3
Aktifake C-States:
cpupower idle-set -E
- Cara liya yaiku nggunakake alat sing disetel (kalebu akeh distribusi Linux) kanggo nyetel kinerja profile. Iki profiles ngowahi sawetara setelan OS sing bisa mengaruhi kinerja antarane akeh aplikasi. Wis ditemokake yen jaringan-throughput profile menehi dandan kanggo paling workloads.
Priksa:
tuned-adm aktif
Set:
tuned-adm profile jaringan-throughput
CATETAN
Layanan sing disetel kudu mlaku kanggo printah ing ndhuwur. Kanggo mriksa / miwiti maneh, disetel: status systemctl disetel systemctl miwiti maneh disetel
Sampeyan uga bisa ora ngidini entri C-state kanthi nambahake ing ngisor iki menyang baris boot kernel:
nganggur = poll - Matesi negara C liwat setelan manajemen daya BIOS sistem, sing bisa uga duwe kinerja profile kasedhiya.
Piranti kayata turbostat utawa x86_energy_perf_policy bisa digunakake kanggo mriksa utawa nyetel setelan manajemen daya.
5.2.2 Manajemen Daya PCIe
Active-State Power Management (ASPM) mbisakake negara daya ngisor kanggo PCIe pranala nalika lagi ora dienggo aktif. Iki bisa nyebabake latensi sing luwih dhuwur ing piranti jaringan PCIe, mula Intel nyaranake sampeyan mateni ASPM kanggo beban kerja sing sensitif latensi. Pateni ASPM kanthi nambahake ing ngisor iki menyang baris boot kernel: pcie_aspm=off
5.2.3 CPU Frequency Scaling
Skala frekuensi CPU (utawa skala kacepetan CPU) minangka teknik manajemen daya Linux sing kacepetan jam sistem diatur kanthi cepet kanggo ngirit daya lan panas. Kaya negara C, iki bisa nyebabake latensi sing ora dikarepake ing sambungan jaringan.
Alat cpupower uga bisa digunakake kanggo mriksa lan ngowahi standar lan watesan kinerja CPU:
- Priksa: cpupower monitor utawa
- Setel CPU menyang mode kinerja: cpupower frekuensi-set -g kinerja
CATETAN
Modifikasi watesan frekuensi CPU bisa nduwe pengaruh kanggo akeh beban kerja lan bisa uga mateni fitur liyane, kayata mode turbo CPU.
Kanggo mateni skala frekuensi CPU, mateni layanan daya CPU kanthi printah ing ngisor iki:
systemctl mungkasi cpupower.service
systemctl mateni cpupower.service
5.2.4 Pandhuan Manajemen Daya Tambahan
Rincian tambahan kasedhiya ing tingkat dhuwur iki liwatview saka akeh fitur manajemen daya ing prosesor Intel® Xeon® Scalable Generasi kaping 3, uga pandhuan babagan carane fitur kasebut bisa digabungake ing tingkat platform: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo ngedongkrak
Intel® Turbo Boost ndadekake prosesor luwih cepet yen perlu nanging bisa nggunakake daya tambahan. Mateni Turbo Boost supaya prosesor tetep kanthi kacepetan, menehi tingkat kinerja sing konsisten kanggo beban kerja tartamtu.
5.4 Firewall
Firewall bisa mengaruhi kinerja, utamane kinerja latensi.
Pateni iptables / firewalld yen ora dibutuhake.
5.5 Setelan Aplikasi
Asring thread siji (sing cocog karo antrian jaringan siji) ora cukup kanggo entuk bandwidth maksimum. Sawetara arsitektur platform, kayata AMD, cenderung ngeculake luwih akeh paket Rx kanthi benang siji dibandhingake karo platform kanthi prosesor berbasis Intel.
Coba gunakake piranti kaya taskset utawa numactl kanggo masang aplikasi menyang simpul NUMA utawa inti CPU lokal menyang piranti jaringan. Kanggo sawetara beban kerja kayata panyimpenan I/O, mindhah aplikasi menyang simpul non-lokal menehi keuntungan.
Eksperimen kanthi nambah jumlah utas sing digunakake dening aplikasi sampeyan yen bisa.
5.6 Versi Kernel
Umume kernel ing kothak modern cukup dioptimalake kanggo kinerja nanging, gumantung saka kasus panggunaan sampeyan, nganyari kernel bisa nyedhiyakake kinerja sing luwih apik. Ngundhuh sumber uga ngidini sampeyan ngaktifake / mateni fitur tartamtu sadurunge nggawe kernel.
5.7 Sistem Operasi/Setelan Kernel
Hubungi pandhuan tuning sistem operasi, kayata Pandhuan Tuning Kinerja Jaringan Red Hat Enterprise Linux, kanggo informasi luwih lengkap babagan tuning sistem operasi umum.
Sawetara paramèter umum kanggo nyetel didaftar ing tabel ing ngisor iki. Elinga yen iki mung disaranake titik wiwitan, lan ngganti saka standar bisa nambah sumber daya sing digunakake ing sistem. Sanadyan nambahake nilai bisa mbantu ningkatake kinerja, perlu eksperimen karo nilai sing beda kanggo nemtokake apa sing paling apik kanggo sistem, beban kerja lan jinis lalu lintas tartamtu.
Parameter kernel bisa dikonfigurasi nggunakake utilitas sysctl ing Linux kaya sing dituduhake ing ngisor iki.
Kanggo view nilai standar kanggo rmem lan wmem ing sistem:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Setel nilai maksimal (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Ukuran buffer soket, uga dikenal minangka buffer nampa (rmem) lan ngirim buffer (wmem), paramèter sistem sing nemtokake jumlah memori dilindhungi undhang-undhang kanggo lalu lintas jaringan mlebu lan metu.
Mlaku sysctl tanpa argumen -w nampilake parameter kanthi setelan saiki.
Setelan tumpukan | Katrangan |
net.core.rmem_default | Ukuran Jendela Nampa Default |
net.core.wmem_default | Ukuran Jendela Kirim Default |
net.core.rmem_max | Ukuran Window Nampa maksimal |
net.core.wmem_max | Ukuran Jendela Transmit maksimal |
net.core.optmem_max | Buffer Memori Pilihan Maksimum |
net.core.netdev_max_backlog | Backlog paket sing durung diproses sadurunge kernel wiwit ngeculake |
net.ipv4.tcp_rmem | Reserver memori kanggo TCP maca buffer |
net.ipv4.tcp_wmem | Reserver memori kanggo TCP ngirim buffer |
Kernel, tumpukan jaringan, panangan memori, kacepetan CPU, lan paramèter manajemen daya bisa nduwe pengaruh gedhe ing kinerja jaringan. Rekomendasi umum yaiku aplikasi kanggo throughput jaringan profile nggunakake printah disetel. Iki ngowahi sawetara setelan OS kanggo menehi pilihan kanggo aplikasi jaringan.
Priksa:
tuned-adm aktif
Set:
tuned-adm profile jaringan-throughput
5.8 Backlog Piranti Jaringan
Fitur iki mbantu ningkatake kinerja jaringan kanthi ngatur lalu lintas mlebu kanthi efektif, nyuda mundhut paket, nyuda latensi, lan ningkatake throughput. Iki nyebabake pengalaman pangguna sing luwih apik lan respon sistem sing luwih cepet.
Kanthi gawan, diaktifake ing umume sistem operasi Linux. Kanggo mriksa nilai standar:
sysctl net.core.netdev_max_backlog
Nilai maksimal kanggo netdev_max_backlog bisa beda-beda gumantung saka faktor kaya versi kernel, hardware, memori, lan beban kerja. Ing sawetara kasus, 8192 katon minangka nilai sing apik. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfigurasi lan Tuning Khusus Platform
5.9.1 Generasi 4 Intel® Xeon® Prosesor Scalable
Manajemen daya prosesor Intel® Xeon® Scalable Generasi kaping 4 banget agresif dibandhingake karo prosesor Intel® Xeon® Scalable Generasi 3rd. Kanggo ngindhari intine mlebu negara-negara sing kurang daya, coba kurangi jumlah inti sing digunakake supaya tetep tangi luwih suwe.
Setelan Bios sing Disaranake kanggo Kinerja Paling Dhuwur
- Hyper-threading ngaktifake / mateni (adhedhasar syarat beban kerja lan tujuan kinerja) ing CPU.
- Setel sistem profile kanggo Performance kanggo kinerja maksimum.
CATETAN
Iki nyebabake konsumsi daya sing luwih dhuwur - Setel manajemen daya CPU menyang Kinerja Maksimum kanggo prioritas kinerja CPU maksimal tinimbang efisiensi daya.
- Aktifake Turbo Boost. Mateni Turbo Boost ing setelan BIOS sistem biasane nyegah CPU supaya ora nambah kacepetan jam kanthi dinamis ngluwihi frekuensi dhasar.
- CATETAN
Mateni Turbo Boost bisa uga cocog kanggo kasus panggunaan tartamtu sing kinerja konsisten, efisiensi daya, utawa manajemen termal diutamakake tinimbang kinerja maksimal. - Pateni fitur Single Root I/O Virtualization (SR-IOV), yen sistem ora nggunakake teknologi virtualisasi.
- Pateni C-states kanggo nuntun CPU supaya tetep aktif lan nyegah mlebu negara nganggur sing luwih jero.
- Pateni C1E, kanggo mesthekake yen CPU tetep aktif lan ora ngetik negara nganggur C1E.
- Setel frekuensi uncore kanggo maksimum kanggo instruksi sistem kanggo operate ing frekuensi paling kasedhiya.
- Ing platform Dell, nyetel Multiple APIC Description Tabel (MADT) emulation inti kanggo Linear (utawa Round-Robin gumantung BIOS) kanggo nyedhiyani pemetaan cetha lan katebak inti CPU.
Disaranake OS Level Tuning kanggo Optimized Performance
- Setel gubernur skala frekuensi CPU kanggo kinerja. cpupower frekuensi-set -g kinerja cpupower frekuensi-info
- Pateni C-States. cpupower idle-set -D0
- Setel inti Rx (rmem) lan Tx (wmem) buffer kanggo nilai maksimum. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Setel backlog piranti jaringan. sysctl -w net.core.netdev_max_backlog=8192
- Setel disetel profile (gumantung beban kerja kanggo throughput / latensi).
tuned-adm profile jaringan-throughput
Disaranake Penyetelan Tingkat Adaptor kanggo Kinerja sing Dioptimalake
- Batesi jumlah antrian sing digunakake kanggo lalu lintas aplikasi. Gunakake jumlah minimal antrian sing dibutuhake supaya inti CPU sing gegandhengan tetep aktif kanggo nyegah wong-wong mau ora mlebu ing kahanan nganggur sing luwih jero (nyetel beban kerja): ethtool -L gabungan 32
- Setel tarif moderat interupsi. ethtool -C adaptif-rx mati adaptif-tx mati rx-usecs-dhuwur 50 rx-usecs 50 tx-usecs 50
Coba atur wektu pangirim / nampa / coalescing prioritas dhuwur sing luwih dhuwur (80/100/150/200) utawa luwih murah (25/20/10/5) kanggo nemokake nilai sing optimal kanggo beban kerja. - Setel ukuran ring Rx/Tx. ethtool -G rx 4096 tx 4096
CATETAN
Yen sampeyan ndeleng paket Rx irungnya karo ethtool -S| grep drop, coba kurangi ukuran dering dadi <4096. Coba golek nilai sing paling optimal kanggo beban kerja ing ngendi paket ora ilang. - Setel Afinitas IRQ. Gunakake inti lokal menyang NIC, utawa pemetaan inti tartamtu (ngendi # intine padha karo jumlah antrian sing disetel ing 1 ing kaca 26. systemctl mungkasi irqbalance set_irq_affinity -X lokal UTAWA set_irq_affinity -X
5.9.2 AMD EPYC
Prosesor AMD EPYC minangka CPU kuat sing digawe kanggo server lan pusat data, dibangun ing arsitektur Zen AMD. Setelan ing ngisor iki saka seri EPYC generasi kaping 4 AMD.
Setelan BIOS sing disaranake kanggo Kinerja Paling Dhuwur
- Aktifake mode khusus kanggo ngidini pangguna nyetel kinerja CPU, konsumsi daya, lan setelan liyane. Iki mbantu nyempurnakake sistem kanggo imbangan paling apik antarane kinerja lan efisiensi energi.
- Aktifake ngedongkrak kinerja inti supaya CPU kanthi otomatis nambah kacepetan kanggo nangani tugas luwih intensif, nambah kinerja sakabèhé.
- Pateni kontrol C-negara global, kanggo nyegah CPU saka ngetik negara daya luwih jero dikenal minangka C-negara, kang bisa njaga responsif.
CATETAN
Mateni C-state bisa nyebabake konsumsi daya tambahan lan nambah suhu termal. Ngawasi loro kanggo beban kerja. - Aktifake / mateni Simultaneous Multithreading (SMT) ing CPU, adhedhasar syarat beban kerja lan tujuan kinerja. SMT padha karo Hyper Threading ing CPU Intel.
CATETAN
Kanggo kinerja sing dioptimalake, deleng Tuning i40e Driver Settings ing kaca 13 lan Platform Tuning (i40e Non-Specific) ing kaca 19 kanggo OS sing disaranake lan tuning level adaptor.
Adaptor Bonding
Ikatan Linux minangka fitur kuat sing bisa ningkatake kinerja jaringan, redundansi, lan toleransi kesalahan ing lingkungan server. Nanging, penting kanggo dicathet yen mbutuhake hardware jaringan sing kompatibel lan konfigurasi sing tepat ing server lan switch supaya bisa digunakake kanthi bener.
Pembalap ikatan ing Linux ngidini sampeyan nglumpukake sawetara antarmuka jaringan fisik dadi antarmuka sing diikat. Antarmuka ikatan iki katon minangka antarmuka jaringan virtual tunggal menyang sistem operasi lan aplikasi.
CATETAN
Ikatan kasebut minangka antarmuka logis, saengga ora bisa nyetel afinitas CPU langsung ing antarmuka obligasi (kanggo example, bond0). Yaiku, ora duwe kontrol langsung babagan penanganan interupsi utawa afinitas CPU. Karemenan CPU kudu diatur kanggo antarmuka ndasari sing bagéan saka jaminan.
Ikatan nyedhiyakake sawetara mode operasi, saben duwe ciri dhewe.
Mode | Jinis |
0 | Babak Robin |
1 | Gawe serep aktif |
2 | XOR |
3 | Siaran |
4 | LACP |
5 | Ngirim Balance Load |
6 | Adaptive Load Balance |
Ana macem-macem cara kanggo nggawe ikatan ing Linux. Salah sawijining cara sing paling umum yaiku nggunakake konfigurasi jaringan files (kanggo example, /etc/network/ interfaces utawa /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurasi Nggunakake Konfigurasi Jaringan Files
Langkah-langkah ing ngisor iki nggawe ikatan liwat konfigurasi jaringan files.
- Pilih loro utawa luwih port NIC kanggo ikatan (kanggo example, ethX lan ethY)
- Bukak Konfigurasi NIC Files ing /etc/sysconfig/network-scripts/ kanggo Antarmuka NIC sing dibutuhake (kanggo example, vi ifcfg-ethX lan vi ifcfg-ethY) lan tambahake teks ing ngisor iki:
MASTER=bondN [Cathetan: N minangka integer kanggo nyebutake nomer jaminan.] SLAVE=ya - Nggawe skrip jaringan ikatan file nggunakake vi /etc/sysconfig/networkscripts/ifcfg-bondN banjur ketik teks ing ngisor iki:
DEVICE=bondN [Cathetan: N minangka integer kanggo nyebutake nomer jaminan] ONBOOT=ya USERCTL=ora BOOTPROTO=dhcp (utawa) ora ana
IPADDR=200.20.2.4 [dibutuhake yen BOOTPROTO = ora ana] NETMASK = 255.255.255.0 [dibutuhake yen BOOTPROTO = ora ana] NETWORK = 200.20.2.0 [dibutuhake yen BOOTPROTO = ora ana] BROADCAST = 200.20.2.255. BONDING_OPTS=”mode=1 miimon=100″
CATETAN
Mode bisa wae integer saka 0 kanggo 6 adhedhasar requirement. - Wiwiti maneh layanan jaringan nggunakake layanan miwiti maneh jaringan utawa systemctl miwiti maneh NetworkManager.service
Ngatasi Masalah Kinerja
7.1 Panggunaan CPU
Priksa panggunaan CPU saben inti nalika beban kerja mlaku.
Elinga yen panggunaan saben inti luwih cocog karo kinerja tinimbang panggunaan CPU sakabèhé amarga menehi ide babagan panggunaan CPU saben antrian jaringan. Yen sampeyan mung duwe sawetara utas sing mbukak lalu lintas jaringan, sampeyan bisa uga duwe sawetara inti sing digunakake. Nanging, yen inti kasebut ana ing 100%, mula throughput jaringan sampeyan bakal diwatesi dening panggunaan CPU lan wektune kanggo nindakake ing ngisor iki:
- Tune moderasi/ukuran dering IRQ minangka rinci ing Moderasi Interrupt.
- Tambah jumlah utas aplikasi kanggo nyebarake beban CPU ing luwih akeh intine. Yen kabeh intine mlaku ing 100%, aplikasi sampeyan bisa uga kaiket CPU tinimbang kaiket jaringan.
Alat sing umume kasedhiya:
- ndhuwur
- Pencet 1 kanggo nggedhekake dhaptar CPU lan mriksa endi sing digunakake.
- Wigati tingkat panggunaan.
- Kabar pangolahan sing kadhaptar minangka paling aktif (ing ndhuwur dhaftar). - mpstat
Ex ing ngisor ikiampbaris printah iki dites ing Red Hat Enterprise Linux 7.x.
Nampilake panggunaan CPU saben inti (kanthi nemokake total persen nganggur lan nyuda saka 100) lan nyorot nilai ing ndhuwur 80% kanthi warna abang. mpstat -P ALL 1 1 | grep -v Rata-rata | buntut -n +5 | sirah -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | kolom - perf ndhuwur Deleng ing ngendi siklus lagi ngginakaken.
7.2 i40e Counter
Driver i40e menehi dhaptar dawa counters kanggo debug antarmuka lan ngawasi liwat printah ethtool -S ethX. Bisa migunani kanggo nonton output nalika beban kerja mlaku lan/utawa mbandhingake nilai counter sadurunge lan sawise mbukak beban kerja.
- Kanggo njaluk dump lengkap counters i40e: ethtool -S ethX
- Kanggo nonton mung non-nol counters: watch -d (ethtool -S ethX) | egrep -v :\ 0 | kolom
Sawetara perkara sing kudu digoleki: - rx_dropped tegese CPU ora nglayani buffer cukup cepet.
- port.rx_dropped tegese soko ora cukup cepet ing slot / memori / sistem.
7.3 Penghitung Jaringan
Priksa netstat -s sadurunge / sawise mbukak beban kerja.
Netstat ngumpulake informasi jaringan saka kabeh piranti jaringan ing sistem. Mula, asil bisa uga kena pengaruh saka jaringan saliyane jaringan sing diuji. Output saka netstat -s bisa dadi indikator sing apik kanggo masalah kinerja ing sistem operasi utawa kernel Linux. Hubungi pandhuan tuning sistem operasi, kayata Pandhuan Tuning Kinerja Jaringan Red Hat Enterprise Linux, kanggo informasi luwih lengkap babagan tuning sistem operasi umum.
7.4 Sistem Log
Priksa log sistem kanggo kesalahan lan bebaya (/var/log/pesen, dmesg).
7.5 Alat Intel svr-info
Intel nyedhiyakake alat svr-info (ndeleng https://github.com/intel/svr-info) kanggo Linux sing njupuk rincian hardware lan piranti lunak saka server. Output svr-info bisa banget mbiyantu kanggo ngenali bottlenecks sistem utawa setelan / tuning sing ora dioptimalake kanggo beban kerja. Nalika mbukak kasus dhukungan karo Intel kanggo masalah kinerja sing gegandhengan karo Ethernet, manawa sampeyan kalebu output svr-info (text file) kanggo saben server Linux ing konfigurasi test.
- Ngundhuh lan nginstal svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> jeneng host.txt - Nglumpukake output:
./svr-info > hostname.txt - Pasang siji teks (.txt) file kanggo saben server kanggo cilik support Intel kanggo analisis.
Rekomendasi kanggo Skenario Kinerja Umum
8.1 IP Terusake
- Nganyari kernel.
Sawetara kernel in-distro anyar wis ngrusak kinerja rute amarga owah-owahan kernel ing kode rute sing diwiwiti kanthi mbusak cache rute amarga keamanan. Kernel metu-saka-distro anyar kudu duwe tambalan sing nyuda pengaruh kinerja saka owah-owahan kasebut lan bisa uga nambah kinerja. - Pateni hyper-threading (inti logis).
- Ngowahi parameter boot kernel.
- Meksa iommu mati (intel_iommu = mati utawa iommu = mati) saka baris boot kernel kajaba dibutuhake kanggo virtualisasi
- Pateni manajemen daya: processor.max_cstates=1 idle=poll pcie_aspm=off - Matesi jumlah antrian supaya padha karo jumlah inti ing soket lokal (12 ing ex ikiample). ethtool -L ethX gabungan 12
- Pin interrupts mung menyang soket lokal. set_irq_affinity -X lokal ethX UTAWA set_irq_affinity -X lokal ethX
CATETAN
-X utawa -x bisa digunakake gumantung saka beban kerja. - Ganti ukuran ring Tx lan Rx yen perlu. Nilai sing luwih gedhe mbutuhake luwih akeh sumber daya nanging bisa nyedhiyakake tarif penerusan sing luwih apik. ethtool -G ethX rx 4096 tx 4096
- Pateni GRO nalika nuntun.
Amarga masalah kernel sing dikenal, GRO kudu dipateni nalika nuntun / nerusake. ethtool -K ethX gro mati ngendi ethX punika antarmuka Ethernet kanggo diowahi. - Pateni moderasi interupsi adaptif lan setel nilai statis. ethtool -C ethX adaptif-rx mati adaptif-tx mati ethtool -C ethX rx-usecs 64 tx-usecs 64
CATETAN
Gumantung ing jinis prosesor lan workload, paramèter coalescing kanggo RX lan TX bisa diatur kanggo kinerja apik (utawa mundhut pigura kurang).
- Pateni firewall. sudo systemctl mateni firewalld sudo systemctl mungkasi firewalld
- Aktifake penerusan IP. sysctl -w net.ipv4.ip_forward=1
- Ngatur nilai maksimum kanggo nampa lan ngirim soket ukuran buffer. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
CATETAN
Gumantung saka beban kerja utawa syarat, nilai kasebut bisa diganti saka standar.
8.2 Latency Kurang
- Pateni hyper-threading (inti logis).
- Priksa manawa piranti jaringan lokal kanggo numa inti 0.
- Pin pathokan menyang inti 0 nggunakake taskset -c 0.
- Pateni irqbalance nggunakake systemctl stop irqbalance utawa systemctl mateni irqbalance
- Jalanake skrip afinitas kanggo nyebar ing inti. Coba lokal utawa kabeh.
- Pateni moderat interupsi. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptif-rx mati adaptif-tx mati rxusecs- dhuwur 0
- Batesi jumlah antrian supaya padha karo jumlah inti ing soket lokal (32 ing ex ikiample). ethtool -L ethX gabungan 32
- Pin interrupts menyang soket lokal mung (script rangkep karo sumber driver i40e). set_irq_affinity -X lokal ethX
- Gunakake pathokan sing wis ditemtokake kaya netperf -t TCP_RR, netperf -t UDP_RR, utawa NetPipe. netperf -t TCP_RR utawa netperf -t UDP_RR
- Pin pathokan menyang inti siji ing simpul NUMA lokal. kumpulan tugas -c
Intel ® Ethernet 700 Series
Linux Performance Tuning Guide
Desember 2024
Dok. No.: 334019, Wahyu: 1.2
Dokumen / Sumber Daya
![]() |
Intel Ethernet 700 Series Linux Performance Tuning [pdf] Pandhuan pangguna 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |