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>