Intel® Ethernet Seri 700
Panduan Penyetelan Performa Linux
Kelompok Jaringan Awan NEX (NCNG)
Wahyu 1.2
Desember 2024
Riwayat Revisi
Revisi | Tanggal | Komentar |
1.2 | Desember 2024 | · Menambahkan Panduan Manajemen Daya Tambahan. · Menambahkan Intel* Turbo Boost. · Menambahkan Backlog Perangkat Jaringan. · Menambahkan Konfigurasi dan Penyetelan Spesifik Platform. · Menambahkan Prosesor Intel* %eon* Scalable Generasi ke-4. · Menambahkan AMD EPYC. · Pembaruan Kemampuan Perangkat Keras Sistem Pemeriksaan. · Memperbarui iPerf2. · Memperbarui iPerf3. · Antrean Tx/Rx yang diperbarui. · Moderasi Interupsi yang Diperbarui. · Ukuran Cincin yang Diperbarui. · Penyetelan Platform yang Diperbarui (i40e Non-Spesifik). · Pengaturan BIOS yang diperbarui. · Pembaruan Kontrol C-State. · Skala Frekuensi CPU yang diperbarui. · Pengaturan Aplikasi yang Diperbarui. · Pengaturan Sistem Operasi/Kernel yang Diperbarui. · Pembaruan Penerusan IP. · Latensi Rendah yang Diperbarui. |
Agustus 2023 | Perubahan pada dokumen ini meliputi: · Menambahkan Referensi Terkait. · Menambahkan Pastikan Paket DDP Dimuat dengan Benar. · Menambahkan iPerf2. · Menambahkan iPerf3. · Menambahkan netperf. · Afinitas IRQ yang diperbarui. · Menambahkan Antrean Tx/Rx. · Ukuran Cincin yang Diperbarui. · Menambahkan Bingkai Jumbo. · Menambahkan Ikatan Adaptor. · Menambahkan Alat Intel svr-info. |
|
1.0 | Maret 2016 | Rilis Awal (Intel Publik). |
Perkenalan
Panduan ini dimaksudkan untuk memberikan panduan dalam menyetel lingkungan untuk performa jaringan yang optimal menggunakan NIC Intel ® Ethernet Seri 700 di lingkungan Linux. Panduan ini berfokus pada kondisi dan pengaturan perangkat keras, driver, dan sistem operasi yang dapat meningkatkan performa jaringan. Perlu dicatat bahwa performa jaringan dapat dipengaruhi oleh sejumlah pengaruh eksternal, hanya pengaruh yang paling umum dan dramatis yang dibahas dalam panduan ini.
1.1 Referensi Terkait
- Panduan Pengguna untuk semua adaptor dan perangkat Intel® Ethernet, yang mendukung Windows dan Linux:
Panduan Pengguna Adaptor dan Perangkat Intel® Ethernet - Lembar Data Teknis:
Lembar Data Pengontrol Ethernet Intel® X710/XXV710/XL710 - Paket SW lengkap untuk semua produk Intel® Ethernet (unduh semua driver, NVM, alat, dll.):
Paket Driver Lengkap Adaptor Ethernet Intel® - Paket Pembaruan NVM (Memori Non-Volatil):
Utilitas Pembaruan Memori Non-Volatil (NVM) untuk Adaptor Jaringan Ethernet Intel® Seri 700 - alat svr-info untuk Linux yang menangkap detail perangkat keras dan perangkat lunak yang relevan dari server: https://github.com/intel/svr-info
- Panduan Teknologi DDP:
Panduan Teknologi Personalisasi Perangkat Dinamis (DDP) Intel® Ethernet Seri 700
Daftar Periksa Awal
2.1 Perbarui Versi Driver/Firmware
Periksa versi driver/firmware menggunakan ethtool -i ethx.
Perbarui yang berikut ini bila diperlukan:
- Perbarui 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 - Perbarui firmware
https://downloadcenter.intel.com/download/24769/NVM-Update-Utility-untuk-Intel-Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Baca README
Periksa masalah yang diketahui dan dapatkan petunjuk konfigurasi terbaru dari README file termasuk dalam paket sumber i40e.
2.3 Periksa Apakah Slot PCI Express (PCIe) Anda adalah x8
Beberapa slot PCIe x8 sebenarnya dikonfigurasikan sebagai slot x4. Slot ini tidak memiliki bandwidth yang cukup untuk kecepatan penuh dengan perangkat port ganda dan port empat. Selain itu, jika Anda memasang adaptor yang mendukung PCIe v3.0 ke dalam slot PCIe v2.x, Anda tidak akan mendapatkan bandwidth penuh. Driver perangkat lunak mendeteksi situasi ini dan menulis pesan berikut di log sistem:
Bandwidth PCI-Express yang tersedia untuk kartu ini tidak cukup untuk performa optimal. Untuk performa optimal, diperlukan slot PCI-Express x8.
Jika kesalahan ini terjadi, pindahkan adaptor Anda ke slot PCIe v3.0 x8 yang sebenarnya untuk mengatasi masalah.
2.4 Periksa Kemampuan Perangkat Keras Sistem
Pada Ethernet 10 Gbps, 25 Gbps, dan 40 Gbps, ada beberapa persyaratan CPU dan sistem minimum. Secara umum, prosesor kelas server modern dan konfigurasi memori optimal untuk platform Anda seharusnya sudah memadai, tetapi kebutuhannya bervariasi tergantung pada beban kerja Anda. Semua saluran memori harus diisi dan mode kinerja memori harus diaktifkan di BIOS. Pastikan konfigurasi CPU dan memori Anda mampu mendukung tingkat kinerja jaringan yang Anda perlukan untuk beban kerja Anda.
CATATAN
XL710 adalah pengontrol 40 GbE. Adaptor 2 x 40 GbE yang menggunakan pengontrol ini tidak dimaksudkan sebagai 2 x 40 GbE, melainkan 1 x 40 GbE dengan port cadangan aktif. Saat mencoba menggunakan lalu lintas kecepatan saluran yang melibatkan kedua port, sakelar internal menjadi jenuh dan lebar pita gabungan antara kedua port dibatasi hingga total SO Gbps.
2.4.1 Parameter Booting Kernel
Jika Intel® Virtualization Technology for Directed I/O (Intel® VT-d) diaktifkan di BIOS, Intel merekomendasikan agar IOMMU berada dalam mode pass-through untuk kinerja jaringan host yang optimal. Ini menghilangkan overhead DMA pada lalu lintas host sekaligus memungkinkan Mesin Virtual (VM) tetap memiliki manfaat Intel® VT-d. Ini dilakukan dengan menambahkan baris berikut ke parameter boot kernel: fommu-pt.
2.5 Pastikan Paket DDP Dimuat dengan Benar
Driver dasar 140ea dan 140eb tidak memiliki dukungan langsung untuk Personalisasi Perangkat Dinamis (DDP). Untuk menggunakan DDP dengan perangkat Seri 700, driver DDP profile dapat diterapkan dengan aplikasi testpmd.
Untuk detail tentang DDP profiles, dan cara menerapkan DDP profile dengan testpmd pada perangkat Seri 700, lihat Panduan Teknologi Personalisasi Perangkat Dinamis (DDP) Intel® Ethernet Seri 700.
Untuk memverifikasi apakah DDP profile berhasil dimuat:
testpmd> ddp dapatkan daftar 0 Profile nomornya adalah: 1
CATATAN
Jika profile angkanya 0, tidak ada paket DDP yang dimuat. Jika terjadi kesalahan pemuatan paket DDP, perangkat akan masuk ke mode aman secara default dan banyak fitur kinerja tidak tersedia. Jika ada kesalahan yang terkait dengan pemuatan paket DDP, hal itu akan menyebabkan masalah kinerja. Untuk langkah pemecahan masalah, lihat Panduan Teknologi Personalisasi Perangkat Dinamis (DDP) Inte/* Ethernet Seri 700.
Pengukuran Kinerja Dasar dan Metodologi Penyetelan
3.1 Tolok Ukur Kinerja Jaringan
Sebelum memulai latihan penyetelan, penting untuk memiliki pengukuran dasar yang baik atas kinerja jaringan Anda. Biasanya, selain mendapatkan pengukuran awal atas kinerja aplikasi/beban kerja spesifik Anda, sebaiknya gunakan juga tolok ukur kinerja jaringan standar untuk memverifikasi bahwa perangkat jaringan Anda dalam kondisi baik.
Untuk optimasi sistem tunggal, netperf atau iperf dan NetPIPE semuanya merupakan alat gratis sumber terbuka yang solid yang memungkinkan Anda menekankan koneksi dan mendiagnosis masalah kinerja.
Netperf kuat untuk pengujian throughput dan latensi. NetPIPE adalah alat khusus latensi tetapi dapat dikompilasi untuk semua jenis lingkungan.
CATATAN
Pengujian TCP_RR di netperf mengembalikan latensi dalam nilai transaksi/detik. Ini adalah angka bolak-balik. Latensi satu arah dapat dihitung menggunakan persamaan berikut:
Latensi (usec) = (1⁄2) / [Transaksi/detik] * 1,000,000
3.1.1 iPerf2
Intel merekomendasikan iperf2 daripada iperf3 untuk sebagian besar situasi pembandingan karena kemudahan penggunaan dan dukungan beberapa utas dalam satu instans aplikasi. Intel merekomendasikan menjalankan dengan opsi -P dengan 2-4 utas untuk koneksi 25G dan sekitar 4-6 utas untuk koneksi 40G.
- Untuk menjalankan lalu lintas satu arah dari klien ke server: Perintah server exampfile: iperf2 -s
Perintah klien exampfile: iperf2 -c -P - Untuk menjalankan lalu lintas dua arah dari klien ke server (dan sebaliknya): Perintah server exampfile: iperf2 –s –p
Perintah klien exampsaya:
iperf2-c bahasa Indonesia -P -P -–dupleks penuh ATAU
iperf2-c bahasa Indonesia -P -P -D
CATATAN
Baik opsi –full-duplex maupun -d di iperf2 memungkinkan pengguna untuk melakukan pengujian dua arah. Namun, opsi –full-duplex secara khusus berfokus pada pengujian dupleks penuh.
CATATAN
Saat menguji iperf2 di beberapa port server, tanda -d dapat ditambahkan ke perintah server untuk menjalankan semua sesi server di latar belakang dari jendela terminal yang sama. Tanda -d juga dapat digunakan saat perintah server disematkan di dalam for-loop dalam skrip.
CATATAN
Saat menjalankan uji throughput jaringan dengan aliran/utas tunggal (mis.ample: P1), prosesor AMD mungkin tidak menyediakan throughput yang diharapkan, khususnya NIC dengan bandwidth yang lebih tinggi (jika kecepatannya >= bandwidth 25G). Akibatnya, pemasangan aplikasi ke inti tertentu diperlukan untuk mencapai throughput yang lebih tinggi. Lihat Pengaturan Aplikasi di halaman 22.
3.1.2 iPerf3
Jika iperf3 digunakan, beberapa contoh aplikasi diperlukan untuk mengambil keuntungantage dari multi-thread, RSS, dan antrean perangkat keras. Intel merekomendasikan untuk menjalankan dengan 2-4 sesi aplikasi untuk koneksi 25G dan sekitar 4-6 sesi untuk koneksi 40G. Setiap sesi harus menentukan nilai port TCP yang unik menggunakan opsi -p.
- Untuk menjalankan lalu lintas satu arah dari klien ke server:
Perintah server exampsaya:
iperf3-s-p
Perintah klien exampsaya:
iperf3-c bahasa Indonesia -P - Untuk menjalankan lalu lintas dua arah dari klien ke server (dan sebaliknya):
Perintah server exampsaya:
iperf3 –s –p
Perintah klien exampfile: iperf3 -c -P -P –-bidir - Untuk memulai beberapa instans (utas) iperf3, rekomendasinya adalah menggunakan for-loop untuk memetakan utas ke port TCP dan menjalankan iperf3 di latar belakang menggunakan & untuk membuat beberapa proses secara paralel.
Perintah server example, mulai 4 thread: port=""; for i in {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; done; Perintah klien example, mulai 4 utas – Kirim port uji = ””; untuk i di {0..3}; lakukan port = 520 $ i; bash -c “iperf3 -c $ serverIP -p $ port &”; selesai; Perintah klien example, mulai 4 thread – Terima pengujian port=""; for i in {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; selesai; Untuk koneksi 40G, tingkatkan for-loop untuk membuat hingga 6 instance/thread.
CATATAN
Saat menjalankan uji throughput jaringan dengan aliran/utas tunggal (mis.ample: P1), prosesor AMD mungkin tidak memberikan throughput yang diharapkan, terutama bandwidth yang lebih tinggi
NIC (jika kecepatan >= bandwidth 25G). Akibatnya, pemasangan aplikasi ke inti tertentu diperlukan untuk mencapai throughput yang lebih tinggi. Lihat Pengaturan Aplikasi di halaman 22 dan AMD EPYC di halaman 26.
3.1.3 netperf
Alat netperf merupakan pilihan yang tepat untuk pengujian throughput dan latensi.
- Pengujian TCP_STREAM di netperf mengukur kemampuan throughput perangkat. Perintah server example: perintah Klien netserver misampfile: netperf -t TCP_STREAM -l 30 -H
- Pengujian TCP_RR di netperf mengembalikan latensi dalam nilai transaksi/detik. Ini adalah angka bolak-balik. Sebaiknya gunakan opsi -T x,x, di mana x adalah CPU lokal ke perangkat. Latensi satu arah dapat dihitung menggunakan: Latensi(usec)=(1⁄2)/ [Transaksi/detik]*1,000,\ Perintah server exampsaya: netserver
Perintah klien exampfile: netperf -t TCP_RR -l 30 -H -Tx, x - Untuk memulai beberapa instans (utas) netperf, rekomendasinya adalah menggunakan for-loop untuk memetakan utas ke port TCP dan menjalankan netperf di latar belakang menggunakan & untuk membuat beberapa proses secara paralel.
Perintah server example, mulai 8 thread:
port=""; untuk i dalam {0..7}; lakukan port=520$i; bash -c "netserver -L $serverIP -p $port &"; selesai;
Perintah klien example, mulai 8 thread: port=""; untuk i di {0..7}; lakukan port=520$i; bash -c "netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &"; selesai;
3.2 Metodologi Penyetelan
Fokus pada satu perubahan penyetelan pada satu waktu sehingga Anda tahu dampak yang ditimbulkan setiap perubahan pada pengujian Anda. Semakin metodis Anda dalam proses penyetelan, semakin mudah untuk mengidentifikasi dan mengatasi penyebab hambatan kinerja.
Menyetel Pengaturan Driver i40e
4.1 Afinitas IRQ
Mengonfigurasi afinitas IRQ sehingga interupsi untuk antrean jaringan yang berbeda diafinitaskan ke inti CPU yang berbeda dapat berdampak besar pada performa, khususnya pengujian throughput multithread.
Untuk mengonfigurasi afinitas IRQ, hentikan irqbalance lalu gunakan skrip set_irq_affinity dari paket sumber i40e atau pin antrean secara manual. Nonaktifkan penyeimbang IRQ ruang pengguna untuk mengaktifkan pemasangan antrean:
- systemctl menonaktifkan irqbalance
- systemctl hentikan irqbalance
Menggunakan skrip set_irq_affinity dari paket sumber i40e (disarankan): - Untuk menggunakan semua inti:
[path-ke-i40epackage]/scripts/set_irq_affinity -X semua ethX - Untuk hanya menggunakan inti pada soket NUMA lokal: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Anda juga dapat memilih sejumlah inti. Hindari penggunaan cpu0 karena menjalankan tugas pengatur waktu. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
CATATAN
Skrip afinitas mengaktifkan Transmit Packet Steering (XPS) sebagai bagian dari proses penyematan saat opsi -x ditetapkan. Saat XPS diaktifkan, Intel menyarankan Anda menonaktifkan irqbalance, karena penyeimbang kernel dengan XPS dapat menyebabkan kinerja yang tidak dapat diprediksi. Skrip afinitas menonaktifkan XPS saat opsi -X ditetapkan. Menonaktifkan XPS dan mengaktifkan antrean simetris bermanfaat untuk beban kerja yang kinerja terbaiknya tercapai saat lalu lintas Tx dan Rx dilayani pada pasangan antrean yang sama.
Mengonfigurasi antrean simetris di Linux melibatkan penyetelan parameter driver antarmuka jaringan untuk mengaktifkan antrean terima simetris (Rx) dan antrean transmisi simetris (Tx) untuk adaptor jaringan yang didukung.
CATATAN
- Antrean simetris adalah fitur jaringan tingkat lanjut, dan tidak semua adaptor jaringan atau driver seri 700 mendukungnya.
- Pastikan Anda memiliki dukungan driver dan perangkat keras yang diperlukan sebelum mencoba mengonfigurasi antrean simetris.
Untuk mengonfigurasi antrian simetris, ikuti langkah-langkah umum berikut:
- Edit Konfigurasi Antarmuka Jaringan File: Gunakan editor teks (misalnyaample, vi, nano, atau gedit) untuk mengedit konfigurasi antarmuka jaringan file. Itu file biasanya terletak di bawah direktori /etc/sysconfig/network-scripts/ dan memiliki nama seperti ifcfg-ethX, di mana ethX adalah nama antarmuka jaringan Anda.
- Tambahkan Parameter Antrean Simetris. Tambahkan baris berikut ke konfigurasi antarmuka jaringan file: ETHTOOL_OPTS=”antrian rx 8 antrian tx 8″
- Mulai Ulang Layanan Jaringan.
Setelah membuat perubahan, mulai ulang layanan jaringan untuk menerapkan konfigurasi baru. sudo systemctl restart network
Secara manual:
-
Temukan prosesor yang terpasang pada setiap node menggunakan: numactl –hardware lscpu
-
Temukan bit mask untuk setiap prosesor:
- Dengan asumsi inti 0-11 untuk node 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Temukan IRQ yang ditetapkan ke port yang sedang ditetapkan: grep ethX /proc/interrupts dan catat nilai IRQ Misalnyaample, 181-192 untuk 12 vektor yang dimuat.
- Gemakan nilai afinitas SMP ke entri IRQ yang sesuai. Perhatikan bahwa hal 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 Tampilkan afinitas IRQ:
- Untuk menunjukkan afinitas IRQ untuk semua inti: /skrip/set_irq_affinity -s ethX
- Untuk hanya menampilkan inti pada soket NUMA lokal: /skrip/set_irq_affinity -s lokal ethX
- Anda juga dapat memilih berbagai inti: /skrip/set_irq_affinity -s 40-0-8,16 ethX
CATATAN
Skrip set_irq_affinity mendukung tanda -s pada driver i40e versi 2.16.11 dan yang lebih baru.
4.2 Antrean Tx/Rx
Jumlah antrean default yang diaktifkan untuk setiap port Ethernet oleh driver saat inisialisasi sama dengan jumlah total CPU yang tersedia di platform. Ini berfungsi dengan baik untuk banyak platform dan konfigurasi beban kerja. Namun, pada platform dengan jumlah inti yang tinggi dan/atau kepadatan port Ethernet yang tinggi, konfigurasi ini dapat menyebabkan perebutan sumber daya. Oleh karena itu, dalam beberapa kasus mungkin perlu mengubah default untuk setiap port dalam sistem.
Jumlah antrian Tx/Rx default dapat bervariasi tergantung pada model dan versi driver tertentu. Jumlah antrian dapat disesuaikan menggunakan perintah ethtool -L yang tercantum di bawah ini.
CATATAN
Dalam kasus ini, Intel menyarankan agar Anda mengurangi jumlah antrean default untuk setiap port hingga tidak lebih dari jumlah CPU yang tersedia di node NUMA yang lokal ke port adaptor. Dalam beberapa kasus, saat mencoba menyeimbangkan sumber daya pada implementasi jumlah port yang tinggi, mungkin perlu mengurangi jumlah ini lebih jauh lagi.
Untuk mengubah konfigurasi antrian:
Berikut ini contohnyaample mengatur port ke 32 antrian Tx/Rx: ethtool -L ethX combined 32
Exampkeluaran:
ethtool -l ethX
Parameter saluran untuk ethX: Maksimum yang telah ditetapkan:
RX: 96
Telepon: 96
Lainnya: 1
Gabungan: 96
Pengaturan perangkat keras saat ini:
RX: 0
Telepon: 0
Lainnya: 1
Gabungan: 32
4.3 Moderasi Interupsi
Moderasi interupsi adaptif aktif secara default, dan dirancang untuk memberikan pendekatan yang seimbang antara penggunaan CPU yang rendah dan kinerja yang tinggi. Namun, Anda dapat mencoba menyetel pengaturan interupsi secara manual agar sesuai dengan kasus penggunaan Anda.
Rentang 0-235 mikrodetik menyediakan rentang efektif 4,310 hingga 250,000 interupsi per detik. Nilai rx-μsecs-high dapat ditetapkan secara independen dari rx-μsecs dan tx-μsecs dalam perintah ethtool yang sama, dan juga independen dari algoritma moderasi interupsi adaptif. Perangkat keras yang mendasarinya mendukung granularitas dalam interval 2 mikrodetik, sehingga nilai yang berdekatan dapat menghasilkan laju interupsi yang sama.
- Untuk menonaktifkan moderasi interupsi adaptif: ethtool -C ethX adaptive-rx off adaptive-tx off
- Untuk mengaktifkan moderasi interupsi adaptif: ethtool -C ethX adaptive-rx on adaptive-tx on
Tempat yang baik untuk memulai penyetelan umum adalah 84 μs, atau ~12000 interupsi/detik. Jika Anda melihat penghitung rx_dropped berjalan selama lalu lintas (menggunakan ethtool -S ethX), maka CPU Anda mungkin terlalu lambat, buffer dari ukuran ring adaptor tidak cukup (ethtool -G) untuk menampung paket selama 84 μs atau kecepatan interupsi terlalu rendah.
- Untuk mengatur moderasi interupsi ke laju interupsi tetap 84 μs di antara interupsi (12000 interupsi/dtk): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Nilai berikutnya yang dapat dicoba, jika Anda belum mencapai batas maksimal penggunaan CPU, adalah 62 μs. Ini menggunakan lebih banyak CPU, tetapi melayani buffer lebih cepat, dan memerlukan lebih sedikit deskriptor (ukuran ring, ethtool -G).
- Untuk mengatur moderasi interupsi ke tingkat interupsi tetap sebesar 62 usecs di antara interupsi (16000 interupsi/detik). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Jika penghitung rx_dropped meningkat selama lalu lintas (menggunakan ethtool -S ethX), Anda mungkin memiliki CPU yang terlalu lambat, buffer yang tidak cukup dari ukuran ring adaptor (ethtool -G), atau tingkat interupsi yang terlalu rendah. Jika Anda tidak memaksimalkan penggunaan CPU, Anda dapat meningkatkan tingkat interupsi dengan menurunkan nilai ITR. Ini menggunakan lebih banyak CPU, tetapi layanan buffer lebih cepat, dan memerlukan lebih sedikit deskriptor (ukuran ring, ethtool -G).
Jika CPU Anda berada pada 100%, maka tidak disarankan untuk meningkatkan laju interupsi. Dalam keadaan tertentu seperti beban kerja yang terikat CPU, Anda mungkin ingin meningkatkan nilai μs untuk mengaktifkan lebih banyak waktu CPU untuk aplikasi lain.
Jika Anda memerlukan kinerja latensi rendah dan/atau memiliki banyak CPU yang dikhususkan untuk pemrosesan jaringan, Anda dapat menonaktifkan moderasi interupsi sepenuhnya, yang memungkinkan interupsi dipicu secepat mungkin. - Untuk menonaktifkan moderasi interupsi ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
CATATAN
Bahasa Indonesia: Saat berjalan dengan moderasi interupsi dinonaktifkan, laju interupsi pada setiap antrean bisa sangat tinggi. Pertimbangkan untuk menyertakan parameter rx-usec-high untuk menetapkan batas atas pada laju interupsi. Perintah berikut menonaktifkan moderasi interupsi adaptif dan memungkinkan maksimum 5 mikrodetik sebelum menunjukkan penerimaan atau pengiriman telah selesai. Alih-alih menghasilkan sebanyak 200,000 interupsi per detik, ia membatasi total interupsi per detik menjadi 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 Coba sesuaikan timer penggabungan pengiriman/penerimaan/prioritas tinggi lebih tinggi (80/100/150/200) atau lebih rendah (25/20/10/5) untuk menemukan nilai optimal untuk beban kerja.
4.4 Ukuran Cincin
Jika Anda melihat penghitung rx_dropped di ethtool -S ethX (rx_dropped, rx_dropped.nic), atau mencurigai adanya tekanan cache dengan beberapa antrean aktif, Anda dapat mencoba menyesuaikan ukuran ring dari nilai default. Nilai default adalah 512, nilai maksimumnya adalah 4096.
- Untuk memeriksa nilai saat ini: ethtool -g ethX
Jika diduga bahwa kurangnya buffering menyebabkan penurunan pada laju interupsi saat ini, Anda dapat mencoba yang maksimum terlebih dahulu, kemudian minimum, lalu melanjutkan pada pencarian biner hingga Anda melihat kinerja optimal.
Jika tekanan cache dicurigai (banyak antrean aktif), mengurangi buffer dari default dapat membantu Intel ® Data Direct I/O (Intel ® DDIO) beroperasi dengan lebih efisien. Intel merekomendasikan untuk mencoba 128 atau 256 per antrean, dengan menyadari bahwa peningkatan laju interupsi melalui ethtool -C mungkin diperlukan untuk menghindari peningkatan rx_dropped. - Untuk mengatur ukuran cincin ke nilai tetap: ethtool -G eth12 rx 256 tx 256
CATATAN
Untuk memperbaiki paket Rx yang terputus dengan ethtool -S ethX|grep drop, pertimbangkan untuk meningkatkan ukuran ring menjadi 4096. Lakukan eksperimen untuk menemukan pengaturan terbaik untuk beban kerja, tetapi waspadai penggunaan memori yang berlebihan dengan nilai yang lebih tinggi.
4.5 Kontrol Aliran
Kontrol aliran Layer 2 dapat memengaruhi kinerja TCP secara signifikan dan direkomendasikan untuk dinonaktifkan untuk sebagian besar beban kerja. Pengecualian yang mungkin terjadi adalah lalu lintas bursty yang durasinya tidak lama.
Kontrol aliran dinonaktifkan secara default.
- Untuk mengaktifkan kontrol aliran: ethtool -A ethX rx on tx on
- Untuk menonaktifkan kontrol aliran: ethtool -A ethX rx off tx off
CATATAN
Anda harus memiliki mitra tautan yang mampu mengendalikan aliran agar dapat mengaktifkan pengendalian aliran dengan sukses.
4.6 Bingkai Jumbo
Bila lingkungan lalu lintas yang diharapkan terdiri dari blok data besar yang ditransfer, mungkin ada baiknya untuk mengaktifkan fitur jumbo frame. Dukungan Jumbo Frame diaktifkan dengan mengubah Maximum Transmission Unit (MTU) ke nilai yang lebih besar dari nilai default 1500. Hal ini memungkinkan perangkat untuk mentransfer data dalam paket yang lebih besar dalam lingkungan jaringan. Pengaturan ini dapat meningkatkan throughput dan mengurangi penggunaan CPU untuk beban kerja I/O yang besar. Namun, hal ini dapat memengaruhi paket kecil atau beban kerja yang sensitif terhadap latensi.
CATATAN
Bingkai jumbo atau pengaturan MTU yang lebih besar harus dikonfigurasikan dengan benar di seluruh lingkungan jaringan Anda.
Gunakan perintah ifconfig untuk meningkatkan ukuran MTU. Misalnyaample, masukkan yang berikut, di mana adalah nomor antarmuka: ifconfig mtu 9000 ke atas
Atau, Anda dapat menggunakan perintah ip sebagai berikut: ip link set mtu 9000 dev pengaturan tautan ip dev
Penyetelan Platform (i40e Non-Spesifik)
5.1 Pengaturan BIOS
- Aktifkan Intel® VT-d untuk beban kerja virtualisasi.
- Hyper-threading (prosesor logis) dapat memengaruhi kinerja. Lakukan eksperimen dengan mengaktifkan atau menonaktifkannya untuk beban kerja Anda.
- Intel® Turbo Boost memungkinkan inti CPU beroperasi pada frekuensi yang lebih tinggi daripada frekuensi dasar CPU. Mengaktifkan Intel® Turbo Boost dapat meningkatkan kinerja untuk banyak beban kerja tetapi menghabiskan lebih banyak daya untuk menjaga inti pada frekuensi yang lebih tinggi. Lakukan eksperimen dengan mengaktifkan/menonaktifkan Turbo Boost untuk beban kerja Anda.
CATATAN
Frekuensi turbo tidak dijamin jika platform mengalami utilisasi CPU yang tinggi secara keseluruhan. Frekuensi turbo inti yang lebih tinggi dikurangi saat utilisasi CPU secara keseluruhan meningkat.
5.2 Manajemen Daya
Manajemen daya dapat memengaruhi kinerja, terutama pada beban kerja latensi rendah. Jika kinerja merupakan prioritas yang lebih tinggi daripada menurunkan konsumsi daya, Intel menyarankan Anda untuk bereksperimen dengan membatasi dampak manajemen daya. Ada banyak cara berbeda untuk membatasi manajemen daya, melalui alat sistem operasi, pengaturan BIOS, dan parameter boot kernel. Pilih metode dan level terbaik yang sesuai dengan lingkungan Anda.
5.2.1 Kontrol C-State
Membatasi masuknya C-state ke CO atau C1 meningkatkan kinerja dan meningkatkan pemanfaatan daya.
Menonaktifkan entri status CPU Package C6 dapat meningkatkan kinerja jaringan. Namun, hal ini meningkatkan penggunaan daya.
Pilihan berikut tersedia:
- Kontrol entri C-state secara dinamis:
Membuka
/dev/cpu_dma_latency dan tulis latensi maksimum yang diizinkan ke dalamnya.
CATATAN
Ada program kecil bernama cpudmalatency.c yang dapat diunduh dari komunitas sumber terbuka, dikompilasi, dan dijalankan dari baris perintah untuk melakukan hal ini.
Berikut ini contohnyaample memungkinkan waktu bangun lima μs, dan dengan demikian memungkinkan entri C1: cpudmalatency 5 &
- Batasi C-state maksimum dalam pengaturan boot kernel:
Untuk CPU Intel: intel_idle.max_cstates=1
Untuk CPU non-Intel: processor.max_cstates=1 - Gunakan perintah cpupower untuk memeriksa dan menonaktifkan status CPU C6: Periksa: cpupower monitor atau cpupower idle-info
Nonaktifkan C6: cpupower idle-set -d3 atau
Nonaktifkan C-States: cpupower idle-set -D0
Catatan:
- Nonaktifkan C-state pada CPU jika server memiliki Prosesor Intel® Intel® Xeon® Scalable Generasi ke-4. Saat Hyper Threading diaktifkan atau dinonaktifkan, menonaktifkan status siaga (-D0) mencegah inti memasuki status daya rendah selama periode siaga dan mengurangi latensi CPU untuk beralih antara status siaga dan aktif.
- Manajemen daya Prosesor Intel® Xeon® Scalable Generasi ke-4 sangat agresif. Untuk mencegah inti prosesor memasuki kondisi daya rendah, cobalah kurangi jumlah inti prosesor yang digunakan agar tetap aktif lebih lama (ethtool -L gabungan ). Selain itu, ikat interupsi ke inti tertentu menggunakan set irq affinity (paling sering dengan -x local atau daftar inti CPU), dan pastikan beban kerja berjalan pada inti yang sama dengan tasket atau numactl. Ini meningkatkan kinerja dengan menjaga inti tetap aktif dan mengoptimalkan penanganan interupsi.
Aktifkan C6:
daya prosesor diam-atur -d3
Aktifkan C-States:
daya prosesor diam-atur -E
- Metode lain adalah dengan menggunakan alat yang disetel (termasuk dalam banyak distribusi Linux) untuk menetapkan pro kinerjafile. Para profesional inifiles memodifikasi beberapa pengaturan OS yang dapat memengaruhi kinerja di banyak aplikasi. Telah ditemukan bahwa throughput jaringanfile memberikan perbaikan pada sebagian besar beban kerja.
Memeriksa:
disetel-adm aktif
Mengatur:
disetel-adm profile throughput jaringan
CATATAN
Layanan yang disetel harus berjalan untuk perintah di atas. Untuk memeriksa/memulai ulang, disetel: systemctl status tuned systemctl restart tuned
Anda juga dapat melarang entri C-state apa pun dengan menambahkan yang berikut ke baris boot kernel:
menganggur=jajak pendapat - Batasi C-state melalui pengaturan manajemen daya BIOS sistem, yang mungkin memiliki efek positif pada kinerja.file tersedia.
Alat seperti turbostat atau x86_energy_perf_policy dapat digunakan untuk memeriksa atau mengatur pengaturan manajemen daya.
5.2.2 Manajemen Daya PCIe
Active-State Power Management (ASPM) mengaktifkan status daya yang lebih rendah untuk tautan PCIe saat tidak digunakan secara aktif. Hal ini dapat menyebabkan latensi yang lebih tinggi pada perangkat jaringan PCIe, jadi Intel menyarankan Anda menonaktifkan ASPM untuk beban kerja yang sensitif terhadap latensi. Nonaktifkan ASPM dengan menambahkan yang berikut ke baris boot kernel: pcie_aspm=off
5.2.3 Skala Frekuensi CPU
Penskalaan frekuensi CPU (atau penskalaan kecepatan CPU) adalah teknik manajemen daya Linux yang mengatur kecepatan clock sistem secara otomatis untuk menghemat daya dan panas. Sama seperti C-state, hal ini dapat menyebabkan latensi yang tidak diinginkan pada koneksi jaringan.
Alat cpupower juga dapat digunakan untuk memeriksa dan mengubah pengaturan default dan batasan kinerja CPU:
- Periksa: monitor daya CPU atau
- Atur CPU ke mode kinerja: cpupower frequency-set -g performance
CATATAN
Modifikasi pada batas frekuensi CPU dapat berdampak pada banyak beban kerja dan dapat menonaktifkan fitur lain, seperti mode turbo CPU.
Untuk menonaktifkan penskalaan frekuensi CPU, nonaktifkan layanan daya CPU dengan perintah berikut:
systemctl hentikan cpupower.service
systemctl menonaktifkan cpupower.service
5.2.4 Panduan Manajemen Daya Tambahan
Rincian tambahan disediakan dalam laporan tingkat tinggi iniview dari banyak fitur manajemen daya dalam prosesor Intel® Xeon® Scalable Generasi ke-3, serta panduan tentang bagaimana fitur-fitur ini dapat diintegrasikan pada tingkat platform: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost membuat prosesor lebih cepat saat dibutuhkan tetapi dapat menghabiskan daya tambahan. Menonaktifkan Turbo Boost menjaga kecepatan prosesor tetap stabil, memberikan Anda tingkat kinerja yang konsisten untuk beban kerja tertentu.
5.4 Firewall
Firewall dapat memengaruhi kinerja, terutama kinerja latensi.
Nonaktifkan iptables/firewalld jika tidak diperlukan.
5.5 Pengaturan Aplikasi
Seringkali satu utas (yang sesuai dengan satu antrean jaringan) tidak cukup untuk mencapai lebar pita maksimum. Beberapa arsitektur platform, seperti AMD, cenderung membuang lebih banyak paket Rx dengan satu utas dibandingkan dengan platform dengan prosesor berbasis Intel.
Pertimbangkan untuk menggunakan alat seperti tasket atau numactl untuk menyematkan aplikasi ke node NUMA atau inti CPU yang lokal ke perangkat jaringan. Untuk beberapa beban kerja seperti penyimpanan I/O, memindahkan aplikasi ke node non-lokal akan memberikan manfaat.
Bereksperimenlah dengan meningkatkan jumlah utas yang digunakan oleh aplikasi Anda jika memungkinkan.
Versi Kernel 5.6
Kebanyakan kernel in-box modern dioptimalkan dengan cukup baik untuk kinerja, tetapi, tergantung pada kasus penggunaan Anda, memperbarui kernel dapat memberikan peningkatan kinerja. Mengunduh sumber juga memungkinkan Anda untuk mengaktifkan/menonaktifkan fitur tertentu sebelum membangun kernel.
5.7 Pengaturan Sistem Operasi/Kernel
Lihat panduan penyetelan sistem operasi, seperti Panduan Penyetelan Kinerja Jaringan Red Hat Enterprise Linux, untuk wawasan lebih lanjut tentang penyetelan sistem operasi umum.
Beberapa parameter umum yang perlu disetel tercantum dalam tabel berikut. Perhatikan bahwa ini hanyalah titik awal yang disarankan, dan mengubahnya dari nilai default dapat meningkatkan sumber daya yang digunakan pada sistem. Meskipun meningkatkan nilai dapat membantu meningkatkan kinerja, penting untuk bereksperimen dengan nilai yang berbeda untuk menentukan nilai yang paling sesuai untuk sistem, beban kerja, dan jenis lalu lintas tertentu.
Parameter kernel dapat dikonfigurasi menggunakan utilitas sysctl di Linux seperti yang ditunjukkan di bawah ini.
Ke view nilai default untuk rmem dan wmem pada sistem:
sysctl.core.rmem_default
sysctl net.core.wmem_default
Tetapkan nilai ke maks (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Ukuran buffer soket, juga dikenal sebagai buffer penerima (rmem) dan buffer transmisi (wmem), adalah parameter sistem yang menentukan jumlah memori yang dicadangkan untuk lalu lintas jaringan yang masuk dan keluar.
Menjalankan sysctl tanpa argumen -w akan mencantumkan parameter dengan pengaturannya saat ini.
Pengaturan Tumpukan | Keterangan |
net.inti.rmem_default | Ukuran Jendela Penerimaan Default |
net.core.wmem_default | Ukuran Jendela Transmisi Default |
inti bersih.rmem_max | Ukuran Jendela Penerimaan Maksimum |
net.core.wmem_max | Ukuran Jendela Transmisi Maksimum |
bersih.inti.optmem_max | Buffer Memori Opsi Maksimum |
net.core.netdev_max_backlog | Tumpukan paket yang belum diproses sebelum kernel mulai berhenti bekerja |
jaringan.ipv4.tcp_rmem | Penyimpan memori untuk buffer baca TCP |
jaringan.ipv4.tcp_wmem | Penyimpan memori untuk buffer pengiriman TCP |
Kernel, tumpukan jaringan, pengendali memori, kecepatan CPU, dan parameter manajemen daya dapat berdampak besar pada kinerja jaringan. Rekomendasi umum adalah menerapkan parameter throughput jaringanfile menggunakan perintah tuned. Ini memodifikasi beberapa pengaturan OS untuk memberikan preferensi pada aplikasi jaringan.
Memeriksa:
disetel-adm aktif
Mengatur:
disetel-adm profile throughput jaringan
5.8 Penumpukan Perangkat Jaringan
Fitur ini membantu meningkatkan kinerja jaringan dengan mengelola lalu lintas masuk secara efektif, mengurangi kehilangan paket, menurunkan latensi, dan meningkatkan throughput. Hal ini menghasilkan pengalaman pengguna yang lebih baik dan respons sistem yang lebih cepat.
Secara default, ini diaktifkan di sebagian besar sistem operasi Linux. Untuk memeriksa nilai default:
sysctl.core.netdev_max_backlog (dalam bahasa Inggris)
Nilai maksimum untuk netdev_max_backlog dapat bervariasi tergantung pada faktor-faktor seperti versi kernel, perangkat keras, memori, dan beban kerja. Dalam banyak kasus, 8192 dianggap sebagai nilai yang baik. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfigurasi dan Penyetelan Khusus Platform
5.9.1 Prosesor Intel® Xeon® Scalable Generasi ke-4
Manajemen daya prosesor Intel® Xeon® Scalable Generasi ke-4 sangat agresif dibandingkan dengan prosesor Intel® Xeon® Scalable Generasi ke-3. Untuk mencegah inti prosesor memasuki kondisi daya rendah, cobalah kurangi jumlah inti prosesor yang digunakan agar tetap aktif lebih lama.
Pengaturan Bios yang Direkomendasikan untuk Performa Tertinggi
- Mengaktifkan/menonaktifkan hyper-threading (berdasarkan persyaratan beban kerja dan sasaran kinerja) pada CPU.
- Atur sistem secara profile ke Kinerja untuk kinerja maksimal.
CATATAN
Hal ini mengakibatkan konsumsi daya yang lebih tinggi - Atur manajemen daya CPU ke Kinerja Maksimum untuk memprioritaskan kinerja CPU maksimum dibandingkan efisiensi daya.
- Aktifkan Turbo Boost. Menonaktifkan Turbo Boost dalam pengaturan BIOS sistem biasanya mencegah CPU meningkatkan kecepatan clock secara dinamis melampaui frekuensi dasarnya.
- CATATAN
Menonaktifkan Turbo Boost mungkin cocok untuk kasus penggunaan tertentu di mana performa konsisten, efisiensi daya, atau manajemen termal lebih diutamakan daripada performa maksimal. - Matikan fitur Single Root I/O Virtualization (SR-IOV), jika sistem tidak menggunakan teknologi virtualisasi.
- Nonaktifkan C-state untuk memerintahkan CPU agar tetap aktif dan mencegah masuknya ke kondisi idle yang lebih dalam.
- Nonaktifkan C1E, untuk memastikan bahwa CPU tetap aktif dan tidak memasuki status siaga C1E.
- Atur frekuensi uncore ke maksimum untuk memerintahkan sistem beroperasi pada frekuensi tertinggi yang tersedia.
- Pada platform Dell, atur emulasi inti Multiple APIC Description Table (MADT) ke Linear (atau Round-Robin tergantung pada BIOS) untuk menyediakan pemetaan inti CPU yang jelas dan dapat diprediksi.
Penyetelan Tingkat OS yang Direkomendasikan untuk Kinerja yang Optimal
- Atur pengatur skala frekuensi CPU ke kinerja. cpupower frequency-set -g kinerja cpupower frequency-info
- Nonaktifkan C-States. cpupower idle-set -D0
- Atur buffer inti Rx (rmem) dan Tx (wmem) ke nilai maksimum. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Tetapkan daftar tunggu perangkat jaringan. sysctl -w net.core.netdev_max_backlog=8192
- Atur pengaturan profile (beban kerja bergantung pada throughput/latensi).
disetel-adm profile throughput jaringan
Penyetelan Tingkat Adaptor yang Direkomendasikan untuk Kinerja yang Dioptimalkan
- Batasi jumlah antrean yang akan digunakan untuk lalu lintas aplikasi. Gunakan jumlah antrean minimum yang diperlukan untuk menjaga inti CPU terkait tetap aktif guna mencegahnya memasuki status siaga yang lebih dalam (sesuaikan dengan beban kerja): ethtool -L gabungan 32
- Mengatur tingkat moderasi interupsi. ethtool -C adaptif-rx mati adaptif-tx mati rx-usecs-tinggi 50 rx-usecs 50 tx-usecs 50
Coba atur pengatur waktu penggabungan transmisi/terima/prioritas tinggi lebih tinggi (80/100/150/200) atau lebih rendah (25/20/10/5) untuk menemukan nilai optimal bagi beban kerja. - Mengatur ukuran cincin Rx/Tx. ethtool -G rx4096tx4096
CATATAN
Jika Anda melihat paket Rx terputus dengan ethtool -S| grep drop, coba kurangi ukuran ring menjadi <4096. Cobalah untuk menemukan nilai optimal untuk beban kerja di mana paket tidak terputus. - Tetapkan Afinitas IRQ. Gunakan inti lokal ke NIC, atau pemetaan inti tertentu (di mana # inti sama dengan jumlah antrean 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
Prosesor AMD EPYC adalah CPU tangguh yang dibuat untuk server dan pusat data, dibangun di atas arsitektur Zen AMD. Pengaturan di bawah ini berasal dari seri EPYC generasi ke-4 AMD.
Pengaturan BIOS yang Direkomendasikan untuk Performa Tertinggi
- Aktifkan mode kustom agar pengguna dapat menyesuaikan kinerja CPU, konsumsi daya, dan pengaturan lainnya. Ini membantu menyempurnakan sistem untuk mendapatkan keseimbangan terbaik antara kinerja dan efisiensi energi.
- Aktifkan peningkatan kinerja inti untuk memungkinkan CPU secara otomatis meningkatkan kecepatannya guna menangani tugas yang lebih intensif, sehingga meningkatkan kinerja keseluruhan.
- Nonaktifkan kontrol C-state global, untuk mencegah CPU memasuki status penghematan daya yang lebih dalam yang dikenal sebagai C-state, yang dapat mempertahankan responsivitas.
CATATAN
Menonaktifkan C-state dapat menyebabkan konsumsi daya tambahan dan meningkatkan suhu termal. Pantau keduanya untuk beban kerja. - Mengaktifkan/menonaktifkan Simultaneous Multithreading (SMT) pada CPU, berdasarkan persyaratan beban kerja dan sasaran kinerja. SMT setara dengan Hyper Threading pada CPU Intel.
CATATAN
Untuk kinerja yang dioptimalkan, rujuk pada Penyetelan Pengaturan Driver i40e pada halaman 13 dan Penyetelan Platform (i40e Non-Spesifik) pada halaman 19 untuk penyetelan tingkat OS dan adaptor yang direkomendasikan.
Ikatan Adaptor
Linux bonding merupakan fitur hebat yang dapat meningkatkan kinerja jaringan, redundansi, dan toleransi kesalahan secara signifikan di lingkungan server. Namun, penting untuk dicatat bahwa hal ini memerlukan perangkat keras jaringan yang kompatibel dan konfigurasi yang tepat pada server dan switch agar dapat berfungsi dengan baik.
Driver bonding di Linux memungkinkan Anda untuk menggabungkan beberapa antarmuka jaringan fisik menjadi satu antarmuka bonding. Antarmuka bonding ini muncul sebagai satu antarmuka jaringan virtual tunggal untuk sistem operasi dan aplikasi.
CATATAN
Ikatan adalah antarmuka logis, jadi tidak mungkin untuk mengatur afinitas CPU secara langsung pada antarmuka ikatan (misalnyaample, bond0). Artinya, ia tidak memiliki kontrol langsung atas penanganan interupsi atau afinitas CPU. Afinitas CPU harus dikonfigurasi untuk antarmuka dasar yang merupakan bagian dari ikatan.
Ikatan menyediakan beberapa mode operasi, masing-masing punya karakteristik tersendiri.
Mode | Jenis |
0 | Usul |
1 | Pencadangan Aktif |
2 | XOR |
3 | Siaran |
4 | LACP |
5 | Menyeimbangkan Beban Transmisi |
6 | Keseimbangan Beban Adaptif |
Ada beberapa metode untuk membuat bonding di Linux. Salah satu metode yang paling umum adalah dengan menggunakan konfigurasi jaringan. files (misalnyaample, /etc/network/interfaces atau /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurasi Menggunakan Konfigurasi Jaringan Files
Langkah-langkah berikut membuat ikatan melalui konfigurasi jaringan files.
- Pilih dua atau lebih port NIC untuk bonding (misalnyaamp(le, ethX dan ethY)
- Konfigurasi NIC Terbuka Files di bawah /etc/sysconfig/network-scripts/ untuk Antarmuka NIC yang diperlukan (misalnyaample, vi ifcfg-ethX dan vi ifcfg-ethY) dan tambahkan teks berikut:
MASTER=bondN [Catatan: N adalah bilangan bulat untuk menyebutkan nomor ikatan.] SLAVE=ya - Buat skrip jaringan obligasi file menggunakan vi /etc/sysconfig/networkscripts/ifcfg-bondN dan masukkan teks berikut:
DEVICE=bondN [Catatan: N adalah bilangan bulat untuk menyebutkan nomor bond] ONBOOT=ya USERCTL=tidak BOOTPROTO=dhcp (atau) tidak ada
IPADDR=200.20.2.4 [diperlukan jika BOOTPROTO=tidak ada] NETMASK=255.255.255.0 [diperlukan jika BOOTPROTO=tidak ada] NETWORK=200.20.2.0 [diperlukan jika BOOTPROTO=tidak ada] BROADCAST=200.20.2.255 [diperlukan jika BOOTPROTO=tidak ada] BONDING_OPTS=”mode=1 miimon=100″
CATATAN
Modus dapat berupa bilangan bulat apa pun dari 0 hingga 6 berdasarkan kebutuhan. - Mulai ulang layanan jaringan menggunakan service network restart atau systemctl restart NetworkManager.service
Pemecahan Masalah Kinerja
7.1 Pemanfaatan CPU
Periksa pemanfaatan CPU per inti saat beban kerja sedang berjalan.
Perhatikan bahwa pemanfaatan per inti lebih relevan dengan kinerja daripada pemanfaatan CPU secara keseluruhan karena hal ini memberikan gambaran tentang pemanfaatan CPU per antrean jaringan. Jika Anda hanya memiliki beberapa utas yang menjalankan lalu lintas jaringan, maka Anda mungkin hanya memiliki beberapa inti yang digunakan. Namun, jika inti tersebut berada pada 100%, maka throughput jaringan Anda kemungkinan dibatasi oleh pemanfaatan CPU dan inilah saatnya untuk melakukan hal berikut:
- Sesuaikan moderasi IRQ/ukuran dering seperti yang dirinci dalam Moderasi Interupsi.
- Tingkatkan jumlah utas aplikasi untuk menyebarkan beban CPU ke lebih banyak inti. Jika semua inti berjalan pada 100%, maka aplikasi Anda mungkin terikat CPU daripada terikat jaringan.
Alat yang umum tersedia:
- atas
— Tekan 1 untuk memperluas daftar CPU dan memeriksa mana yang sedang digunakan.
— Perhatikan tingkat pemanfaatannya.
— Perhatikan proses mana yang tercantum sebagai yang paling aktif (bagian atas daftar). - statistik mp
Berikut ini contohnyaampBaris perintah le diuji pada Red Hat Enterprise Linux 7.x.
Ini menampilkan penggunaan CPU per inti (dengan menemukan total persentase idle dan menguranginya dari 100) dan menyorot nilai di atas 80% dengan warna merah. mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | column - perf atas Cari di mana siklus dihabiskan.
7.2 Penghitung i40e
Driver i40e menyediakan daftar panjang penghitung untuk debug dan pemantauan antarmuka melalui perintah ethtool -S ethX. Memantau output saat beban kerja sedang berjalan dan/atau membandingkan nilai penghitung sebelum dan setelah beban kerja berjalan dapat membantu.
- Untuk mendapatkan dump lengkap penghitung i40e: ethtool -S ethX
- Untuk mengawasi penghitung yang bukan nol: watch -d (ethtool -S ethX) | egrep -v :\ 0 | column
Beberapa hal yang perlu diperhatikan: - rx_dropped berarti CPU tidak melayani buffer dengan cukup cepat.
- port.rx_dropped berarti ada sesuatu yang tidak cukup cepat di slot/memori/sistem.
7.3 Penghitung Jaringan
Periksa netstat -s sebelum/sesudah menjalankan beban kerja.
Netstat mengumpulkan informasi jaringan dari semua perangkat jaringan dalam sistem. Oleh karena itu, hasil mungkin terpengaruh dari jaringan selain jaringan yang diuji. Output dari netstat -s dapat menjadi indikator yang baik tentang masalah kinerja dalam sistem operasi atau kernel Linux. Konsultasikan panduan penyetelan sistem operasi, seperti Panduan Penyetelan Kinerja Jaringan Red Hat Enterprise Linux, untuk wawasan lebih lanjut tentang penyetelan sistem operasi umum.
7.4 Log Sistem
Periksa log sistem untuk kesalahan dan peringatan (/var/log/messages, dmesg).
7.5 Alat Intel svr-info
Intel menyediakan alat svr-info (lihat https://github.com/intel/svr-info) untuk Linux yang menangkap detail perangkat keras dan perangkat lunak yang relevan dari server. Output svr-info dapat sangat membantu untuk mengidentifikasi hambatan sistem atau pengaturan/penyetelan yang tidak dioptimalkan untuk beban kerja. Saat membuka kasus dukungan dengan Intel untuk masalah kinerja terkait Ethernet, pastikan untuk menyertakan output svr-info (teks file) untuk setiap server Linux dalam konfigurasi pengujian.
- Unduh dan instal svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./info-svr
> namahost.txt - Kumpulkan outputnya:
./svr-info > namahost.txt - Lampirkan satu teks (.txt) file untuk setiap server ke kasus dukungan Intel Anda untuk analisis.
Rekomendasi untuk Skenario Kinerja Umum
8.1 Penerusan IP
- Perbarui kernel.
Beberapa kernel dalam distro terkini mengalami penurunan kinerja routing karena perubahan kernel dalam kode routing yang dimulai dengan penghapusan cache routing karena alasan keamanan. Kernel luar distro terkini seharusnya memiliki patch yang mengurangi dampak perubahan ini terhadap kinerja dan mungkin memberikan peningkatan kinerja. - Nonaktifkan hyper-threading (inti logis).
- Edit parameter boot kernel.
— Paksa iommu mati (intel_iommu=off atau iommu=off) dari baris boot kernel kecuali diperlukan untuk virtualisasi
— Matikan manajemen daya: processor.max_cstates=1 idle=poll pcie_aspm=off - Batasi jumlah antrian agar sama dengan jumlah inti pada soket lokal (12 dalam contoh ini)ample). ethtool -L ethX digabungkan 12
- Pin interupsi ke soket lokal saja. set_irq_affinity -X local ethX ATAU set_irq_affinity -X local ethX
CATATAN
-X atau -x dapat digunakan tergantung pada beban kerja. - Ubah ukuran ring Tx dan Rx sesuai kebutuhan. Nilai yang lebih besar membutuhkan lebih banyak sumber daya tetapi dapat memberikan kecepatan penerusan yang lebih baik. ethtool -G ethX rx 4096 tx 4096
- Nonaktifkan GRO saat melakukan perutean.
Karena masalah kernel yang diketahui, GRO harus dimatikan saat melakukan routing/penerusan. ethtool -K ethX gro off di mana ethX adalah antarmuka Ethernet yang akan dimodifikasi. - Nonaktifkan moderasi interupsi adaptif dan tetapkan nilai statis. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
CATATAN
Bergantung pada jenis prosesor dan beban kerja, parameter penggabungan untuk RX dan TX dapat disesuaikan untuk meningkatkan performa (atau mengurangi kehilangan bingkai).
- Nonaktifkan firewall. sudo systemctl nonaktifkan firewalld sudo systemctl hentikan firewalld
- Aktifkan penerusan IP. sysctl -w net.ipv4.ip_forward=1
- Konfigurasikan nilai maksimum untuk ukuran buffer soket terima dan kirim.
CATATAN
Bergantung pada beban kerja atau persyaratan, nilai-nilai ini dapat diubah dari default.
8.2 Latensi Rendah
- Matikan hyper-threading (inti logis).
- Pastikan perangkat jaringan lokal ke numa core 0.
- Sematkan patokan ke inti 0 menggunakan tasket -c 0.
- Matikan irqbalance menggunakan systemctl stop irqbalance atau systemctl enable irqbalance
- Jalankan skrip afinitas untuk menyebarkannya ke seluruh inti. Coba lokal atau semua.
- Matikan moderasi interupsi. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Batasi jumlah antrian agar sama dengan jumlah inti pada soket lokal (32 dalam contoh ini)ample). ethtool -L ethX digabungkan 32
- Pin interupsi ke soket lokal saja (skrip dikemas dengan sumber driver i40e). set_irq_affinity -X local ethX
- Gunakan tolok ukur yang sudah ada seperti netperf -t TCP_RR, netperf -t UDP_RR, atau NetPipe. netperf -t TCP_RR atau netperf -t UDP_RR
- Pin benchmark ke satu inti di node NUMA lokal. tasket -c
Intel® Ethernet Seri 700
Panduan Penyetelan Performa Linux
Desember 2024
Nomor Dokumen: 334019, Rev.: 1.2
Dokumen / Sumber Daya
![]() |
Penyetelan Performa Intel Ethernet Seri 700 Linux [Bahasa Indonesia:] Panduan Pengguna 334019, Penyetelan Performa Ethernet Seri 700 Linux, Ethernet Seri 700, Penyetelan Performa Linux, Penyetelan Performa, Penyetelan |