Network Interface Controller (NIC) multi-queue memungkinkan Anda mengonfigurasi beberapa antrian transmisi (Tx) dan penerimaan (Rx) pada NIC, dengan setiap antrian diproses oleh core CPU terpisah. Pendekatan ini meningkatkan throughput I/O jaringan dan mengurangi latensi dengan mendistribusikan pemrosesan paket ke beberapa core CPU.
Manfaat
NIC single-queue tradisional hanya menggunakan satu core CPU untuk memproses semua paket jaringan, sehingga menciptakan bottleneck. Core tunggal tersebut menjadi kelebihan beban sementara core lainnya menganggur, yang berakibat pada peningkatan latensi dan kehilangan paket.
NIC multi-queue mendistribusikan lalu lintas jaringan ke beberapa core CPU, memanfaatkan arsitektur multi-core secara optimal. Hasil pengujian menunjukkan peningkatan kinerja sebesar 50–100% dengan dua antrian dan peningkatan yang jauh lebih besar dengan empat antrian.
Manfaat utama:
Pemanfaatan CPU yang lebih baik: Mendistribusikan lalu lintas jaringan ke beberapa core
Throughput lebih tinggi: Memproses beberapa paket secara bersamaan, terutama dalam kondisi beban tinggi
Latensi lebih rendah: Mengurangi kemacetan dengan mendistribusikan paket ke berbagai antrian
Lebih sedikit packet drop: Mencegah kehilangan paket dalam skenario lalu lintas tinggi
Konfigurasi yang tidak tepat—seperti jumlah antrian atau pengaturan afinitas CPU yang salah—dapat menurunkan kinerja. Ikuti panduan dalam topik ini untuk mengoptimalkan konfigurasi Anda.
Cara kerja
Arsitektur antrian
Elastic Network Interface (ENI) mendukung beberapa antrian Combined. Setiap antrian Combined terdiri dari satu antrian Rx (receive) dan satu antrian Tx (transmit), yang diproses oleh core CPU independen.
Antrian Rx: Menangani paket masuk, didistribusikan berdasarkan aturan seperti polling atau distribusi berbasis aliran
Antrian Tx: Menangani paket keluar, dikirim berdasarkan faktor seperti urutan atau prioritas
IRQ Affinity
Setiap antrian memiliki interrupt independen. Interrupt Request (IRQ) Affinity mendistribusikan interrupt dari berbagai antrian ke core CPU tertentu, mencegah satu core menjadi kelebihan beban.
IRQ Affinity diaktifkan secara default di semua image kecuali Red Hat Enterprise Linux (RHEL). Untuk konfigurasi RHEL, lihat Configure IRQ Affinity.
Prasyarat
Sebelum mengonfigurasi pengaturan multi-queue, pastikan Anda telah memiliki:
Instance ECS yang mendukung fitur NIC multi-queue (lihat Instance family overview).
Izin yang sesuai untuk mengubah pengaturan ENI.
(Opsional) Untuk konfigurasi IRQ Affinity pada RHEL: akses jaringan publik untuk mengunduh skrip
ecs_mq.
Dukungan tipe instans
Untuk memeriksa apakah suatu tipe instans mendukung multi-queue:
Lihat kolom NIC queues dalam tabel tipe instans.
Nilai lebih dari 1 menunjukkan dukungan multi-queue
Nilai tersebut menunjukkan jumlah maksimum antrian per ENI
Panggil operasi API DescribeInstanceTypes untuk mengkueri metrik antrian:
Parameter | Deskripsi |
| Antrian default untuk ENI primer |
| Antrian default untuk ENI sekunder |
| Jumlah maksimum antrian yang diizinkan per ENI |
| Kuota total antrian untuk instans |
Image publik versi lama dengan kernel sebelum versi 2.6 mungkin tidak mendukung multi-queue. Gunakan image publik terbaru untuk kompatibilitas terbaik.
Lihat konfigurasi antrian
Lihat di Konsol
Buka halaman ENI di Konsol ECS.
Di bilah navigasi atas, pilih Wilayah dan kelompok sumber daya Anda.
Klik ID ENI untuk melihat detailnya.
Di bagian Basic Information, periksa parameter Queues:
Jika Anda telah mengubah jumlah antrian, nilai baru akan ditampilkan di sini
Jika Anda belum pernah mengubah jumlah antrian:
Tidak ada nilai jika ENI tidak terikat
Jumlah antrian default jika ENI terikat ke instans
Lihat menggunakan API
Panggil operasi API DescribeNetworkInterfaceAttribute dan periksa parameter QueueNumber dalam respons.
Lihat pada instans Linux
Sambungkan ke instans Linux Anda menggunakan Workbench.
CatatanKonfigurasi antrian hanya dapat dilihat pada instans Linux. Untuk instans Windows, gunakan Konsol atau API.
Jalankan
ip address showuntuk melihat antarmuka jaringan Anda.
Periksa apakah multi-queue diaktifkan pada ENI (contoh menggunakan
eth0):ethtool -l eth0Dalam output:
Pre-set maximums - Combined: Jumlah maksimum antrian yang didukung oleh ENI
Current hardware settings - Combined: Jumlah antrian yang sedang digunakan
Contoh output yang menunjukkan dukungan 3 antrian dan 3 antrian sedang digunakan:

