Hi,
One of our vm is running haproxy. The network traffic is not extremely high, but we get a very high interrupts on eth0 and a somewhat high sys% usage with top:
# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 32 0 0 0 IO-APIC-edge timer
1: 11 0 0 114 IO-APIC-edge i8042
6: 3 0 0 0 IO-APIC-edge floppy
8: 1 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
10: 0 0 0 0 IO-APIC-fasteoi virtio1
11: 618 4030393421 0 0 IO-APIC-fasteoi uhci_hcd:usb1, eth0
12: 145 0 1999 0 IO-APIC-edge i8042
14: 6145272 45521 465460 254522 IO-APIC-edge ata_piix
15: 0 0 0 0 IO-APIC-edge ata_piix
40: 0 0 0 0 PCI-MSI-edge virtio0-config
41: 2231375 0 0 0 PCI-MSI-edge virtio0-requests
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 191668930 1335675535 63976200 30892760 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 Performance monitoring interrupts
IWI: 126958019 1055367646 38709278 15832142 IRQ work interrupts
RTR: 0 0 0 0 APIC ICR read retries
RES: 405498092 132045090 125792966 54918908 Rescheduling interrupts
CAL: 272 384 352 351 Function call interrupts
TLB: 2147139 2002908 1985286 1568447 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 23589 23589 23589 23589 Machine check polls
ERR: 0
MIS: 0
Looking at the ONE backend, I saw that the network driver is rtl8319, and as far as I understand virtio should give us a better performance.
- Will virtio give us better performance?
- What’s the easiest way to change the interface from rtl8319 to virtio without recreating the whole vm?
thanks!