<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:276259052;
mso-list-template-ids:-25158908;}
@list l1
{mso-list-id:1303076341;
mso-list-type:hybrid;
mso-list-template-ids:-584671388 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">List,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I have a number of Windows 2016 servers I am deploying, but I’m having some I/O performance issues. I have done all of the obvious things like virtio drivers, but am finding there is more performance to be
found with hyper-v extensions, how we virtualize the hardware clock, and iothreads. I’m using ZVOLs to back the VM, and I’m using 4k block sizes, which seems to offer the best 4k random read/write performance (mail and database workloads), but maybe I’m missing
something at this layer too.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Questions:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">Does my VM config look reasonable for the latest releases of windows? Are there features I should be using that will help performance?<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">Why does the hypervclock timer make so much performance difference in windows VMs?<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">Does my virtualized CPU model make sense? I defined Haswell-noTSX-IBRS and libvirt added the features.<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">Which kernel branch offers the best stability and performance?<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">Are there performance gains in using UEFI booting the windows guest and defining “<blockio logical_block_size='4096' physical_block_size='4096'/>”?
Perhaps better block size consistency through to the zvol?<o:p></o:p></span></li></ol>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Here is my setup:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">48 core Haswell CPU<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">192G Ram<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Linux 4.14.61 or 4.9.114 (testing both)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">ZFS file system on optane SSD drive or ZFS file system on dumb HBA with 8 spindles of 15k disks (testing both)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">4k block size zvol for virtual machines<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">32G arc cache<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Here is my VM:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><domain type='kvm' id='12'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <name>testvm</name><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <memory unit='KiB'>33554432</memory><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <currentMemory unit='KiB'>33554432</currentMemory><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <vcpu placement='static'>12</vcpu><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <iothreads>1</iothreads><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <os><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <type arch='x86_64' machine='pc-i440fx-2.12'>hvm</type><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <boot dev='cdrom'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <boot dev='hd'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </os><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <features><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <acpi/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <hyperv><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <relaxed state='on'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <vapic state='on'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <spinlocks state='on' retries='8191'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <vpindex state='on'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <runtime state='on'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <synic state='on'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <reset state='on'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <vendor_id state='on' value='KVM Hv'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </hyperv><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </features><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <cpu mode='custom' match='exact' check='full'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <model fallback='forbid'>Haswell-noTSX-IBRS</model><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <topology sockets='1' cores='6' threads='2'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='vme'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='f16c'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='rdrand'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='hypervisor'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='arat'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='disable' name='spec-ctrl'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='xsaveopt'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <feature policy='require' name='abm'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </cpu><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <clock offset='localtime'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <timer name='rtc' tickpolicy='catchup'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <timer name='pit' tickpolicy='delay'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <timer name='hpet' present='yes'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <timer name='hypervclock' present='yes'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </clock><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <on_poweroff>destroy</on_poweroff><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <on_reboot>restart</on_reboot><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <on_crash>destroy</on_crash><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <devices><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <emulator>/usr/bin/qemu-system-x86_64</emulator><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <disk type='block' device='disk'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <driver name='qemu' type='raw' cache='none' io='native' ioeventfd='on' iothread='1'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <source dev='/dev/zvol/datastore/vm/testvm-vda'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <backingStore/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <target dev='vda' bus='virtio'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='virtio-disk0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </disk><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <disk type='file' device='cdrom'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <driver name='qemu'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <target dev='hdc' bus='ide'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <readonly/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='ide0-1-0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='drive' controller='0' bus='1' target='0' unit='0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </disk><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <controller type='ide' index='0'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='ide'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </controller><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <controller type='usb' index='0' model='piix3-uhci'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='usb'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </controller><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <controller type='pci' index='0' model='pci-root'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='pci.0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </controller><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <controller type='virtio-serial' index='0'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='virtio-serial0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </controller><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <interface type='bridge'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <source bridge='lan'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <target dev='vnet0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <model type='virtio'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='net0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </interface><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <channel type='unix'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-12-testvm/org.qemu.guest_agent.0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='channel0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='virtio-serial' controller='0' bus='0' port='1'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </channel><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <input type='tablet' bus='usb'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='input0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='usb' bus='0' port='1'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </input><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <input type='mouse' bus='ps2'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='input1'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </input><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <input type='keyboard' bus='ps2'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='input2'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </input><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <graphics type='vnc' port='5901' autoport='no' listen='0.0.0.0'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <listen type='address' address='0.0.0.0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </graphics><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <video><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <model type='cirrus' vram='16384' heads='1' primary='yes'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <alias name='video0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </video><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <memballoon model='none'/><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </devices><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <seclabel type='dynamic' model='dac' relabel='yes'><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <label>+0:+100</label><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <imagelabel>+0:+100</imagelabel><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </seclabel><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"></domain><o:p></o:p></span></p>
</div>
</body>
</html>