Ubah konfigurasi antrian
Setelah Anda mengikat ENI ke instans, jumlah antrian ENI tersebut secara otomatis diatur ke nilai default untuk tipe instans tersebut. Anda dapat mengubah konfigurasi ini secara manual jika diperlukan.
Ubah jumlah maksimum antrian (Konsol atau API)
Anda dapat mengubah jumlah maksimum antrian yang didukung oleh ENI menggunakan Konsol atau API.
Persyaratan:
Persyaratan | Deskripsi |
Status ENI | Harus dalam status Available, atau instans yang terikat harus dalam status Stopped |
Batas antrian | Tidak boleh melebihi batas |
Kuota total | Total antrian di semua ENI tidak boleh melebihi kuota |
Menggunakan Konsol:
Buka halaman ENI.
Temukan ENI Anda dan klik ID-nya untuk melihat detail.
Di bagian Basic Information, klik ikon edit di sebelah Queues.
Masukkan jumlah antrian baru dan klik OK.
Jika ENI terikat ke instans, jumlah antrian baru akan berlaku setelah Anda menjalankan ulang instans tersebut.
Menggunakan API:
Panggil operasi API ModifyNetworkInterfaceAttribute dan tentukan parameter QueueNumber.
Ubah penggunaan antrian di OS (Linux saja)
Anda dapat menyesuaikan jumlah antrian yang aktif digunakan oleh ENI di sistem operasi. Jumlah ini harus kurang dari atau sama dengan jumlah maksimum antrian yang didukung oleh ENI.
Perubahan yang dilakukan di tingkat OS:
Tidak memengaruhi jumlah antrian yang ditampilkan di Konsol atau dikembalikan oleh operasi API.
Tidak bersifat persisten setelah restart instans — OS akan kembali menggunakan jumlah maksimum antrian yang tersedia.
Contoh menggunakan Alibaba Cloud Linux 3:
Sambungkan ke instans Linux Anda menggunakan Workbench.
Periksa konfigurasi antrian saat ini:
ethtool -l eth0Ubah jumlah antrian yang digunakan (contoh mengubah ke 2):
sudo ethtool -L eth0 combined 2Ganti
2dengan jumlah antrian yang diinginkan (tidak boleh melebihi nilai Pre-set maximums).Verifikasi perubahan:
ethtool -l eth0Nilai Current hardware settings - Combined sekarang harus menunjukkan jumlah antrian baru Anda.
Konfigurasikan IRQ Affinity
IRQ Affinity menetapkan interrupt dari berbagai antrian ke CPU tertentu, meningkatkan kinerja jaringan dengan mengurangi persaingan CPU.
IRQ Affinity diaktifkan secara default di semua image kecuali RHEL. Konfigurasi hanya diperlukan untuk instans RHEL.
Persyaratan untuk instans RHEL
Red Hat Enterprise Linux 9.2 atau lebih baru
Akses jaringan publik untuk mengunduh skrip
ecs_mqLayanan
irqbalancedinonaktifkan (bertentangan denganecs_mq)
Konfigurasikan IRQ Affinity pada RHEL
Sambungkan ke instans RHEL Anda menggunakan Workbench.
(Opsional) Nonaktifkan layanan
irqbalanceuntuk mencegah konflik:systemctl stop irqbalance.serviceUnduh paket skrip
ecs_mq:wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/ecs_mq/ecs_mq_2.0.5.tgzEkstrak paket:
tar -xzf ecs_mq_2.0.5.tgzMasuk ke direktori skrip:
cd ecs_mq/Instal lingkungan skrip (ganti
redhatdan9dengan nama OS dan versi utama Anda):bash install.sh redhat 9Jalankan layanan
ecs_mq:systemctl start ecs_mqIRQ Affinity kini telah diaktifkan.
Manfaat ecs_mq 2.0.5
Versi baru skrip ecs_mq memberikan beberapa peningkatan:
Secara preferensial mengikat interrupt ke CPU pada node NUMA (Non-Uniform Memory Access) yang terkait dengan antarmuka PCIe ENI
Mengoptimalkan logika untuk menyetel beberapa perangkat jaringan
Mengikat interrupt berdasarkan rasio antrian terhadap CPU
Mengoptimalkan pengikatan berdasarkan posisi sibling CPU
Menyelesaikan masalah latensi tinggi selama akses memori lintas node NUMA
Peningkatan kinerja: Pengujian kinerja jaringan menunjukkan peningkatan 5–30% pada sebagian besar metrik PPS (packets per second) dan bps (bits per second) dibandingkan versi sebelumnya.
Optimalkan kinerja
Konfigurasikan jumlah antrian dan IRQ Affinity berdasarkan workload Anda untuk mencapai kinerja jaringan optimal. Untuk memastikan load balancing:
Tetapkan jumlah antrian yang sesuai per core CPU berdasarkan beban jaringan Anda
Konfigurasikan IRQ Affinity sesuai dengan kebutuhan throughput dan latensi aktual sistem Anda
Uji berbagai konfigurasi untuk menemukan pengaturan optimal bagi workload spesifik Anda
Pantau pemanfaatan CPU dan metrik jaringan (throughput, latensi, kehilangan paket) untuk mengevaluasi efektivitas konfigurasi Anda.