Your KVM guests will have their own scheduler, set up in the VM indenpently from the OS.
I recommend you to leave the default on both hosts and guests.
This recommendation is not useful, as it's not based on facts, only a belief that "defaults must be the the best". Unfortunately, defaults are often not good, in this case they are really bad.
Hi
For cpanel kvm what do you guys use as scheduler. We have RAID 10 Hardware raid with BBU writeback and 6 x SSD disks
I see it sais proxmox uses deadline
https://pve.proxmox.com/wiki/IO_Scheduler
Does this mean we should leave scheduler to "none" on the KVM Guests? or should we set to deadline or noop
We have to talk about the host and the guest separately, but the general rule is you only want IO reordering (what the scheduler does) to take place at a single point in your system.
Host and hardware
Proxmox on the host uses the deadline scheduler by default, which tries to keep a low latency for each request, but it was created a long time ago, when SSDs weren't used in servers, only spinning HDDs, so it's not making optimal decisions. Another important fact is that your HW RAID card has it's own IO scheduler, which works using very different metrics as it knows much more about the disk layout. (At this time we are not talking about the fact that your SSDs have yet another scheduler inside them, hopefully you have enterprise SSDs that can sustain high IOPS.)
What all this means is that you are better off using the
noop scheduler on the host, as it simply forwards your IO queue to the HW RAID driver, without introducing any unnecessary latency. We benchmarked noop extensively and compared it with deadline, and on HDD based HW RAID arrays they were similar, on SSDs noop was always better.
KVM guest
Depending on the distribution you would see CFQ or deadline set as default in your Linux guest, the latter is especially bad: CFQ introduces huge latency in many cases, so it's not advised to be used on servers at all, physical or virtual.
But what really matters is that a VM that knows absolutely nothing about the hosts's disk subsystem, and you already have an IO scheduler that works well (in your case in the HW RAID adapter), so
you should always set it to noop. This is true for all kinds of disk subsystems BTW, your KVM guests should not do any IO reordering.