Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have VM and attach physical disk to it:

<pool type='disk'>
  <name>X</name>
  <uuid>0119698d-d28a-fbc8-6ca3-40c485957e49</uuid>
  <capacity>2000396321280</capacity>
  <allocation>2000388063744</allocation>
  <available>8225280</available>
  <source>
    <device path='/dev/sdb'>
    <freeExtent start='2000388096000' end='2000396321280'/>
    </device>
    <format type='dos'/>
  </source>
  <target>
    <path>/dev</path>
    <permissions>
      <mode>0700</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

My VM has 1 core and 2GB memmory. When I copy a file I have transfer rate of 7MB/s.

<domain type='kvm' id='7'>
  <name>gfs-6</name>
  <uuid>4061a8b3-860b-3aaa-5014-36c3dbc15ca4</uuid>
  <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-0.14'>hvm</type>
    <boot dev='hd'/>
    <bootmenu enable='no'/>
  </os>
  <features>
    <acpi/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/opt/vm/gfs-6.img'/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/sdb1'/>
      <target dev='sda' bus='scsi'/>
      <alias name='scsi0-0-0'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='scsi' index='0'>
      <alias name='scsi0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:2a:56:5e'/>
      <source bridge='br1'/>
      <target dev='vnet1'/>
      <model type='e1000'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/2'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/2'>
      <source path='/dev/pts/2'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5901' autoport='yes'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='apparmor'>
    <label>libvirt-4061a8b3-860b-3aaa-5014-36c3dbc15ca4</label>
    <imagelabel>libvirt-4061a8b3-860b-3aaa-5014-36c3dbc15ca4</imagelabel>
  </seclabel>
</domain>

What i doing wrong? I would like to have better disk performance on my VM.

share|improve this question
    
More details please - what is the baremetal speed of access to the disk, what kind of file you are copying, to which of the virtual disks (you have a virtio and a scsi disk), what qemu-kvm build and kernel and host OS are used –  dyasny Jan 24 '12 at 8:45
    
I use Ubuntu 11.10 server 64bit as a host. host: Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz ram: 32GB DDR3 –  esio Jan 24 '12 at 9:06
    
You still fail to state the actual baremetal disk access speeds –  dyasny Jan 24 '12 at 14:37
    
I copy ubuntu iso file and i have 10MB/s on SCSI, when i change bus to virtio i have 40MB/s. –  esio Jan 25 '12 at 7:01
    
I was asking about baremetal speeds –  dyasny Jan 25 '12 at 9:14

2 Answers 2

up vote 2 down vote accepted

You should use virtio instead of scsi, it is more fast.

   <target dev='sda' bus='scsi'/>
share|improve this answer
    
I modified SCSI to virto: root@gfs-6:~# dd if=/dev/zero of=/mnt/gfs/xx7 bs=8k count=128k 131072+0 records in 131072+0 records out 1073741824 bytes (1.1 GB) copied, 22.651 s, 47.4 MB/s But i want more! :) –  esio Jan 24 '12 at 9:07
    
What you measure on the host machine? Is your partitions well aligned? –  Stone Jan 24 '12 at 13:57
    
I copy ubuntu iso file and i have 10MB/s on SCSI, when i change bus to virtio i have 40MB/s. –  esio Jan 25 '12 at 7:01

You will almost certainly gain a performance increase by directly accessing the disk. This is, at times, referred to as "paravirtualisation", and when using KVM requires the use of the virtio driver (note that this can also be used for network devices).

Details can be found here: http://wiki.libvirt.org/page/Virtio

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.