我的新服务器的 I/O 性能相当低。我搜索了 Google 并尝试了所有我能想到的方法。首先,以下是硬件组件:
- AMD Opteron(tm) 处理器 6344
- 4台希捷 ST3000VX000
它当前在软件 RAID5 上运行。
主机的吞吐量:
# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.44095 s, 242 MB/s
客户系统当前的吞吐量:
# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 94.8643 s, 11.3 MB/s
我使用的是自编译的 QEMU + LIBVIRT,以及自编译的 Linux 内核 (3.10.32-lns-opteron-kvmhost)。我可以提供内核配置之外的部分。
- Linux 内核(主机):3.10.32-lns-opteron-kvmhost
- Linux 内核(GUEST):3.10.2-lns-opteron-kvmguest
- QEMU 版本:2.0.0
- Libvirt 版本:1.2.4
我在另一个系统(相同的处理器,但不同的硬盘)上运行两个内核,该系统以完整的 I/O 性能运行。
我没有安装其他系统,因此无法可靠地重现该问题。
来宾的 HDD 配置:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='threads'/>
<source dev='/dev/vmstore/guest-data'/>
<target dev='vda' bus='virtio'/>
</disk>
如您所见,我正在使用 LVM。
我没有遇到任何与 CPU/内存相关的性能问题 - 只有磁盘 I/O 存在问题。
答案1
我看到的唯一明显的问题在您的配置中是io='threads'
。这不太可能提供比 更好的性能io='native'
。
除此之外,我也不建议自己编译这些组件(内核、libvirt、QEMU),除非你已经对它们有了深入的了解。最好使用经过充分测试且已知的 Linux 发行版中的软件包,该发行版已针对性能和稳定性进行了优化。RHEL/CentOS 和 Fedora 运行良好。我不能保证其他发行版也能正常运行。