Skip to contentSkip to conversation

What io scheduler to use inside guest VM?

DISCUSSION Piavlo 2 participants 2 messages Mar 21, 2009 – Mar 22, 2009 KVM

lore
Share & tools
lore

Piavlo

author
#0 lore raw

Hi,

I use LVM volumes as guest VM disk.
I'm wondering if setting setting the io scheduler inside linux gest has any effect (with virtio disk driver and with emulated scsi or ide driver) And if it has affect what's better choice ? My thoughts is that if changing the scheduler inside guest has affect - then it's probably best to use noop scheduler inside the guest
and let the hypervisor linux decide according to it's scheduler. So what I don't understand is if there are two levels of io scheduling , one inside the guest (the redundant one and setting it to noop will minimize it's affect) and other inside the hypervisor linux?(or just one level in the hypervisor)
Probably with virtio driver tthere is no io scheduling inside the guest, but is it so with emulated drivers too?
And also is there any difference in io scheduling if I use image file instead of LVM?

Thanks a lot
Alex

#1 lore raw
Quoted 8 lines · Piavlo

Hi,

I use LVM volumes as guest VM disk.
I'm wondering if setting setting the io scheduler inside linux gest has any effect (with virtio disk driver and with emulated scsi or ide driver) And if it has affect what's better choice ? My thoughts is that if changing the scheduler inside guest has affect - then it's probably best to use noop scheduler inside the guest

There is a recent thread here which I started on just that topic. The only case in which a guest schedular might have enough information is when a device is used raw, such as a USB connected device passed to the guest as a USB device.

Quoted 10 lines

and let the hypervisor linux decide according to it's scheduler. So what I don't understand is if there are two levels of io scheduling , one inside the guest (the redundant one and setting it to noop will minimize it's affect) and other inside the hypervisor linux?(or just one level in the hypervisor)
Probably with virtio driver tthere is no io scheduling inside the guest, but is it so with emulated drivers too?
And also is there any difference in io scheduling if I use image file instead of LVM?

You should look back at the recent thread, there are some good answers I got, but after reading them I decided that for file, partition, and LV backed mass storage, where the host will do ioscheduling the noop is probably best. If an unshared raw device is being used, it might be better to have the host noop it and the guest make the decisions, since it has all the information.

Signature · 3 lines
Bill Davidsen <[email protected]>
  "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot