kvm IO优化的措施, KVM优化措施

(1)采用virtio磁盘控制器

kvm设计了virtio类型的磁盘控制器,是针对磁盘和网络的一个半虚拟化接口,以提高效率为目的。

Linux内核中已经集成进去了,window平台的话,必须安装相应的驱动:http://libvirt.org/windows.html

  <disktype='file'device='disk'>

      <drivername='qemu'type='qcow2'cache='none'/>

      <sourcefile='/vmstore/images/centos_test0_preallc.qcow2'/>

          <targetdev='vda'bus='virtio'/>

      <addresstype='drive'controller='0'bus='0'unit='0'/>

   </disk>

命令行下:--drive file=test.img,if=virtio 

(2)预分配策略

对于qcow2的镜像:

qemu-img create -f qcow2 -o preallocation=metadata centos_test0_preallc.qcow2 20G

对于已有的镜像可以做如下的转换,来实现预分配

qemu-img convert -f qcow2 -O qcow2 -o preallocation=metadata centos_test0_nopreallc.qcow2        centos_test0_preallc.qcow2

(3)禁用缓存模式

<disktype='file'device='disk'>

   <drivername='qemu'type='qcow2'cache='none'/> 

//缓存模式设置为writeback可很大程度上提高IO效率,但会面临数据丢失的风险

      <sourcefile='/vmstore/images/centos_test0_preallc.qcow2'/>

      <targetdev='vda'bus='virtio'/>

      <addresstype='drive'controller='0'bus='0'unit='0'/>

</disk>

(4) 在虚拟机中elevator=noop 宿主机中elevator=deadline

(5) 文件系统noatime, nodiratime

(6)硬盘的raid情况,raid5性能会比较差


http://www.pubyun.com/blog/openstack/%E6%B7%98%E5%AE%9D%E5%AD%90%E5%9B%A2%E5%85%B3%E4%BA%8Ekvm-%E8%B0%83%E4%BC%98%E7%9A%84%E5%88%86%E4%BA%AB/

今天在杭州参加淘宝嘉年华技术沙龙,主题是虚拟化和云计算,三个讲演:

  • 淘宝网子团分享淘宝kvm技术的使用
  • 华为的杨晓伟介绍虚拟化技术
  • 阿里云郑永升介绍弹性云计算技术

其中KVM 调优,三点值得关注的:

1、Kernel SamePage Merging(KSM)

在CentOS下KSM是打开的,Debian下KSM是关闭的。KSM的原理,是多个进程中,Linux将内核相似的内存页合并成一个内存页。这个特性,被KVM用来减少多个相似的虚拟机的内存占用,提高内存的使用效率。由于内存是共享的,所以多个虚拟机使用的内存减少了。这个特性,对于虚拟机使用相同镜像和操作系统时,效果更加明显。

但是,事情总是有代价的,使用这个特性,都要增加内核开销,用时间换空间。所以为了提高效率,可以将这个特性关闭。方法是:

两种关闭方式:

echo 0 > /sys/kernel/mm/ksm/run

或者

chkconfig ksm off
chkconfig ksmtuned off

另外,如果要使用KSM特性,也可以对参数进行调优。

具体参见:

http://www.linuxtopia.org/online_books/rhel6/rhel_6_virtualization/rhel_6_virtualization_chap-KSM.html

2、KVM Huge Page Backed Memory

intel 的X86 CPU通常使用4Kb内存页,当是经过配置,也能够使用巨页(huge page):

(4MB on x86_32, 2MB on x86_64 and x86_32 PAE)

使用巨页,KVM的虚拟机的页表将使用更少的内存,并且将提高CPU的效率。最高情况下,可以提高20%的效率!

使用方法,需要三部:

mount -t hugetlbfs hugetlbfs /dev/hugepages
#保留一些内存给巨页
sysctl vm.nr_hugepages=516
#给 kvm 传递参数 hugepages
qemu-kvm - qemu-kvm -mem-path /dev/hugepages

其中第三步,也可以在配置文件里加入:

<memoryBacking>
<hugepages/>
</memoryBacking>

验证方式,当虚拟机正常启动以后,在虚拟机里查看:

cat /proc/meminfo |grep -i HugePages_Free


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值