糖豆豆 bio photo

糖豆豆

专注于虚拟化, 分布式存储, IaaS

Email

Overview

磁盘IO优化

  • cachemode

writeback: 模式速度最快,但是可能有丢数据的风险

网络优化

CentOS7支持Virtio网卡多队列

  • 虚拟机的xml网卡配置
<interface type=<网络类型>>
<source network=<网桥名称> />
<model type='virtio'/>
<driver name='vhost' queues='N'/>
<!-- N:1 - 8 最多支持8个队列 -->
</interface>
  • 在虚拟机上执行以下命令开启多队列网卡
$ sudo ethtool -L eth0 combined M
(M 1 - N M小于等于N)

内存优化

KSM

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

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

  • 关闭方法
$ sudo echo 0 > /sys/kernel/mm/ksm/run
或者
chkconfig ksm off
chkconfig ksmtuned off

Huge Page

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

  • 4MB on x86_32
  • 2MB on x86_64 and x86_32 PAE

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

  • 开启方法
$ sudo mount -t hugetlbfs hugetlbfs /dev/hugepages
(保留一些内存给巨页)
$ sudo sysctl vm.nr_hugepages=516
  • 虚拟机相关配置
<memoryBacking>
<hugepages/>
</memoryBacking>

参考文档