NIC multi-queue memungkinkan Anda mengonfigurasi beberapa antrian transmisi dan penerimaan pada antarmuka jaringan. Setiap antrian dapat diproses oleh core CPU yang berbeda untuk meningkatkan throughput I/O jaringan dan mengurangi latensi melalui pemrosesan paket secara paralel di beberapa core CPU.
Mengapa menggunakan NIC multi-queue
Antarmuka jaringan single-queue tradisional mengandalkan satu core CPU untuk memproses semua paket, yang dapat menyebabkan kelebihan beban CPU, peningkatan latensi, dan kehilangan paket. Server modern memiliki CPU multi-core, sehingga NIC multi-queue mendistribusikan lalu lintas jaringan ke berbagai core tersebut guna memanfaatkan sumber daya secara lebih efisien.
Dalam kondisi PPS dan bandwidth jaringan yang sama, pengujian menunjukkan bahwa penggunaan dua antrian dibandingkan satu antrian meningkatkan kinerja jaringan sebesar 50% hingga 100%. Penggunaan empat antrian memberikan peningkatan yang lebih signifikan:
-
Pemanfaatan arsitektur CPU multi-core yang lebih baik: Mendistribusikan lalu lintas jaringan ke beberapa core CPU untuk beban yang lebih seimbang dan pemanfaatan CPU yang lebih tinggi.
-
Throughput yang lebih tinggi: Memproses beberapa paket secara simultan secara signifikan meningkatkan throughput jaringan, terutama dalam kondisi beban tinggi.
-
Latensi yang lebih rendah: Mengurangi kemacetan dengan mendistribusikan paket ke beberapa antrian.
-
Kehilangan paket yang berkurang: Meredam kehilangan paket akibat antrian tunggal yang kelebihan beban selama periode lalu lintas tinggi.
Meskipun NIC multi-queue menawarkan manfaat-manfaat ini, konfigurasi yang tidak tepat dapat menurunkan kinerja atau menyebabkan masalah lain. Misalnya, pengaturan jumlah antrian atau afinitas CPU yang salah dapat menyebabkan overhead context-switching yang tidak perlu, sedangkan jumlah antrian yang terlalu rendah dapat mengakibatkan pemanfaatan sumber daya perangkat keras yang tidak optimal.
Umumnya, ketika Elastic Network Interface (ENI) disambungkan ke instans, jumlah antriannya secara otomatis diatur ke nilai default sesuai tipe instans tersebut, dan pengaturan ini berlaku dalam sistem operasi. Jika Anda perlu menyesuaikan jumlah antrian ENI secara manual, pertimbangkan terlebih dahulu kasus penggunaan dan kondisi perangkat keras spesifik Anda untuk menentukan konfigurasi optimal.
Cara kerja NIC multi-queue
-
Arsitektur antrian
Elastic Network Interface (ENI) mendukung beberapa antrian Combined. Setiap antrian Combined diproses oleh core CPU independen, memungkinkan pemrosesan paket secara paralel, mengurangi kontensi lock, serta memanfaatkan sepenuhnya performa multi-core.
Antrian Receive (RX) dan Transmit (TX) adalah dua jenis antrian yang digunakan untuk memproses paket. Setiap antrian Combined terdiri dari satu antrian RX dan satu antrian TX:
-
Antrian RX: Digunakan untuk memproses paket data masuk dari jaringan. Saat paket tiba, antarmuka jaringan mendistribusikannya ke antrian RX tertentu berdasarkan strategi distribusi, seperti round-robin atau flow-based hashing.
-
Antrian TX: Digunakan untuk mengelola paket data keluar. Aplikasi menempatkan paket yang dihasilkan ke dalam antrian TX, lalu antarmuka jaringan mengirimkannya berdasarkan faktor seperti urutan atau prioritas.
-
-
Dukungan IRQ affinity
Setiap antrian dikaitkan dengan interrupt independen. IRQ affinity mendistribusikan penanganan interrupt ke core CPU yang berbeda untuk mencegah satu core menjadi kelebihan beban.
IRQ affinity diaktifkan secara default pada semua gambar publik kecuali Red Hat Enterprise Linux (RHEL). Untuk informasi lebih lanjut, lihat Konfigurasi IRQ affinity.
Batasan
-
Hanya beberapa tipe instans yang mendukung NIC multi-queue. Untuk informasi lebih lanjut, lihat Famili tipe instans. Jika nilai pada kolom NIC queues lebih besar dari 1, tipe instans tersebut mendukung NIC multi-queue.
-
Untuk tipe instans yang mendukung NIC multi-queue, fitur ini diaktifkan secara otomatis setelah Anda menyambungkan ENI ke instans.
-
Jumlah antrian yang tercantum untuk suatu tipe instans merepresentasikan jumlah maksimum antrian per ENI yang didukung oleh tipe tersebut.
-
Anda dapat memanggil operasi API DescribeInstanceTypes untuk mengkueri metrik terkait antrian untuk famili tipe instans dengan menentukan parameter InstanceTypeFamily:
-
Jumlah antrian default
Parameter respons PrimaryEniQueueNumber menunjukkan jumlah antrian default untuk ENI primer. Parameter SecondaryEniQueueNumber menunjukkan jumlah antrian default untuk ENI sekunder.
-
Jumlah maksimum antrian per ENI
Parameter respons MaximumQueueNumberPerEni menunjukkan jumlah maksimum antrian per ENI yang diizinkan untuk famili tipe instans tersebut.
-
Kuota total antrian
Parameter respons TotalEniQueueQuantity menunjukkan kuota total antrian yang diizinkan untuk famili tipe instans tersebut.
-
-
-
Beberapa gambar publik lama dengan versi kernel sebelum 2.6 mungkin tidak mendukung NIC multi-queue. Kami menyarankan Anda menggunakan gambar publik terbaru.
Lihat jumlah antrian ENI
Konsol
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya dari resource yang ingin Anda kelola.
-
Klik ID ENI sekunder target untuk membuka halaman detailnya.
-
Di bagian Queues, temukan parameter Queues. Nilainya menunjukkan jumlah antrian saat ini dari ENI tersebut.

-
Jika Anda telah memodifikasi jumlah antrian untuk ENI tersebut, nilai yang dimodifikasi akan ditampilkan.
-
Jika Anda belum memodifikasi jumlah antrian untuk ENI tersebut:
-
Jika ENI tidak disambungkan ke instans, tidak ada nilai yang ditampilkan.
-
Jika ENI disambungkan ke instans, jumlah antrian default untuk tipe instans akan ditampilkan.
-
-
API
Anda dapat memanggil operasi DescribeNetworkInterfaceAttribute untuk melihat jumlah antrian ENI. Parameter QueueNumber dalam respons menunjukkan jumlah antrian tersebut.
-
Jika Anda telah memodifikasi jumlah antrian untuk ENI tersebut, nilai yang dimodifikasi akan ditampilkan.
-
Jika Anda belum memodifikasi jumlah antrian untuk ENI tersebut:
-
Jika ENI tidak disambungkan ke instans, tidak ada nilai yang ditampilkan.
-
Jika ENI disambungkan ke instans, jumlah antrian default untuk tipe instans akan ditampilkan.
-
Di dalam instans
-
Sambungkan ke instans Linux.
CatatanUntuk instans Windows, Anda dapat melihat jumlah antrian ENI di konsol atau dengan memanggil operasi API.
Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.
-
Jalankan perintah
ip auntuk melihat informasi konfigurasi jaringan.
-
Jalankan perintah berikut untuk memeriksa apakah ENI primer eth0 mendukung NIC multi-queue.
Contoh ini menggunakan ENI primer. Untuk memeriksa ENI sekunder, ganti identifikasi antarmuka jaringan dengan eth1, eth2, atau nilai lainnya.
ethtool -l eth0Periksa output perintah untuk menentukan apakah NIC multi-queue didukung:
-
Jika nilai "Combined" di bawah "Pre-set maximums" lebih besar dari 1, ENI mendukung NIC multi-queue. Nilai ini menunjukkan jumlah maksimum antrian yang didukung oleh ENI.
-
Nilai "Combined" di bawah "Current hardware settings" menunjukkan jumlah antrian yang sedang digunakan.
Pada contoh ini, output menunjukkan bahwa ENI mendukung maksimal tiga antrian combined (RX+TX) dan saat ini menggunakan tiga antrian.

