# NIC Multi-Queue

The Network Interface Cards (NICs) Multi-Queue feature enhances the network performance of [<mark style="color:blue;">Dedicated Core Servers</mark>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/dedicated-core) and [<mark style="color:blue;">vCPU Servers</mark>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/vcpu-server) by associating multiple queues with a VM based on the number of cores. It enables the VM to distribute network traffic across multiple queues, which improves throughput and reduces latency, particularly during high-traffic periods. By utilizing multiple CPU cores to process network packets, NIC Multi-Queue efficiently handles network Input or Output (I/O) and prevents bottlenecks commonly found in single-queue NICs. This feature benefits applications that require high network bandwidth and low latency, such as databases, analytics platforms, and high-performance computing workloads.

NIC Multi-Queue is available in all supported data centers. It is off by default; to use this feature, you must turn it on for each VM using the [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/sections-test/guides/network-services/vdc-networking/nic-multi-queue/how-tos/create-nic-multi-queue) or [<mark style="color:blue;">IONOS Cloud API</mark>](https://docs.ionos.com/sections-test/guides/network-services/vdc-networking/nic-multi-queue/api-how-tos/create-nic-multi-queue) for [<mark style="color:blue;">Dedicated Core Servers</mark>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/how-tos/set-up-dedicated-core) and [<mark style="color:blue;">vCPU Servers</mark>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/how-tos/set-up-vcpu).

## System requirements

The feature is supported on any VM configuration that meets the two-thread minimum, regardless of core count or processor architecture. A minimum of two CPU threads can be provided by:

* Multiple CPU cores.
* Hyper-threading on single-core systems. Examples:
  * A VM with one Intel Xeon core (providing two threads via hyper-threading) meets the minimum requirement for NIC Multi-Queue.
  * Certain CPU families, such as Intel Sierra Forest, do not support hyperthreads, and therefore require two cores to enable this feature.

## Features

* **Automatic VM Restart:** Enabling NIC Multi-Queue `nicMultiQueue: true` triggers an automatic [<mark style="color:blue;">Virtual Machine (VM)</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#virtual-machine-vm) restart to apply the configuration changes.
* **Hot-Plug NIC Support:** You can add network interfaces to a running VM without system restart or downtime. The number of queues per NIC will be equivalent to the number of core threads.
* **Scaling Queue Count:** Adding CPU cores requires a VM restart to update the queue count and leverage increased parallelism:
  * Restart the VM using the [<mark style="color:blue;">Cloud API</mark>](https://api.ionos.com/docs/cloud/v6/#tag/Servers) or the [<mark style="color:blue;">Data Center Designer (DCD)</mark>](https://docs.ionos.com/sections-test/guides/set-up-ionos-cloud/data-center-designer).
  * An Operating System (OS)-level restart is insufficient and will not update the queue configuration. Queue count changes require a platform-initiated restart to reload the NIC driver with the updated configuration.
* The following Configuration Management Tools support NIC Multi-Queue:
  * [<mark style="color:blue;">Crossplane Provider</mark>](https://docs.ionos.com/crossplane-provider/api/compute-engine/server)
  * [<mark style="color:blue;">Docker Driver</mark>](https://docs.ionos.com/docker-machine-driver-1)
  * [<mark style="color:blue;">IonosCTL</mark>](https://docs.ionos.com/cli-ionosctl/subcommands/compute-engine/server/create)
  * [<mark style="color:blue;">Terraform</mark>](https://docs.ionos.com/terraform-provider/resources/server)
  * [<mark style="color:blue;">Ansible</mark>](https://docs.ionos.com/ansible/api/compute-engine/modules/server)

## Quick Links

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>Enable NIC Multi-Queue</strong></mark></td><td>Enable NIC Multi-Queue for your VMs.</td><td><a href="nic-multi-queue/enable-nic-multi-queue">enable-nic-multi-queue</a></td></tr><tr><td><mark style="color:blue;"><strong>How-Tos</strong></mark></td><td>Enable or toggle the NIC Multi-Queue property for your VMs using the DCD.</td><td><a href="nic-multi-queue/how-tos">how-tos</a></td></tr><tr><td><mark style="color:blue;"><strong>API How-Tos</strong></mark></td><td>Create NIC Multi-Queue enabled VMs or toggle its state using the API.</td><td><a href="nic-multi-queue/api-how-tos">api-how-tos</a></td></tr></tbody></table>

## Developer Tools

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>IONOS Cloud API</strong></mark></td><td>Access the REST API documentation for VMs.</td><td><a href="https://api.ionos.com/docs/cloud/v6/#tag/Servers">https://api.ionos.com/docs/cloud/v6/#tag/Servers</a></td></tr><tr><td><mark style="color:blue;"><strong>SDKs</strong></mark></td><td>Interact with the API using SDKs.</td><td><a href="https://docs.ionos.com/reference/software-development-kits/sdks">https://docs.ionos.com/reference/software-development-kits/sdks</a></td></tr><tr><td><mark style="color:blue;"><strong>Config Management Tools</strong></mark></td><td>Explore configuration management tools compatible with NIC for VMs.</td><td><a href="https://docs.ionos.com/reference/config-management-tools/config-management-tools">https://docs.ionos.com/reference/config-management-tools/config-management-tools</a></td></tr></tbody></table>
