fix: implement multiqueue support for network interfaces and update UI documentation

This commit is contained in:
2025-12-04 21:43:37 -05:00
parent 9836f321c1
commit a8ea880d94
2 changed files with 92 additions and 0 deletions

View File

@@ -226,6 +226,9 @@
<p class="block font-sans text-xs font-normal leading-relaxed text-base/75">
<span class="font-semibold text-base/90">Remove Device:</span> Removes a network interface from the VM configuration. Changes take effect after the VM is restarted.
</p>
<p class="block font-sans text-xs font-normal leading-relaxed text-base/75">
<span class="font-semibold text-base/90">Multiqueue:</span> Enables the network adapter to distribute packet processing across multiple CPU cores. Set this value equal to your vCPU count for optimal performance in multi-core VMs. This improves network throughput significantly.
</p>
<p class="block font-sans text-xs font-normal leading-relaxed text-base/75">
The "Synced" indicator shows when your local changes match the server configuration; "Unsynced" indicates modifications that need to be saved.
</p>
@@ -249,6 +252,7 @@
<th class="px-4 py-3">Adapter</th>
<th class="px-4 py-3">MAC Address</th>
<th class="px-4 py-3 text-center">MTU</th>
<th class="px-4 py-3 text-center">Multiqueue</th>
<th class="px-4 py-3 text-center">Actions</th>
</tr>
</thead>
@@ -267,6 +271,25 @@
</td>
<td class="px-4 py-3 font-mono text-xs text-base/70">{{ strtoupper($interfaces[$name]['mac'] ?? 'N/A') }}</td>
<td class="px-4 py-3 text-center text-sm text-base/70">{{ $interfaces[$name]['mtu'] ?? 'Default' }}</td>
<td class="px-4 py-3 text-center">
<div x-data="{
queues: {{ $interfaces[$name]['queues'] ?? 1 }},
maxQueues: {{ $this->getCpuCores() }},
updateQueues() {
this.queues = Math.max(1, Math.min(this.queues, this.maxQueues));
$wire.updateMultiqueue('{{ $name }}', this.queues);
}
}">
<input type="number"
x-model.number="queues"
@blur="updateQueues()"
@keydown.enter="updateQueues()"
min="1"
:max="maxQueues"
class="bg-background border border-neutral rounded-md px-3 py-2 text-sm text-center focus:outline-none focus:ring-2 focus:ring-secondary w-20"
:title="'Number of queues (1-' + maxQueues + ')'">
</div>
</td>
<td class="px-4 py-3 text-center">
<div class="flex items-center justify-center gap-2">
<button wire:click="toggleInterfaceLink('{{ $name }}')"
@@ -319,6 +342,9 @@
</x-button.primary>
</div>
<p class="text-xs text-base/50 mt-2">VirtIO provides the best performance; legacy adapters (E1000, Realtek, PCnet, VMware) improve compatibility.</p>
<p class="text-xs text-base/50 mt-1">
<strong>Multiqueue:</strong> Allows the network adapter to use multiple CPU cores for packet processing. Set to the number of vCPU cores (max {{ $this->getCpuCores() }}) for best performance. Higher values improve throughput for multi-core VMs.
</p>
</div>
@foreach($server->ipAddresses as $network)