Best I/O scheduler for the Host and guest

cesarpk

Well-Known Member
Mar 31, 2012
770
3
58
Hi to all

I had read in several websites that for the HOST is better to use "deadline", and for the guest is better use "noop", for example these links:
http://serverfault.com/questions/470057/poor-guest-i-o-performance-kvm-ubuntu-12-04
http://serverfault.com/questions/394574/kvm-slow-guest-i-o
http://prefetch.net/blog/index.php/2009/04/23/best-io-scheduler-to-use-with-virtualized-linux-hosts/

Very interesting this in special:
http://www.redhat.com/f/pdf/rhel/Oracle-10-g-recommendations-v1_2.pdf
That literally say:
"In virtualized environments, it is often detrimental to schedule I/O at both the host and guest layers. If multiple guests access storage on a file system or block devices managed by the host operating system, the host may be able to schedule I/O more efficiently because it alone is aware of requests from all guests and knows the physical layout of storage, which may not map linearly to the guests' virtual storage.
Red Hat Enterprise Linux 4 and Red Hat Enterprise Linux 5 guests can use the noop I/O scheduler to allow the host to optimize I/O requests."

I like to know the opinion of some expert about of:

1- If i have a Virtual disk for each VM in RAID-1 by Hardware, will be noop my best configuration for my VMs?, or what will be?
2- Configure always "noop" for the VMs will be better, ie in any case?

Best regards
Cesar
 

Thanks Tom for your answer ... , but if you reads my questions and see the information of the PVE wiki, you will can deduce that my questions don't have the answers there.

Indeed also, you will can deduce that the information of the PVE Wiki is very basic, incomplete, and needs more explications for some typical sceneries

Best regards
Cesar
 
Last edited:
"See also" means not that I answer your question, this means that for the topic of this thread the linked page is a reference for the IO scheduler setting on the Proxmox VE host.
 
"See also" means not that I answer your question, this means that for the topic of this thread the linked page is a reference for the IO scheduler setting on the Proxmox VE host.

Ahhhh... OK, sorry for the confusion. I had read the information of the wiki many time ago, and for it is that now i do these two questions

Best regards
Cesar
 
And finally, as best practices for deadline I/O scheduler, and with Hardware RAID controllers in writeback mode, in this link linbit give us a councils:
www.drbd.org/users-guide/s-latency-tuning.html

Also, i like to do a more question about of if will be better apply it in the PVE Node if i have one or several VMs running in the same disk or in differents disks for each virtual disk of each VM

Best regards
Cesar
 
Last edited:
generally speaking, there is no perfect scheduler for all.

I always follow the general recommendations but at the end, you have to benchmark.

then choose the scheduler which performs best for application and use case.
 
generally speaking, there is no perfect scheduler for all.
I always follow the general recommendations but at the end, you have to benchmark.
then choose the scheduler which performs best for application and use case.

Thanks again for your answer Tom, and for get a point of start, please let me to ask you a questions:
- For your VMs, which I/O scheduler is using?
- And for the virtual disks of the VMs, are in the same disk (or array)? (always speaking of the virtual disk that are in the same PVE host)
- How many virtual disks and VMs have you in a same hdd or array.

Best regards
Cesar
 
generally speaking, there is no perfect scheduler for all.

I always follow the general recommendations but at the end, you have to benchmark.

then choose the scheduler which performs best for application and use case.
Are there any benchmark supporting that deadline is the best scheduler? Is deadline best with HDD or does this also include SSD?
 
thats right. there is no best scheduler.
specially with backups you can also experience problems when you have the wrong scheduler.
for small setups raid1 with sata we had best results with the cfq so that the backup did not block all the vms (it is the only one to support the ionice feature of the proxmox backups scripts)
but with bigger raid setups and sas disks deadline can be a better choice. with noop we did not test very much still....
 
I've been following this thread and checked the linked wiki article: https://pve.proxmox.com/wiki/IO_Scheduler

The instructions read:
Set IO Schedulers permanently
In order to choose a new default scheduler you need to add the following into your /etc/default/grub:

nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="... elevator=deadline"

BUT with Proxmox 4.1 there is no /etc/default/grub file - do we just create it or have procedures changed?
 
Hm, I'm with SoYouStart and I chose the OS image: Debian8 with Proxmox if I remember correctly and its not there:

Code:
root@james:~# ls -l /etc/default/grub
ls: cannot access /etc/default/grub: No such file or directory
root@james:~# ls -l /etc/default/g*
-rw-r--r-- 1 root root 134 Sep 28  2014 /etc/default/glances

OK, lets check SYS forums about this...
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!