All Products
Search
Document Center

Elastic Compute Service:NIC multi-queue

Last Updated:Mar 26, 2026

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

  1. Buka Konsol ECS - Elastic Network Interfaces.

  2. Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya dari resource yang ingin Anda kelola. Region

  3. Klik ID ENI sekunder target untuk membuka halaman detailnya.

  4. Di bagian Queues, temukan parameter Queues. Nilainya menunjukkan jumlah antrian saat ini dari ENI tersebut.

    image

    • Jika Anda telah memodifikasi jumlah antrian untuk ENI tersebut, nilai yang dimodifikasi akan ditampilkan.

    • Jika Anda belum memodifikasi jumlah antrian untuk ENI tersebut:

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:

Di dalam instans

  1. Sambungkan ke instans Linux.

    Catatan

    Untuk 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.

  2. Jalankan perintah ip a untuk melihat informasi konfigurasi jaringan.

    image

  3. 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.

    image

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.

Konsol

  1. Buka Konsol ECS - Elastic Network Interfaces.

  2. Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya dari resource yang ingin Anda kelola. Region

  3. Klik ID ENI sekunder target untuk membuka halaman detailnya.

  4. Klik Modify Queue Count.

    image

  5. 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.

Catatan
  • 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.

  1. Sambungkan ke instans Linux.

    Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.

  2. Jalankan perintah ip address show untuk melihat informasi konfigurasi jaringan.

    image

  3. 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
  4. 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.

    image

  5. 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 N

    N adalah jumlah antrian yang ingin digunakan oleh ENI. N harus 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.

Catatan
  • 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.

  1. Sambungkan ke instans Linux.

    Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.

  2. (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
  3. 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

    Perbaikan pada versi terbaru ecs_mq

    Masalah yang diperbaiki dalam versi terbaru dari ecs_mq dibandingkan dengan versi sebelumnya dari ecs_mq adalah sebagai berikut:

    • Memrioritaskan binding interrupt ke CPU pada node Non-Uniform Memory Access (NUMA) yang sama dengan perangkat PCIe ENI.

    • Mengoptimalkan logika tuning untuk beberapa perangkat jaringan.

    • Menyesuaikan logika binding interrupt berdasarkan rasio antrian NIC terhadap core CPU.

    • Mengoptimalkan binding interrupt berdasarkan posisi sibling CPU.

    • Memperbaiki peningkatan latensi akses memori yang disebabkan oleh binding cross-NUMA pada versi sebelumnya.

    • Memperbaiki masalah pada beberapa sistem di mana perintah ethtool tidak ditemukan selama hot-plugging ENI, yang menyebabkan skrip ecs_mq_rps_rfs gagal.

    • Mode baru skrip diaktifkan secara default. Anda dapat menggunakan perintah berikut untuk beralih antara mode baru dan lama skrip ecs_mq:

      • Beralih ke versi lama ecs_mq: ecs_mq_rps_rfs old

      • Beralih ke versi baru ecs_mq: ecs_mq_rps_rfs new

    Catatan

    Dalam pengujian kinerja jaringan, ecs_mq versi baru meningkatkan kinerja jaringan sebesar 5% hingga 30% untuk sebagian besar PPS dan BPS dibandingkan ecs_mq versi lama.

  4. Jalankan perintah berikut untuk mengekstrak paket skrip ecs_mq.

    tar -xzf ecs_mq_latest.tgz
  5. Jalankan perintah berikut untuk mengubah direktori kerja.

    cd ecs_mq/
  6. Jalankan perintah berikut untuk menjalankan skrip instalasi ecs_mq.

    bash install.sh redhat 9
    Catatan

    Ganti redhat dan 9 dengan nama dan nomor versi utama sistem operasi Anda.

  7. Jalankan perintah berikut untuk menjalankan layanan ecs_mq.

    systemctl start ecs_mq

    Setelah 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.