Intel ® Ethernet 700 Series
Panduan Penalaan Prestasi Linux
Kumpulan Rangkaian Awan NEX (NCNG)
Wahyu 1.2
Disember 2024
Sejarah Semakan
Semakan | tarikh | Komen |
1.2 | Disember 2024 | · Menambah Panduan Pengurusan Kuasa Tambahan. · Menambah Intel* Turbo Boost. · Penambahan Rangkaian Peranti Backlog. · Menambah Konfigurasi dan Penalaan Khusus Platform. · Menambahkan Pemproses Boleh Skala Intel* %eon* Generasi Ke-4. · Menambah AMD EPYC. · Kemas kini Semak Keupayaan Perkakasan Sistem. · Kemas kini iPerf2. · Kemas kini iPerf3. · Barisan Tx/Rx yang dikemas kini. · Penyederhanaan Gangguan yang dikemas kini. · Saiz Cincin dikemas kini. · Penalaan Platform Dikemaskini (i40e Tidak Khusus). · Tetapan BIOS yang dikemas kini. · Kawalan C-State yang dikemas kini. · Penskalaan Frekuensi CPU yang dikemas kini. · Tetapan Aplikasi yang dikemas kini. · Sistem Pengendalian/Tetapan Kernel dikemas kini. · Pemajuan IP yang dikemas kini. · Kependaman Rendah dikemas kini. |
Ogos 2023 | Perubahan pada dokumen ini induksi: · Menambah Rujukan Berkaitan. · Ditambah Pastikan Pakej DDP Dimuatkan dengan Betul. · Menambah iPerf2. · Menambah iPerf3. · Menambah netperf. · Perkaitan IRQ yang dikemas kini. · Menambah Baris Tx/Rx. · Saiz Cincin dikemas kini. · Menambah Bingkai Jumbo. · Ikatan Penyesuai Ditambah. · Menambah Alat Intel svr-info. |
|
1.0 | Mac 2016 | Keluaran Awal (Intel Public). |
pengenalan
Panduan ini bertujuan untuk menyediakan panduan untuk menyesuaikan persekitaran untuk prestasi rangkaian yang optimum menggunakan Intel ® Ethernet 700 Series NICs dalam persekitaran Linux. Ia memfokuskan pada perkakasan, pemacu dan keadaan dan tetapan sistem pengendalian yang mungkin meningkatkan prestasi rangkaian. Perlu diingatkan bahawa prestasi rangkaian boleh dipengaruhi oleh mana-mana bilangan pengaruh luar, hanya yang paling biasa dan dramatik dibincangkan dalam panduan ini.
1.1 Rujukan Berkaitan
- Panduan Pengguna untuk semua penyesuai dan peranti Intel ® Ethernet, yang menyokong Windows dan Linux:
Panduan Pengguna Penyesuai dan Peranti Intel ® Ethernet - Lembaran Data Teknikal:
Lembaran Data Intel ® Ethernet Controller X710/XXV710/XL710 - Himpunan SW lengkap untuk semua produk Intel ® Ethernet (muat turun semua pemacu, NVM, alatan, dsb.):
Pek Pemacu Lengkap Penyesuai Ethernet Intel ® Ethernet - Pakej Kemas Kini NVM (Memori Tidak Meruap):
Utiliti Kemas Kini Memori Tidak Meruap (NVM) untuk Intel ® Ethernet Network Adapter 700 Series - alat svr-info untuk Linux yang menangkap butiran perkakasan dan perisian yang berkaitan daripada pelayan: https://github.com/intel/svr-info
- Panduan Teknologi DDP:
Panduan Teknologi Pemperibadian Peranti Dinamik (DDP) Intel ® Ethernet 700 Series
Senarai Semak Permulaan
2.1 Kemas kini Versi Pemacu/ Perisian Tegar
Semak versi pemacu/perisian tegar menggunakan ethtool -i ethx.
Kemas kini perkara berikut mengikut keperluan:
- Kemas kini pemacu 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 - Kemas kini perisian tegar
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Baca README
Semak isu yang diketahui dan dapatkan arahan konfigurasi terkini daripada README file disertakan dalam pakej sumber i40e.
2.3 Semak Adakah Slot PCI Express (PCIe) Anda Adalah x8
Sesetengah slot PCIe x8 sebenarnya dikonfigurasikan sebagai slot x4. Slot ini mempunyai lebar jalur yang tidak mencukupi untuk kadar talian penuh dengan peranti dwi port dan port quad. Selain itu, jika anda meletakkan penyesuai berkemampuan PCIe v3.0 ke dalam slot PCIe v2.x, anda tidak boleh mendapatkan lebar jalur penuh. Pemacu peranti perisian mengesan situasi ini dan menulis mesej berikut dalam log sistem:
Jalur lebar PCI-Express yang tersedia untuk kad ini tidak mencukupi untuk prestasi optimum. Untuk prestasi optimum, slot PCI-Express x8 diperlukan.
Jika ralat ini berlaku, alihkan penyesuai anda ke slot PCIe v3.0 x8 sebenar untuk menyelesaikan isu tersebut.
2.4 Semak Keupayaan Perkakasan Sistem
Pada 10 Gbps, 25 Gbps dan 40 Gbps Ethernet, terdapat beberapa keperluan CPU dan sistem minimum. Secara umum, pemproses kelas pelayan moden dan konfigurasi memori optimum untuk platform anda sepatutnya mencukupi, tetapi keperluan berbeza-beza bergantung pada beban kerja anda. Semua saluran memori harus diisi dan mod prestasi memori harus didayakan dalam BIOS. Sahkan bahawa konfigurasi CPU dan memori anda mampu menyokong tahap prestasi rangkaian yang anda perlukan untuk beban kerja anda.
NOTA
XL710 ialah pengawal 40 GbE. Penyesuai 2 x 40 GbE yang menggunakan pengawal ini tidak bertujuan untuk menjadi 2 x 40 GbE tetapi 1 x 40 GbE dengan port sandaran aktif. Apabila cuba menggunakan trafik kadar talian yang melibatkan kedua-dua port, suis dalaman tepu dan lebar jalur gabungan antara kedua-dua port dihadkan kepada jumlah SO Gbps.
2.4.1 Parameter But Kernel
Jika Intel® Virtualization Technology for Directed I/O (Intel® VT-d) didayakan dalam BIOS, Intel mengesyorkan agar IOMMU berada dalam mod pass-through untuk prestasi rangkaian hos yang optimum. Ini menghapuskan overhed DMA pada trafik hos sambil mendayakan Mesin Maya (VM) untuk masih mempunyai faedah Intel® VT-d. Ini dicapai dengan menambah baris berikut pada parameter but kernel: fommu-pt.
2.5 Pastikan Pakej DDP Dimuatkan Dengan Betul
Pemacu asas 140ea dan 140eb tidak mempunyai sokongan langsung untuk Pemperibadian Peranti Dinamik (DDP). Untuk menggunakan DDP dengan peranti 700 Series, DDP profile boleh digunakan dengan aplikasi testpmd.
Untuk butiran tentang DDP profiles, dan cara menggunakan DDP profile dengan testpmd pada peranti 700 Series, rujuk Panduan Teknologi Pemperibadian Peranti Dinamik (DDP) Intel® Ethernet 700 Series.
Untuk mengesahkan sama ada DDP profile telah berjaya dimuatkan:
testpmd> ddp dapatkan senarai 0 Profile nombor ialah: 1
NOTA
Jika profile nombor ialah 0, tiada pakej DDP dimuatkan. Sekiranya berlaku ralat pemuatan pakej DDP, peranti lalai kepada mod selamat dan banyak ciri prestasi tidak tersedia. Jika terdapat ralat yang berkaitan dengan memuatkan pakej DDP, ia akan menyebabkan isu prestasi. Untuk langkah penyelesaian masalah, rujuk Panduan Teknologi Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP).
Pengukuran Prestasi Garis Dasar dan Metodologi Penalaan
3.1 Penanda Aras Prestasi Rangkaian
Sebelum memulakan latihan penalaan, adalah penting untuk mempunyai ukuran garis dasar yang baik bagi prestasi rangkaian anda. Biasanya selain mendapatkan ukuran awal prestasi aplikasi/beban kerja khusus anda, adalah idea yang baik untuk turut menggunakan penanda aras prestasi rangkaian standard untuk mengesahkan bahawa peranti rangkaian anda berada dalam keadaan yang baik.
Untuk pengoptimuman sistem tunggal, netperf atau iperf dan NetPIPE adalah semua alatan percuma sumber terbuka yang kukuh yang membolehkan anda menekankan sambungan dan mendiagnosis isu prestasi.
Netperf kukuh untuk ujian daya pemprosesan dan kependaman. NetPIPE ialah alat khusus kependaman tetapi boleh disusun untuk sebarang jenis persekitaran.
NOTA
Ujian TCP_RR dalam netperf mengembalikan kependaman dalam nilai transaksi/saat. Ini ialah nombor pergi balik. Latensi sehala boleh dikira menggunakan persamaan berikut:
Latensi(penggunaan) = (1⁄2) / [Transaksi/saat] * 1,000,000
3.1.1 iPerf2
Intel mengesyorkan iperf2 berbanding iperf3 untuk kebanyakan situasi penandaarasan kerana kemudahan penggunaan dan sokongan berbilang benang dalam satu contoh aplikasi. Intel mengesyorkan berjalan dengan pilihan -P dengan 2-4 utas untuk sambungan 25G dan sekitar 4-6 utas untuk sambungan 40G.
- Untuk menjalankan trafik sehala dari klien ke pelayan: Perintah pelayan example: iperf2 -s
Perintah pelanggan example: iperf2 -c -P - Untuk menjalankan trafik dua arah dari klien ke pelayan (dan sebaliknya): Perintah pelayan example: iperf2 –s –p
Perintah pelanggan example:
iperf2 -c -hlm -P -–dupleks penuh ATAU
iperf2 -c -hlm -P –d
NOTA
Kedua-dua pilihan –full-duplex dan -d dalam iperf2 membolehkan pengguna melakukan ujian dwiarah. Walau bagaimanapun, pilihan -full-dupleks tertumpu secara khusus pada ujian dupleks penuh.
NOTA
Apabila menguji iperf2 merentasi berbilang port pelayan, bendera -d boleh ditambah pada arahan pelayan untuk menjalankan semua sesi pelayan di latar belakang dari tetingkap terminal yang sama. Bendera -d juga boleh digunakan apabila arahan pelayan dibenamkan di dalam gelung untuk dalam skrip.
NOTA
Apabila menjalankan ujian throughput rangkaian dengan satu aliran/benang (cthample: P1), pemproses AMD mungkin tidak menyediakan daya pemprosesan yang dijangkakan, terutamanya NIC lebar jalur yang lebih tinggi (jika kelajuan ialah >= lebar jalur 25G). Akibatnya, penyematan aplikasi pada teras tertentu diperlukan untuk mencapai daya pemprosesan yang lebih tinggi. Lihat Tetapan Aplikasi pada halaman 22.
3.1.2 iPerf3
Jika iperf3 digunakan, beberapa contoh aplikasi diperlukan untuk mengambil advantage daripada berbilang benang, RSS dan baris gilir perkakasan. Intel mengesyorkan berjalan dengan 2-4 sesi aplikasi untuk sambungan 25G dan sekitar 4-6 sesi untuk sambungan 40G. Setiap sesi harus menentukan nilai port TCP yang unik menggunakan pilihan -p.
- Untuk menjalankan trafik satu arah dari klien ke pelayan:
Perintah pelayan example:
iperf3 -s -p
Perintah pelanggan example:
iperf3 -c -hlm - Untuk menjalankan trafik dua arah dari klien ke pelayan (dan sebaliknya):
Perintah pelayan example:
iperf3 –s –p
Perintah pelanggan example: iperf3 -c -hlm -P –-bidir - Untuk memulakan berbilang contoh (benang) iperf3, pengesyoran adalah menggunakan gelung untuk untuk memetakan benang ke port TCP dan menjalankan iperf3 di latar belakang menggunakan & untuk mencipta berbilang proses secara selari.
Perintah pelayan example, mulakan 4 utas: port =””; untuk i dalam {0..3}; lakukan port=520$i; bash -c “iperf3 -s -p $port &”; selesai; Perintah pelanggan example, mulakan 4 utas – Hantar port ujian=””; untuk i dalam {0..3}; lakukan port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; selesai; Perintah pelanggan example, mulakan 4 utas – Terima port ujian=””; untuk i dalam {0..3}; lakukan port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; selesai; Untuk sambungan 40G, tingkatkan gelung untuk menghasilkan sehingga 6 kejadian/benang.
NOTA
Apabila menjalankan ujian throughput rangkaian dengan satu aliran/benang (cthample: P1), pemproses AMD mungkin tidak menyediakan daya pemprosesan yang dijangkakan, terutamanya lebar jalur yang lebih tinggi
NIC (jika kelajuan ialah >= lebar jalur 25G). Akibatnya, penyematan aplikasi pada teras tertentu diperlukan untuk mencapai daya pemprosesan yang lebih tinggi. Lihat Tetapan Aplikasi pada halaman 22 dan AMD EPYC pada halaman 26.
3.1.3 netperf
Alat netperf ialah pilihan yang kukuh untuk ujian daya pemprosesan dan kependaman.
- Ujian TCP_STREAM dalam netperf mengukur keupayaan pemprosesan peranti. Perintah pelayan example: perintah Pelanggan netserver example: netperf -t TCP_STREAM -l 30 -H
- Ujian TCP_RR dalam netperf mengembalikan kependaman dalam nilai transaksi/saat. Ini ialah nombor pergi balik. Adalah disyorkan untuk menggunakan pilihan -T x,x, jika x ialah CPU setempat kepada peranti. Latensi sehala boleh dikira menggunakan: Latency(usec)=(1⁄2)/ [Transactions/sec]*1,000,\ Server command example: pelayan bersih
Perintah pelanggan example: netperf -t TCP_RR -l 30 -H -T x,x - Untuk memulakan berbilang contoh (benang) netperf, cadangannya ialah menggunakan gelung untuk untuk memetakan benang ke port TCP dan menjalankan netperf di latar belakang menggunakan & untuk mencipta berbilang proses secara selari.
Perintah pelayan example, mulakan 8 utas:
port=””; untuk i dalam {0..7}; lakukan port=520$i; bash -c “netserver -L $serverIP -p $port &”; selesai;
Perintah pelanggan example, mulakan 8 utas: port =””; untuk i dalam {0..7}; lakukan port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; selesai;
3.2 Metodologi Penalaan
Fokus pada satu perubahan penalaan pada satu masa supaya anda tahu kesan setiap perubahan kepada ujian anda. Lebih berkaedah anda dalam proses penalaan, lebih mudah untuk mengenal pasti dan menangani punca kesesakan prestasi.
Menala Tetapan Pemacu i40e
4.1 Perkaitan IRQ
Mengkonfigurasi pertalian IRQ supaya gangguan untuk baris gilir rangkaian yang berbeza disambungkan kepada teras CPU yang berbeza boleh memberi impak besar pada prestasi, terutamanya ujian daya pemprosesan berbilang benang.
Untuk mengkonfigurasi pertalian IRQ, hentikan irqbalance dan kemudian sama ada gunakan skrip set_irq_affinity daripada pakej sumber i40e atau pin gilir secara manual. Lumpuhkan pengimbang IRQ ruang pengguna untuk mendayakan penyematan baris gilir:
- systemctl melumpuhkan irqbalance
- systemctl hentikan irqbalance
Menggunakan skrip set_irq_affinity daripada pakej sumber i40e (disyorkan): - Untuk menggunakan semua teras:
[path-to-i40epackage]/scripts/set_irq_affinity -X semua ethX - Untuk menggunakan hanya teras pada soket NUMA tempatan: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Anda juga boleh memilih julat teras. Elakkan menggunakan cpu0 kerana ia menjalankan tugas pemasa. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
NOTA
Skrip perkaitan mendayakan Pemanduan Paket Hantar (XPS) sebagai sebahagian daripada proses penyematan apabila pilihan -x ditentukan. Apabila XPS didayakan, Intel mengesyorkan agar anda melumpuhkan irqbalance, kerana pengimbang kernel dengan XPS boleh menyebabkan prestasi yang tidak dapat diramalkan. Skrip perkaitan melumpuhkan XPS apabila pilihan -X ditentukan. Melumpuhkan XPS dan mendayakan baris gilir simetri adalah bermanfaat untuk beban kerja di mana prestasi terbaik dicapai apabila trafik Tx dan Rx diservis pada pasangan baris gilir yang sama.
Mengkonfigurasi baris gilir simetri dalam Linux melibatkan penalaan parameter pemacu antara muka rangkaian untuk membolehkan baris gilir penerimaan simetri (Rx) dan baris gilir penghantaran simetri (Tx) untuk penyesuai rangkaian yang disokong.
NOTA
- Barisan beratur simetri ialah ciri rangkaian lanjutan, dan bukan semua penyesuai atau pemacu rangkaian 700 siri menyokongnya.
- Pastikan anda mempunyai pemacu dan sokongan perkakasan yang diperlukan sebelum cuba mengkonfigurasi baris gilir simetri.
Untuk mengkonfigurasi baris gilir simetri, ikuti langkah umum ini:
- Edit Konfigurasi Antara Muka Rangkaian File: Gunakan editor teks (contohnyaample, vi, nano, atau gedit) untuk mengedit konfigurasi antara muka rangkaian file. The file lazimnya terletak di bawah direktori /etc/sysconfig/network-scripts/ dan mempunyai nama seperti ifcfg-ethX, di mana ethX ialah nama antara muka rangkaian anda.
- Tambah Parameter Baris Simetri. Tambahkan baris berikut pada konfigurasi antara muka rangkaian file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
- Mulakan semula Perkhidmatan Rangkaian.
Selepas membuat perubahan, mulakan semula perkhidmatan rangkaian untuk menggunakan konfigurasi baharu. sudo systemctl memulakan semula rangkaian
Secara manual:
-
Cari pemproses yang dilampirkan pada setiap nod menggunakan: numactl –hardware lscpu
-
Cari topeng bit untuk setiap pemproses:
- Andaikan teras 0-11 untuk nod 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Cari IRQ yang diberikan kepada port yang diberikan: grep ethX /proc/interrupts dan perhatikan nilai IRQ For example, 181-192 untuk 12 vektor yang dimuatkan.
- Gemakan nilai perkaitan SMP ke dalam entri IRQ yang sepadan. Ambil perhatian bahawa ini perlu dilakukan untuk setiap entri IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Tunjukkan pertalian IRQ:
- Untuk menunjukkan pertalian IRQ untuk semua teras: /scripts/set_irq_affinity -s ethX
- Untuk menunjukkan hanya teras pada soket NUMA tempatan: /scripts/set_irq_affinity -s local ethX
- Anda juga boleh memilih julat teras: /scripts/set_irq_affinity -s 40-0-8,16 ethX
NOTA
Skrip set_irq_affinity menyokong bendera -s dalam pemacu i40e versi 2.16.11 dan lebih baru.
4.2 Barisan Tx/Rx
Bilangan lalai baris gilir yang didayakan untuk setiap port Ethernet oleh pemacu pada permulaan adalah sama dengan jumlah bilangan CPU yang tersedia dalam platform. Ini berfungsi dengan baik untuk banyak platform dan konfigurasi beban kerja. Walau bagaimanapun, dalam platform dengan kiraan teras yang tinggi dan/atau ketumpatan port Ethernet yang tinggi, konfigurasi ini boleh menyebabkan pertikaian sumber. Oleh itu, mungkin perlu dalam beberapa kes untuk mengubah suai lalai untuk setiap port dalam sistem.
Nombor lalai baris gilir Tx/Rx boleh berbeza-beza bergantung pada model dan versi pemacu tertentu. Bilangan baris gilir boleh dilaraskan menggunakan perintah ethtool -L yang disenaraikan di bawah.
NOTA
Dalam kes ini, Intel mengesyorkan agar anda mengurangkan kiraan baris gilir lalai untuk setiap port kepada tidak lebih daripada bilangan CPU yang tersedia dalam nod NUMA setempat kepada port penyesuai. Dalam sesetengah kes, apabila cuba mengimbangi sumber pada pelaksanaan kiraan port yang tinggi, bilangan ini mungkin perlu dikurangkan lagi.
Untuk mengubah suai konfigurasi baris gilir:
Ex berikutample menetapkan port kepada 32 baris gilir Tx/Rx: ethtool -L ethX digabungkan 32
Exampkeluaran:
ethtool -l ethX
Parameter saluran untuk ethX: Maksimum pratetap:
RX: 96
TX: 96
Lain-lain: 1
Gabungan: 96
Tetapan perkakasan semasa:
RX: 0
TX: 0
Lain-lain: 1
Gabungan: 32
4.3 Kesederhanaan Gangguan
Penyederhanaan gangguan penyesuaian dihidupkan secara lalai, dan direka bentuk untuk menyediakan pendekatan yang seimbang antara penggunaan CPU rendah dan prestasi tinggi. Walau bagaimanapun, anda boleh cuba menala tetapan gangguan secara manual agar sesuai dengan kes penggunaan anda.
Julat 0-235 mikrosaat menyediakan julat berkesan 4,310 hingga 250,000 sampukan sesaat. Nilai rx-μsecs-high boleh ditetapkan bebas daripada rx-μsecs dan tx-μsecs dalam arahan ethtool yang sama, dan juga bebas daripada algoritma penyederhanaan gangguan penyesuaian. Perkakasan asas menyokong kebutiran dalam selang 2mikrosaat, jadi nilai bersebelahan mungkin menghasilkan kadar gangguan yang sama.
- Untuk mematikan penyederhanaan gangguan adaptif: ethtool -C ethX adaptive-rx off adaptive-tx off
- Untuk menghidupkan penyederhanaan gangguan adaptif: ethtool -C ethX adaptive-rx on adaptive-tx on
Tempat yang baik untuk memulakan penalaan am ialah 84 μs, atau ~12000 interrupts/s. Jika anda melihat kaunter rx_dropped sedang berjalan semasa trafik (menggunakan ethtool -S ethX) maka anda mungkin mempunyai CPU yang terlalu perlahan, tidak cukup penimbal daripada saiz gelang penyesuai (ethtool -G) untuk menahan paket selama 84 μs atau pada kadar gangguan yang rendah.
- Untuk menetapkan penyederhanaan gangguan kepada kadar gangguan tetap 84 μs antara sampukan (12000 sampukan/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Nilai seterusnya untuk dicuba, jika anda tidak mencapai penggunaan CPU yang maksimum, ialah 62μs. Ini menggunakan lebih banyak CPU, tetapi ia memberikan perkhidmatan penimbal dengan lebih pantas dan memerlukan lebih sedikit deskriptor (saiz cincin, ethtool -G).
- Untuk menetapkan penyederhanaan gangguan kepada kadar gangguan tetap sebanyak 62 usecs antara gangguan (16000 sampukan/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Jika kaunter rx_dropped meningkat semasa trafik (menggunakan ethtool -S ethX), anda mungkin mempunyai CPU yang terlalu perlahan, tidak cukup penimbal daripada saiz gelang penyesuai (ethtool -G), atau terlalu rendah pada kadar gangguan. Jika anda tidak memaksimumkan penggunaan CPU, anda boleh meningkatkan kadar gangguan dengan menurunkan nilai ITR. Ini menggunakan lebih banyak CPU, tetapi perkhidmatan menampan lebih cepat dan memerlukan lebih sedikit deskriptor (saiz cincin, ethtool -G).
Jika CPU anda berada pada 100%, maka meningkatkan kadar gangguan tidak digalakkan. Dalam keadaan tertentu seperti beban kerja terikat CPU, anda mungkin ingin meningkatkan nilai μs untuk membolehkan lebih banyak masa CPU untuk aplikasi lain.
Jika anda memerlukan prestasi kependaman rendah dan/atau mempunyai banyak CPU untuk ditumpukan kepada pemprosesan rangkaian, anda boleh melumpuhkan penyederhanaan gangguan sepenuhnya, yang membolehkan gangguan menyala secepat mungkin. - Untuk melumpuhkan interrupt moderation ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
NOTA
Apabila berjalan dengan penyederhanaan gangguan dilumpuhkan, kadar gangguan pada setiap baris gilir boleh menjadi sangat tinggi. Pertimbangkan untuk memasukkan parameter rx-usec-high untuk menetapkan had atas pada kadar gangguan. Perintah berikut melumpuhkan penyederhanaan gangguan penyesuaian dan membenarkan maksimum 5 mikrosaat sebelum menunjukkan penerimaan atau penghantaran telah selesai. Daripada menghasilkan sebanyak 200,000 sampukan sesaat, ia mengehadkan jumlah sampukan sesaat kepada 50,000 melalui parameter rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Cuba laraskan pemasa penyatuan hantar/terima/keutamaan tinggi lebih tinggi (80/100/150/200) atau lebih rendah (25/20/10/5) untuk mencari nilai optimum untuk kerja.
4.4 Saiz Cincin
Jika anda melihat pembilang rx_drop dalam ethtool -S ethX (rx_dropped, rx_dropped.nic), atau mengesyaki tekanan cache dengan berbilang baris gilir aktif, anda boleh cuba melaraskan saiz deringan daripada nilai lalai. Nilai lalai ialah 512, maks ialah 4096.
- Untuk menyemak nilai semasa: ethtool -g ethX
Jika disyaki kekurangan penimbalan menyebabkan penurunan pada kadar gangguan semasa, anda mungkin mencuba maksimum dahulu, kemudian minimum, kemudian teruskan dalam carian binari sehingga anda melihat prestasi optimum.
Jika tekanan cache disyaki (banyak baris gilir aktif) mengurangkan penimbal daripada lalai boleh membantu Intel ® Data Direct I/O (Intel ® DDIO) beroperasi dengan lebih cekap. Intel mengesyorkan mencuba 128 atau 256 setiap baris gilir, kerana menyedari bahawa peningkatan kadar gangguan melalui ethtool -C mungkin diperlukan untuk mengelakkan peningkatan dalam rx_dropped. - Untuk menetapkan saiz cincin kepada nilai tetap: ethtool -G eth12 rx 256 tx 256
NOTA
Untuk membetulkan kejatuhan paket Rx yang ditemui dengan penurunan ethtool -S ethX|grep, pertimbangkan untuk meningkatkan saiz gelang kepada 4096. Eksperimen untuk mencari tetapan terbaik untuk beban kerja tetapi berhati-hati terhadap penggunaan memori yang berlebihan dengan nilai yang lebih tinggi.
4.5 Kawalan Aliran
Kawalan aliran lapisan 2 boleh memberi kesan kepada prestasi TCP dengan ketara dan disyorkan untuk dilumpuhkan untuk kebanyakan beban kerja. Pengecualian yang berpotensi ialah trafik pecah dengan tempoh letusan tidak lama.
Kawalan aliran dilumpuhkan secara lalai.
- Untuk mendayakan kawalan aliran: ethtool -A ethX rx on tx on
- Untuk melumpuhkan kawalan aliran: ethtool -A ethX rx off tx off
NOTA
Anda mesti mempunyai rakan kongsi pautan berkemampuan kawalan aliran untuk berjaya mendayakan kawalan aliran.
4.6 Bingkai Jumbo
Apabila persekitaran trafik yang dijangkakan terdiri daripada blok besar data yang dipindahkan, ia mungkin berfaedah untuk membolehkan ciri bingkai jumbo. Sokongan Jumbo Frames didayakan dengan menukar Unit Penghantaran Maksimum (MTU) kepada nilai yang lebih besar daripada nilai lalai 1500. Ini membolehkan peranti memindahkan data dalam paket yang lebih besar dalam persekitaran rangkaian. Tetapan ini mungkin meningkatkan daya pemprosesan dan mengurangkan penggunaan CPU untuk beban kerja I/O yang besar. Walau bagaimanapun, ia mungkin memberi kesan kepada paket kecil atau beban kerja sensitif kependaman.
NOTA
Bingkai jumbo atau tetapan MTU yang lebih besar mesti dikonfigurasikan dengan betul merentasi persekitaran rangkaian anda.
Gunakan arahan ifconfig untuk meningkatkan saiz MTU. Untuk example, masukkan yang berikut, di mana ialah nombor antara muka: ifconfig mtu 9000 ke atas
Sebagai alternatif, anda boleh menggunakan arahan ip seperti berikut: set pautan ip mtu 9000 dev pautan ip menyediakan dev
Penalaan Platform (i40e Bukan Khusus)
5.1 Tetapan BIOS
- Dayakan Intel® VT-d untuk beban kerja virtualisasi.
- Hyper-threading (pemproses logik) boleh menjejaskan prestasi. Eksperimen dengannya secara hidup atau mati untuk beban kerja anda.
- Intel® Turbo Boost membolehkan teras CPU beroperasi pada frekuensi yang lebih tinggi daripada frekuensi asas CPU. Mendayakan Intel® Turbo Boost boleh meningkatkan prestasi untuk banyak beban kerja tetapi menggunakan lebih banyak kuasa untuk mengekalkan teras pada frekuensi yang lebih tinggi. Eksperimen dengan Turbo Boost padam/hidupkan untuk beban kerja anda.
NOTA
Frekuensi turbo tidak dijamin jika platform mengalami penggunaan CPU keseluruhan yang tinggi. Frekuensi turbo teras yang lebih tinggi dikurangkan apabila penggunaan CPU keseluruhan meningkat.
5.2 Pengurusan Kuasa
Pengurusan kuasa boleh memberi kesan kepada prestasi, terutamanya dalam beban kerja kependaman rendah. Jika prestasi adalah keutamaan yang lebih tinggi daripada mengurangkan penggunaan kuasa, Intel mengesyorkan anda bereksperimen dengan mengehadkan kesan pengurusan kuasa. Terdapat pelbagai cara untuk mengehadkan pengurusan kuasa, melalui alatan sistem pengendalian, tetapan BIOS dan parameter but kernel. Pilih kaedah dan tahap terbaik untuk disesuaikan dengan persekitaran anda.
5.2.1 Kawalan C-Negeri
Mengehadkan kemasukan keadaan C kepada CO atau C1 meningkatkan prestasi dan meningkatkan penggunaan kuasa.
Melumpuhkan kemasukan keadaan Pakej CPU C6 boleh meningkatkan prestasi rangkaian. Walau bagaimanapun, ini meningkatkan penggunaan kuasa.
Pilihan berikut tersedia:
- Kawal entri keadaan C secara dinamik:
Buka
/dev/cpu_dma_latency dan tulis latensi maksimum yang dibenarkan kepadanya.
NOTA
Terdapat program kecil yang dipanggil cpudmalatency.c yang boleh dimuat turun daripada komuniti sumber terbuka, disusun dan dijalankan dari baris arahan untuk melakukan perkara ini dengan tepat.
Ex berikutample membenarkan lima μs masa bangun, dan dengan itu membenarkan kemasukan C1: cpudmalatency 5 &
- Hadkan keadaan C maksimum dalam tetapan but kernel:
Untuk CPU Intel: intel_idle.max_cstates=1
Untuk CPU bukan Intel: processor.max_cstates=1 - Gunakan arahan cpupower untuk menyemak dan melumpuhkan keadaan CPU C6: Semak: cpupower monitor atau cpupower idle-info
Lumpuhkan C6: cpupower idle-set -d3 atau
Lumpuhkan C-States: cpupower idle-set -D0
Nota:
- Lumpuhkan keadaan C pada CPU jika pelayan mempunyai Pemproses Boleh Skala Intel® Generasi Ke-4 Intel® Xeon®. Apabila Hyper Threading didayakan atau dilumpuhkan, melumpuhkan keadaan melahu (-D0) menghalang teras daripada memasuki keadaan kuasa rendah semasa tempoh melahu dan mengurangkan kependaman untuk CPU beralih antara keadaan melahu dan aktif.
- Pengurusan kuasa Pemproses Boleh Skala Intel® Generasi Ke-4 Intel® Xeon® adalah sangat agresif. Untuk mengelakkan teras daripada memasuki keadaan kuasa rendah, cuba kurangkan bilangan teras yang digunakan untuk memastikannya terjaga lebih lama (ethtool -L digabungkan ). Selain itu, ikatan gangguan pada teras tertentu menggunakan pertalian irq yang ditetapkan (paling kerap dengan -x tempatan atau senarai teras CPU), dan pastikan beban kerja berjalan pada teras yang sama dengan set tugas atau numactl. Ini meningkatkan prestasi dengan mengekalkan teras aktif dan mengoptimumkan pengendalian gangguan.
Dayakan C6:
set melahu cpupower -d3
Dayakan C-States:
set melahu cpupower -E
- Kaedah lain ialah menggunakan alat yang ditala (disertakan dengan banyak pengedaran Linux) untuk menetapkan pro prestasifile. Pro inifiles mengubah suai beberapa tetapan OS yang boleh menjejaskan prestasi merentas banyak aplikasi. Telah didapati bahawa rangkaian-throughput profile memberikan peningkatan kepada kebanyakan beban kerja.
Semak:
ditala-adm aktif
Set:
ditala-adm profile rangkaian-throughput
NOTA
Perkhidmatan yang ditala mesti dijalankan untuk arahan di atas. Untuk menyemak/mulakan semula, ditala: status systemctl ditala systemctl ditala semula
Anda juga boleh tidak membenarkan mana-mana kemasukan C-state dengan menambah yang berikut pada baris but kernel:
terbiar=poll - Hadkan keadaan C melalui tetapan pengurusan kuasa BIOS sistem, yang mungkin mempunyai prestasi profile tersedia.
Alat seperti turbostat atau x86_energy_perf_policy boleh digunakan untuk menyemak atau menetapkan tetapan pengurusan kuasa.
5.2.2 Pengurusan Kuasa PCIe
Pengurusan Kuasa Keadaan Aktif (ASPM) mendayakan keadaan kuasa yang lebih rendah untuk pautan PCIe apabila ia tidak digunakan secara aktif. Ini boleh menyebabkan kependaman yang lebih tinggi pada peranti rangkaian PCIe, jadi Intel mengesyorkan anda melumpuhkan ASPM untuk beban kerja sensitif kependaman. Lumpuhkan ASPM dengan menambah yang berikut pada baris but kernel: pcie_aspm=off
5.2.3 Penskalaan Frekuensi CPU
Penskalaan frekuensi CPU (atau penskalaan kelajuan CPU) ialah teknik pengurusan kuasa Linux di mana kelajuan jam sistem dilaraskan dengan pantas untuk menjimatkan kuasa dan haba. Sama seperti keadaan C, ini boleh menyebabkan kependaman yang tidak diingini pada sambungan rangkaian.
Alat cpupower juga boleh digunakan untuk menyemak dan mengubah suai lalai dan had prestasi CPU:
- Semak: monitor cpupower atau
- Tetapkan CPU kepada mod prestasi: cpupower frequency-set -g performance
NOTA
Pengubahsuaian pada had kekerapan CPU boleh memberi kesan kepada banyak beban kerja dan mungkin melumpuhkan ciri lain, seperti mod turbo CPU.
Untuk melumpuhkan penskalaan frekuensi CPU, lumpuhkan perkhidmatan kuasa CPU dengan arahan berikut:
systemctl hentikan cpupower.service
systemctl lumpuhkan cpupower.service
5.2.4 Panduan Pengurusan Kuasa Tambahan
Butiran tambahan disediakan dalam over level tinggi iniview daripada kebanyakan ciri pengurusan kuasa dalam pemproses Boleh Skala Intel® Xeon® Generasi Ketiga, serta panduan tentang cara ciri ini boleh disepadukan pada peringkat platform: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost menjadikan pemproses lebih pantas apabila diperlukan tetapi boleh menggunakan kuasa tambahan. Mematikan Turbo Boost memastikan pemproses pada kelajuan yang stabil, memberikan anda tahap prestasi yang konsisten untuk beban kerja tertentu.
5.4 Tembok api
Firewall boleh memberi kesan kepada prestasi, terutamanya prestasi kependaman.
Lumpuhkan iptables/firewalld jika tidak diperlukan.
5.5 Tetapan Aplikasi
Selalunya satu utas (yang sepadan dengan satu baris gilir rangkaian) tidak mencukupi untuk mencapai lebar jalur maksimum. Sesetengah seni bina platform, seperti AMD, cenderung untuk menggugurkan lebih banyak paket Rx dengan satu utas berbanding dengan platform dengan pemproses berasaskan Intel.
Pertimbangkan untuk menggunakan alatan seperti set tugas atau numactl untuk menyematkan aplikasi pada nod NUMA atau teras CPU setempat ke peranti rangkaian. Untuk beberapa beban kerja seperti storan I/O, mengalihkan aplikasi ke nod bukan setempat memberikan faedah.
Eksperimen dengan menambah bilangan utas yang digunakan oleh aplikasi anda jika boleh.
5.6 Versi Kernel
Kebanyakan kernel dalam kotak moden dioptimumkan dengan baik untuk prestasi tetapi, bergantung pada kes penggunaan anda, mengemas kini kernel mungkin memberikan prestasi yang lebih baik. Memuat turun sumber juga membolehkan anda mendayakan/melumpuhkan ciri tertentu sebelum membina kernel.
5.7 Tetapan Sistem Pengendalian/Kernel
Rujuk panduan penalaan sistem pengendalian, seperti Panduan Penalaan Prestasi Rangkaian Red Hat Enterprise Linux, untuk mendapatkan maklumat lanjut tentang penalaan sistem pengendalian umum.
Beberapa parameter biasa untuk ditala disenaraikan dalam jadual berikut. Ambil perhatian bahawa ini hanya titik permulaan yang dicadangkan, dan menukarnya daripada lalai mungkin meningkatkan sumber yang digunakan pada sistem. Walaupun meningkatkan nilai boleh membantu meningkatkan prestasi, adalah perlu untuk bereksperimen dengan nilai yang berbeza untuk menentukan perkara yang paling sesuai untuk sistem, beban kerja dan jenis trafik tertentu.
Parameter kernel boleh dikonfigurasikan menggunakan utiliti sysctl dalam Linux seperti yang ditunjukkan di bawah.
Kepada view nilai lalai untuk rmem dan wmem pada sistem:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Tetapkan nilai kepada maks (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Saiz penimbal soket, juga dikenali sebagai penimbal terima (rmem) dan penimbal hantar (wmem), ialah parameter sistem yang menentukan jumlah memori yang dikhaskan untuk trafik rangkaian masuk dan keluar.
Menjalankan sysctl tanpa argumen -w menyenaraikan parameter dengan tetapan semasanya.
Tetapan Tindanan | Penerangan |
net.core.rmem_default | Saiz Tetingkap Terima Lalai |
net.core.wmem_default | Saiz Tetingkap Penghantaran Lalai |
net.core.rmem_max | Saiz Tetingkap Maksimum Terima |
net.core.wmem_max | Saiz Tetingkap Penghantaran Maksimum |
net.core.optmem_max | Penampan Memori Pilihan Maksimum |
net.core.netdev_max_backlog | Tunggakan paket yang tidak diproses sebelum kernel mula jatuh |
net.ipv4.tcp_rmem | Rizab memori untuk penimbal baca TCP |
net.ipv4.tcp_wmem | Rizab memori untuk penimbal hantaran TCP |
Kernel, tindanan rangkaian, pengendali memori, kelajuan CPU dan parameter pengurusan kuasa boleh memberi impak yang besar pada prestasi rangkaian. Pengesyoran biasa adalah untuk memohon kepada pro throughput rangkaianfile menggunakan arahan yang ditala. Ini mengubah suai beberapa tetapan OS untuk memberikan keutamaan kepada aplikasi rangkaian.
Semak:
ditala-adm aktif
Set:
ditala-adm profile rangkaian-throughput
5.8 Tunggakan Peranti Rangkaian
Ciri ini membantu meningkatkan prestasi rangkaian dengan menguruskan trafik masuk dengan berkesan, mengurangkan kehilangan paket, menurunkan kependaman dan meningkatkan daya pengeluaran. Ini membawa kepada pengalaman pengguna yang lebih baik dan respons sistem yang lebih pantas.
Secara lalai, ia didayakan dalam kebanyakan sistem pengendalian Linux. Untuk menyemak nilai lalai:
sysctl net.core.netdev_max_backlog
Nilai maksimum untuk netdev_max_backlog boleh berbeza-beza bergantung pada faktor seperti versi kernel, perkakasan, memori dan beban kerja. Dalam banyak kes, 8192 dilihat sebagai nilai yang baik. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfigurasi dan Penalaan Khusus Platform
5.9.1 Pemproses Boleh Skala Intel® Xeon® Generasi Ke-4
Pengurusan kuasa pemproses Intel® Xeon® Scalable Generasi Ke-4 adalah sangat agresif berbanding dengan pemproses Intel® Xeon® Scalable Generasi Ketiga. Untuk mengelakkan teras daripada memasuki keadaan kuasa rendah, cuba kurangkan bilangan teras yang digunakan untuk memastikannya terjaga lebih lama.
Tetapan Bios Disyorkan untuk Prestasi Tertinggi
- Hyper-threading dayakan/lumpuhkan (berdasarkan keperluan beban kerja dan matlamat prestasi) pada CPU.
- Tetapkan sistem profile kepada Prestasi untuk prestasi maksimum.
NOTA
Ini menyebabkan penggunaan kuasa yang lebih tinggi - Tetapkan pengurusan kuasa CPU kepada Prestasi Maksimum untuk mengutamakan prestasi CPU maksimum berbanding kecekapan kuasa.
- Dayakan Turbo Boost. Melumpuhkan Turbo Boost dalam tetapan BIOS sistem biasanya menghalang CPU daripada meningkatkan kelajuan jamnya secara dinamik melebihi frekuensi asasnya.
- NOTA
Melumpuhkan Turbo Boost mungkin sesuai untuk kes penggunaan tertentu yang prestasi konsisten, kecekapan kuasa atau pengurusan terma diutamakan berbanding prestasi maksimum. - Matikan ciri Single Root I/O Virtualization (SR-IOV), jika sistem tidak menggunakan teknologi virtualisasi.
- Lumpuhkan keadaan C untuk mengarahkan CPU kekal aktif dan mengelakkan daripada memasuki keadaan terbiar yang lebih mendalam.
- Lumpuhkan C1E, untuk memastikan CPU kekal aktif dan tidak memasuki keadaan terbiar C1E.
- Tetapkan kekerapan uncore kepada maksimum untuk mengarahkan sistem beroperasi pada frekuensi tertinggi yang tersedia.
- Pada platform Dell, tetapkan emulasi teras Jadual Penerangan APIC Berbilang (MADT) kepada Linear (atau Round-Robin bergantung pada BIOS) untuk menyediakan pemetaan teras CPU yang jelas dan boleh diramal.
Penalaan Tahap OS yang Disyorkan untuk Prestasi Dioptimumkan
- Tetapkan gabenor penskalaan frekuensi CPU kepada prestasi. set frekuensi cpupower -g prestasi cpupower frequency-info
- Lumpuhkan C-States. set melahu cpupower -D0
- Tetapkan teras Rx (rmem) dan Tx (wmem) penimbal kepada nilai maksimum. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Tetapkan tunggakan peranti rangkaian. sysctl -w net.core.netdev_max_backlog=8192
- Tetapkan ditala profile (beban kerja bergantung kepada daya pemprosesan/kependaman).
ditala-adm profile rangkaian-throughput
Penalaan Tahap Penyesuai Disyorkan untuk Prestasi Dioptimumkan
- Hadkan bilangan baris gilir untuk digunakan untuk trafik aplikasi. Gunakan bilangan baris gilir minimum yang diperlukan untuk memastikan teras CPU yang berkaitan aktif untuk menghalangnya daripada memasuki keadaan terbiar yang lebih mendalam (laraskan untuk beban kerja): ethtool -L digabungkan 32
- Tetapkan kadar penyederhanaan gangguan. ethtool -C adaptif-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Cuba laraskan pemasa penyatuan penghantaran/terima/keutamaan tinggi lebih tinggi (80/100/150/200) atau lebih rendah (25/20/10/5) untuk mencari nilai optimum untuk beban kerja. - Tetapkan saiz cincin Rx/Tx. ethtool -G rx 4096 tx 4096
NOTA
Jika anda melihat paket Rx jatuh dengan ethtool -S| grep drop, cuba kurangkan saiz cincin kepada <4096. Cuba cari nilai optimum untuk beban kerja di mana paket tidak digugurkan. - Tetapkan Perkaitan IRQ. Gunakan teras setempat kepada NIC, atau pemetaan teras tertentu (dengan # teras adalah sama dengan bilangan baris gilir yang ditetapkan dalam 1 pada halaman 26. systemctl stop irqbalance set_irq_affinity -X local ATAU set_irq_affinity -X
5.9.2 AMD EPYC
Pemproses AMD EPYC ialah CPU berkuasa yang dibuat untuk pelayan dan pusat data, dibina pada seni bina Zen AMD. Tetapan di bawah adalah daripada siri EPYC generasi ke-4 AMD.
Tetapan BIOS yang Disyorkan untuk Prestasi Tertinggi
- Dayakan mod tersuai untuk membolehkan pengguna melaraskan prestasi CPU, penggunaan kuasa dan tetapan lain. Ini membantu dalam memperhalusi sistem untuk keseimbangan terbaik antara prestasi dan kecekapan tenaga.
- Dayakan peningkatan prestasi teras untuk membolehkan CPU meningkatkan kelajuannya secara automatik untuk mengendalikan tugas yang lebih intensif, meningkatkan prestasi keseluruhan.
- Lumpuhkan kawalan keadaan C global, untuk menghalang CPU daripada memasuki keadaan penjimatan kuasa yang lebih dalam yang dikenali sebagai keadaan C, yang boleh mengekalkan tindak balas.
NOTA
Melumpuhkan keadaan C boleh menyebabkan penggunaan kuasa tambahan dan meningkatkan suhu terma. Pantau kedua-duanya untuk beban kerja. - Dayakan/lumpuhkan Siri Berbilang Benang (SMT) pada CPU, berdasarkan keperluan beban kerja dan matlamat prestasi. SMT adalah bersamaan dengan Hyper Threading pada CPU Intel.
NOTA
Untuk prestasi yang dioptimumkan, rujuk kepada Menala Tetapan Pemacu i40e pada halaman 13 dan Penalaan Platform (i40e Bukan Khusus) pada halaman 19 untuk penalaan tahap OS dan penyesuai yang disyorkan.
Ikatan Penyesuai
Ikatan Linux ialah ciri berkuasa yang boleh meningkatkan prestasi rangkaian, redundansi dan toleransi kesalahan dengan ketara dalam persekitaran pelayan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ia memerlukan perkakasan rangkaian yang serasi dan konfigurasi yang betul pada kedua-dua pelayan dan suis untuk berfungsi dengan baik.
Pemacu ikatan dalam Linux membolehkan anda mengagregatkan berbilang antara muka rangkaian fizikal ke dalam antara muka terikat. Antara muka terikat ini muncul sebagai antara muka rangkaian maya tunggal kepada sistem pengendalian dan aplikasi.
NOTA
Ikatan ialah antara muka logik, jadi tidak mungkin untuk menetapkan pertalian CPU secara langsung pada antara muka ikatan (contohnyaample, bon0). Iaitu, ia tidak mempunyai kawalan langsung ke atas pengendalian gangguan atau pertalian CPU. Perkaitan CPU mesti dikonfigurasikan untuk antara muka asas yang merupakan sebahagian daripada ikatan.
Ikatan menyediakan beberapa mod operasi, masing-masing mempunyai ciri tersendiri.
Mod | taip |
0 | Round Robin |
1 | Sandaran Aktif |
2 | XOR |
3 | Siarkan |
4 | LACP |
5 | Hantar Imbangan Beban |
6 | Imbangan Beban Adaptif |
Terdapat kaedah yang berbeza untuk mencipta ikatan dalam Linux. Salah satu kaedah yang paling biasa adalah dengan menggunakan konfigurasi rangkaian files (untuk cthample, /etc/network/ antara muka atau /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurasi Menggunakan Konfigurasi Rangkaian Files
Langkah berikut membuat ikatan melalui konfigurasi rangkaian files.
- Pilih dua atau lebih port NIC untuk ikatan (contohnyaample, ethX dan ethY)
- Buka Konfigurasi NIC Files di bawah /etc/sysconfig/network-scripts/ untuk Antara Muka NIC yang diperlukan (contohnyaample, vi ifcfg-ethX dan vi ifcfg-ethY) dan tambahkan teks berikut:
MASTER=bondN [Nota: N ialah integer untuk menyebut nombor bon.] HAMBA=ya - Buat skrip rangkaian bon file menggunakan vi /etc/sysconfig/networkscripts/ifcfg-bondN dan masukkan teks berikut:
DEVICE=bondN [Nota: N ialah integer untuk menyebut nombor bon] ONBOOT=ya USERCTL=tiada BOOTPROTO=dhcp (atau) tiada
IPADDR=200.20.2.4 [diperlukan jika BOOTPROTO=tiada] NETMASK=255.255.255.0 [diperlukan jika BOOTPROTO=tiada] RANGKAIAN=200.20.2.0 [diperlukan jika BOOTPROTO=tiada] SIARAN=200.20.2.255 BONDING_OPTS=”mod=1 miimon=100″
NOTA
Mod boleh menjadi sebarang integer dari 0 hingga 6 berdasarkan keperluan. - Mulakan semula perkhidmatan rangkaian menggunakan restart rangkaian perkhidmatan atau systemctl restart NetworkManager.service
Penyelesaian Masalah Prestasi
7.1 Penggunaan CPU
Semak penggunaan CPU setiap teras semasa beban kerja sedang berjalan.
Ambil perhatian bahawa penggunaan setiap teras adalah lebih berkaitan dengan prestasi berbanding penggunaan CPU keseluruhan kerana ia memberikan idea tentang penggunaan CPU bagi setiap baris gilir rangkaian. Jika anda hanya mempunyai beberapa utas yang menjalankan trafik rangkaian, maka anda mungkin hanya mempunyai beberapa teras yang digunakan. Walau bagaimanapun, jika teras tersebut berada pada 100%, maka daya pemprosesan rangkaian anda berkemungkinan terhad oleh penggunaan CPU dan sudah tiba masanya untuk melaksanakan perkara berikut:
- Laraskan penyederhanaan IRQ/saiz cincin seperti yang diperincikan dalam Penyederhanaan Sampukan.
- Tingkatkan bilangan utas aplikasi untuk menyebarkan beban CPU ke lebih banyak teras. Jika semua teras berjalan pada 100% maka aplikasi anda mungkin terikat CPU dan bukannya terikat rangkaian.
Alat yang biasa tersedia:
- atas
— Tekan 1 untuk mengembangkan senarai CPU dan semak yang mana yang sedang digunakan.
— Perhatikan tahap penggunaan.
— Perhatikan proses yang disenaraikan sebagai paling aktif (bahagian atas senarai). - mpstat
Ex berikutampbaris arahan telah diuji pada Red Hat Enterprise Linux 7.x.
Ia memaparkan penggunaan CPU setiap teras (dengan mencari jumlah peratus melahu dan menolak daripada 100) dan menyerlahkan nilai melebihi 80% dalam warna merah. mpstat -P SEMUA 1 1 | grep -v Purata | ekor -n +5 | kepala -n -1 | awk '{ print (100-$13)}' | egrep -color=sentiasa '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | lajur - perf top Cari di mana kitaran dibelanjakan.
7.2 Kaunter i40e
Pemacu i40e menyediakan senarai panjang kaunter untuk nyahpepijat antara muka dan pemantauan melalui perintah ethtool -S ethX. Ia boleh membantu untuk menonton output semasa beban kerja sedang berjalan dan/atau membandingkan nilai pembilang sebelum dan selepas beban kerja dijalankan.
- Untuk mendapatkan longgokan penuh kaunter i40e: ethtool -S ethX
- Untuk menonton hanya pembilang bukan sifar: watch -d (ethtool -S ethX) | egrep -v :\ 0 | lajur
Beberapa perkara yang perlu dicari: - rx_dropped bermakna CPU tidak menyediakan penimbal dengan cukup pantas.
- port.rx_dropped bermaksud sesuatu tidak cukup pantas dalam slot/memori/ sistem.
7.3 Kaunter Rangkaian
Semak netstat -s sebelum/selepas beban kerja dijalankan.
Netstat mengumpul maklumat rangkaian daripada semua peranti rangkaian dalam sistem. Oleh itu, keputusan mungkin terjejas daripada rangkaian selain daripada rangkaian yang sedang diuji. Output daripada netstat -s boleh menjadi penunjuk yang baik bagi isu prestasi dalam sistem pengendalian atau kernel Linux. Rujuk panduan penalaan sistem pengendalian, seperti Panduan Penalaan Prestasi Rangkaian Red Hat Enterprise Linux, untuk mendapatkan maklumat lanjut tentang penalaan sistem pengendalian umum.
7.4 Log Sistem
Semak log sistem untuk ralat dan amaran (/var/log/message, dmesg).
7.5 Alat Intel svr-info
Intel menyediakan alat svr-info (lihat https://github.com/intel/svr-info) untuk Linux yang menangkap butiran perkakasan dan perisian yang berkaitan daripada pelayan. Output svr-info boleh sangat membantu untuk mengenal pasti kesesakan sistem atau tetapan/penalaan yang tidak dioptimumkan untuk beban kerja. Apabila membuka kes sokongan dengan Intel untuk isu prestasi berkaitan Ethernet, pastikan anda memasukkan output svr-info (text file) untuk setiap pelayan Linux dalam konfigurasi ujian.
- Muat turun dan pasang svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> nama hos.txt - Kumpulkan output:
./svr-info > nama hos.txt - Lampirkan satu teks (.txt) file untuk setiap pelayan ke kes sokongan Intel anda untuk analisis.
Pengesyoran untuk Senario Prestasi Biasa
8.1 Pemajuan IP
- Kemas kini kernel.
Beberapa kernel dalam distro baru-baru ini telah merendahkan prestasi penghalaan disebabkan oleh perubahan kernel dalam kod penghalaan bermula dengan pengalihan keluar cache penghalaan kerana keselamatan. Kernel luar distro baru-baru ini sepatutnya mempunyai tampalan yang mengurangkan kesan prestasi perubahan ini dan mungkin memberikan prestasi yang lebih baik. - Lumpuhkan hyper-threading (teras logik).
- Edit parameter but kernel.
— Paksa iommu mati (intel_iommu=off atau iommu=off) daripada baris but kernel melainkan diperlukan untuk virtualisasi
— Matikan pengurusan kuasa: processor.max_cstates=1 idle=poll pcie_aspm=off - Hadkan bilangan baris gilir untuk sama dengan bilangan teras pada soket tempatan (12 dalam ex iniample). ethtool -L ethX digabungkan 12
- Pin sampukan pada soket tempatan sahaja. set_irq_affinity -X local ethX ATAU set_irq_affinity -X local ethX
NOTA
-X atau -x boleh digunakan bergantung pada beban kerja. - Tukar saiz cincin Tx dan Rx mengikut keperluan. Nilai yang lebih besar memerlukan lebih banyak sumber tetapi boleh memberikan kadar pemajuan yang lebih baik. ethtool -G ethX rx 4096 tx 4096
- Lumpuhkan GRO semasa penghalaan.
Disebabkan isu kernel yang diketahui, GRO mesti dimatikan semasa penghalaan/pemajuan. ethtool -K ethX gro off di mana ethX ialah antara muka Ethernet yang akan diubah suai. - Lumpuhkan penyederhanaan gangguan penyesuaian dan tetapkan nilai statik. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
NOTA
Bergantung pada jenis pemproses dan beban kerja, parameter penggabungan untuk RX dan TX boleh dilaraskan untuk prestasi yang lebih baik (atau kurang kehilangan bingkai).
- Lumpuhkan tembok api. sudo systemctl lumpuhkan firewalld sudo systemctl stop firewalld
- Dayakan pemajuan IP. sysctl -w net.ipv4.ip_forward=1
- Konfigurasikan nilai maksimum untuk saiz penimbal soket terima dan hantar. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
NOTA
Bergantung pada beban kerja atau keperluan, nilai ini boleh ditukar daripada lalai.
8.2 Latensi Rendah
- Matikan hyper-threading (teras logik).
- Pastikan peranti rangkaian adalah setempat kepada numa core 0.
- Sematkan penanda aras ke teras 0 menggunakan set tugas -c 0.
- Matikan irqbalance menggunakan systemctl stop irqbalance atau systemctl disable irqbalance
- Jalankan skrip perkaitan untuk merebak ke seluruh teras. Cuba sama ada tempatan atau semua.
- Matikan penyederhanaan gangguan. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- tinggi 0
- Hadkan bilangan baris gilir untuk sama dengan bilangan teras pada soket tempatan (32 dalam bekas iniample). ethtool -L ethX digabungkan 32
- Pin gangguan pada soket tempatan sahaja (skrip dibungkus dengan sumber pemacu i40e). set_irq_affinity -X local ethX
- Gunakan penanda aras yang telah ditetapkan seperti netperf -t TCP_RR, netperf -t UDP_RR atau NetPipe. netperf -t TCP_RR atau netperf -t UDP_RR
- Sematkan penanda aras pada teras tunggal dalam nod NUMA tempatan. set tugas -c
Intel ® Ethernet 700 Series
Panduan Penalaan Prestasi Linux
Disember 2024
Doc. No.: 334019, Wahyu: 1.2
Dokumen / Sumber
![]() |
Penalaan Prestasi Linux Intel Ethernet 700 Series [pdf] Panduan Pengguna 334019, Penalaan Prestasi Linux Siri 700 Ethernet, Siri Ethernet 700, Penalaan Prestasi Linux, Penalaan Prestasi, Penalaan |