Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Red Hat Enterprise Linux 9 Essentials Book now available.

Purchase a copy of Red Hat Enterprise Linux 9 (RHEL 9) Essentials

Red Hat Enterprise Linux 9 Essentials Print and eBook (PDF) editions contain 34 chapters and 298 pages

Preview Book

34.8. KVM networking performance

By default, KVM virtual machines are assigned a virtual Realtek 8139 (rtl8139) NIC (network interface controller).
The rtl8139 virtualized NIC works fine in most environments. However, this device can suffer from performance degradation problems on some networks, for example, a 10 Gigabit Ethernet network.
To improve performance switch to the para-virtualized network driver.


Note that the virtualized Intel PRO/1000 (e1000) driver is also supported as an emulated driver choice. To use the e1000 driver, replace virtio in the procedure below with e1000. For the best performance it is recommended to use the virtio driver.
Procedure 34.2. Switching to the virtio driver
  1. Shutdown the guest operating system.
  2. Edit the guest's configuration file with the virsh command (where GUEST is the guest's name):
    # virsh edit GUEST
    The virsh edit command uses the $EDITOR shell variable to determine which editor to use.
  3. Find the network interface section of the configuration. This section resembles the snippet below:
    <interface type='network'>
      [output truncated]
      <model type='rtl8139' />
  4. Change the type attribute of the model element from 'rtl8139' to 'virtio'. This will change the driver from the rtl8139 driver to the e1000 driver.
    <interface type='network'>
      [output truncated]
      <model type='virtio' />
  5. Save the changes and exit the text editor
  6. Restart the guest operating system.
Creating new guests using other network drivers
Alternatively, new virtualized guests can be created with a different network driver. This may be required if you are having difficulty installing guests over a network connection. This method requires you to have at least one virtualized guest already created (possibly installed from CD or DVD) to use as a template.
  1. Create an XML template from an existing virtualized guest (in this example, named Guest1):
    # virsh dumpxml Guest1 > /tmp/guest-template.xml
  2. Copy and edit the XML file and update the unique fields: virtual machine name, UUID, disk image, MAC address, and any other unique parameters. Note that you can delete the UUID and MAC address lines and virsh will generate a UUID and MAC address.
    # cp /tmp/guest-template.xml /tmp/new-guest.xml
    # vi /tmp/new-guest.xml
    Add the model line in the network interface section:
     <interface type='network'>
      [output truncated]
      <model type='virtio' />
  3. Create the new virtual machine:
    # virsh define /tmp/new-guest.xml
    # virsh start new-guest

  Published under the terms of the Creative Commons License Design by Interspire