-
Untuk memodifikasi jumlah maksimum antrian yang didukung oleh ENI, lihat Modifikasi jumlah antrian untuk ENI.
-
Untuk memodifikasi jumlah antrian yang digunakan oleh OS, lihat Modifikasi jumlah antrian yang digunakan oleh OS.
-
Modifikasi jumlah antrian ENI
Meskipun jumlah antrian ENI diatur ke nilai default saat disambungkan ke instans, Anda dapat menyesuaikannya secara manual melalui konsol atau menggunakan API.
-
Anda hanya dapat memodifikasi jumlah antrian untuk ENI saat statusnya Available, atau saat statusnya InUse dan instans yang disambungkan berstatus Stopped.
-
Jumlah antrian tidak boleh melebihi jumlah maksimum antrian per ENI untuk tipe instans.
-
Jumlah total antrian dari semua ENI pada suatu instans tidak boleh melebihi kuota total antrian untuk tipe instans.
Konsol
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya dari resource yang ingin Anda kelola.
-
Klik ID ENI sekunder target untuk membuka halaman detailnya.
-
Klik Modify Queue Count.

-
Klik OK untuk menyelesaikan modifikasi.
API
Anda dapat memanggil operasi ModifyNetworkInterfaceAttribute dan mengatur parameter QueueNumber untuk memodifikasi jumlah antrian ENI.
Setelah Anda memodifikasi jumlah antrian untuk ENI yang disambungkan ke instans, pengaturan baru tersebut berlaku setelah instans di-start.
Modifikasi jumlah antrian OS
Setelah Anda memodifikasi jumlah antrian untuk ENI di konsol atau menggunakan API, pengaturan baru tersebut secara otomatis berlaku dalam OS. Jumlah antrian yang digunakan ENI dalam OS sesuai dengan jumlah antrian yang Anda tetapkan.
Anda juga dapat menyesuaikan jumlah antrian yang aktif digunakan oleh ENI dalam OS. Nilai ini dapat lebih rendah daripada jumlah antrian yang dikonfigurasi untuk ENI.
-
Mengubah jumlah antrian yang digunakan oleh OS di dalam instans tidak memengaruhi jumlah maksimum antrian yang didukung oleh ENI, dan perubahan ini tidak muncul dalam respons konsol atau API.
-
Perubahan ini bersifat temporary dan tidak bertahan setelah instans direstart.
Contoh berikut menunjukkan cara menyesuaikan jumlah antrian yang digunakan oleh ENI pada instans Alibaba Cloud Linux 3 yang mendukung NIC multi-queue.
-
Sambungkan ke instans Linux.
Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.
-
Jalankan perintah
ip address showuntuk melihat informasi konfigurasi jaringan.
-
Jalankan perintah berikut untuk memeriksa apakah ENI primer eth0 mendukung NIC multi-queue.
Contoh ini menggunakan ENI primer. Untuk memeriksa ENI sekunder, ganti identifikasi antarmuka jaringan dengan eth1, eth2, atau nilai lainnya.
ethtool -l eth0 -
Periksa output perintah untuk menentukan apakah NIC multi-queue didukung:
-
Jika nilai "Combined" di bawah "Pre-set maximums" lebih besar dari 1, ENI mendukung NIC multi-queue. Nilai ini menunjukkan jumlah maksimum antrian yang didukung oleh ENI.
-
Nilai "Combined" di bawah "Current hardware settings" menunjukkan jumlah antrian yang sedang digunakan.
Pada contoh ini, output menunjukkan bahwa ENI mendukung maksimal tiga antrian combined (RX+TX) dan saat ini menggunakan tiga antrian.

