phh*_*hhe 6 performance hard-drive libvirt kvm-virtualization
我的设置的性能非常好(geekbench,感觉如何,...)甚至磁盘吞吐量(原始 lvm 分区上的 libvirt)也非常接近服务器上的原始性能)但IOP/s 低至100-200 来宾端(与 ~1000 主机端相比)在 linux 和 Windows 来宾上。
这是一件可以忍受的事情(kvm 不能做得更好)还是我做错了什么?
有趣的是,我能够通过更改设置(qcow2 vs raw-image vs raw-partition)或配置(缓存或 io-scheduling)和变化来影响吞吐量,但 IOP 保持在所有这些相同的低点组合。
• supermicro dual xeon E5520 with 24GB RAM
• 2x seagate constellation 1TB(RAID1 on Adaptec 3405)
• 2x seagate cheetah(RAID1 on Adaptec 6405)。
• ubuntu 11.10 3.0.0-13-server
• kvm/QEMU 模拟器版本 0.14.1 (qemu-kvm-0.14.1)
• 对来自主机和来宾的磁盘(bonnie++、hdparm)进行基准测试(windows 上的 bonnie++、hdparm、hdtune) )
我测试了几种光盘配置,当前设置是:
(他们只是“不需要”高 IO 性能,所以我保留了更舒适的
磁盘文件)• 我星座上 lvm 上的 qcow2 磁盘文件
• qemu/ide
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/media/vm/images/mex/mex_root.qcow2'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
(运行 SQL-Server 和远程桌面服务,所以在这里我肯定需要一个好的 IO 性能)
• 我的猎豹上的原始 lvm 分区
• virtio
<emulator>/usr/bin/kvm</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/Cheetah/mts'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
最佳配置(通常)如下:
elevator=deadline
elevator=noop
noatime,nodiratime
尽可能在 fstab 中使用在启动 KVM 之前,尝试将“deadline”设置为主机磁盘的I/O 调度程序:
for f in /sys/block/sd*/queue/scheduler; do echo "deadline" > $f; done
Run Code Online (Sandbox Code Playgroud)
如果您有 I/O 限制负载,那么它可能是您的最佳选择,正如这篇 IBM 论文所建议的那样。
归档时间: |
|
查看次数: |
12489 次 |
最近记录: |