-
-
Jalankan perintah berikut untuk mengatur jumlah antrian aktif untuk ENI primer eth0 menjadi 2.
Contoh ini menggunakan ENI primer. Untuk menyesuaikan ENI sekunder, ganti identifikasi antarmuka jaringan dengan eth1, eth2, atau nilai lainnya.
sudo ethtool -L eth0 combined NNadalah jumlah antrian yang ingin digunakan oleh ENI.Nharus kurang dari atau sama dengan nilai "Combined" di bawah "Pre-set maximums".Pada contoh ini, atur jumlah antrian untuk ENI primer menjadi 2:
sudo ethtool -L eth0 combined 2
Konfigurasi IRQ affinity
Saat menggunakan NIC multi-queue, Anda biasanya perlu mengonfigurasi IRQ affinity. Proses ini menetapkan interrupt dari antrian berbeda ke core CPU tertentu alih-alih membiarkan core mana pun menanganinya, yang membantu mengurangi kontensi CPU dan meningkatkan kinerja jaringan.
-
Semua gambar publik kecuali Red Hat Enterprise Linux (RHEL) telah mengaktifkan IRQ affinity secara default dan tidak memerlukan konfigurasi tambahan.
-
Gambar RHEL mendukung IRQ affinity untuk NIC multi-queue, tetapi dinonaktifkan secara default. Ikuti langkah-langkah dalam topik ini untuk mengonfigurasinya.
Langkah-langkah berikut menunjukkan cara menggunakan skrip ecs_mq untuk mengonfigurasi IRQ affinity secara otomatis untuk NIC multi-queue pada gambar Red Hat Enterprise Linux 9.2. Jika instans Anda tidak menggunakan gambar RHEL, IRQ affinity sudah diaktifkan secara default dan tidak memerlukan konfigurasi.
-
Sambungkan ke instans Linux.
Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.
-
(Opsional) Hentikan layanan irqbalance.
Layanan irqbalance secara dinamis menyesuaikan IRQ affinity, yang bertentangan dengan skrip
ecs_mq. Kami menyarankan Anda menghentikan layanan irqbalance.systemctl stop irqbalance.service -
Jalankan perintah berikut untuk mengunduh versi terbaru skrip konfigurasi otomatis
ecs_mq.wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/ecs_mq/ecs_mq_latest.tgz -
Jalankan perintah berikut untuk mengekstrak paket skrip
ecs_mq.tar -xzf ecs_mq_latest.tgz -
Jalankan perintah berikut untuk mengubah direktori kerja.
cd ecs_mq/ -
Jalankan perintah berikut untuk menjalankan skrip instalasi
ecs_mq.bash install.sh redhat 9CatatanGanti
redhatdan9dengan nama dan nomor versi utama sistem operasi Anda. -
Jalankan perintah berikut untuk menjalankan layanan
ecs_mq.systemctl start ecs_mqSetelah layanan dijalankan, IRQ affinity diaktifkan secara otomatis.
Memodifikasi jumlah antrian NIC dan mengonfigurasi IRQ affinity adalah metode berbeda untuk mengoptimalkan kinerja jaringan. Anda harus menguji kombinasi konfigurasi berbeda berdasarkan beban aktual sistem Anda. Pantau metrik kinerja seperti throughput dan latensi. Gunakan data ini untuk mengalokasikan antrian ke core CPU berbeda dan mengatur IRQ affinity guna mencapai load balancing optimal.