优化思路及步骤
CPU优化
要考虑CPU的数量问题,所有guestCPU的总数目不要超过物理机CPU的总数目。如果超过,则将对性能带来严重影响,建议选择复制主机CPU配置
内存优化
1、KSM(相同页)
内存分配的最小单位是page(页面),默认大小是4KB。可以将host机内容相同的内存合并,以节省内存的使用,特别是在虚拟机操作系统都一样的情况下,肯定会有很多内容相同的内存值,开启了KSM,则会将这些内存合并为一个,当然这个过程会有性能损耗,所以开启与否,需要考虑使用场景。
而KSM对KVM环境有很重要的意义,当KVM上运行许多相同系统的客户机时,客户机之间将有许多内存页是完全相同的,特别是只读的内核代码页完全可以在客户机之间共享,从而减少客户机占用的内存资源,能同时运行更多的客户机
1、通过/sys/kernel/mm/ksm目录下可查看内存页共享的情况
cd /sys/kernel/mm/ksm
ll
每个页面的大小为4KB,可计算出共享内存为:4*页面数=内存大小(KB)
KSM会稍微影响系统性能,以效率换空间,如果系统内存很宽裕,则无需开启KSM,如果想尽可能多地并行运行KVM客户机,则可以打开KSM
2、对内存设置限制
如果我们有多个虚拟机,为了防止某个虚拟机无节制地使用内存资源,导致其他虚拟机无法正常使用,就需要对内存的使用进行限制
3、大页后端内存
在逻辑地址向物理地址转换时,CPU保持一个翻译后备缓冲器TLB,用来缓存转换结果,而TLB容量很小,所以如果page很小,TLB很容易就充满,这样就容易导致cache miss,相反page很大,TLB需要保存的缓存项就变小,就会减少cache miss。通过为客户机提供大页后端内存,就能减少客户机消耗的内存并提高TLB命中率,从而提升KVM性能。
使用大页,KVM的虚拟机的页表将使用更少的内存,并且提高CPU的效率。
或者在/etc/sysctl.conf 中添加vm.nr_hugepages=2500来持久设定大页文件系统需要的内存页面数
编辑虚拟机的XML配置文件来使用大页分配内存
4、I/O的优化
在实际的生产环境中,为了避免过度消耗磁盘资源而对其他的虚拟机造成影响,我们希望每台虚拟机对磁盘资源的消耗是可以控制的。就可以调整I/O的权重weight,权重越高写入磁盘的优先级越高。
1、整体的权重,范围在100-1000
2、限制具体的I/O
5、系统调优工具tuned
tuned是服务端程序,用来监控收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的
- virtual-guest:企业级服务器配置中使用这个profile,其中包括电池备份控制程序、缓存保护以及管理磁盘缓存
- latency-performance:延迟性能调试的服务器配置
- enterperise-storage:企业存储服务器优化方案
- default:默认节点配置,是最基本的节点配置,只启用磁盘和CPU插件
- virtual-host:根据enterperise-storage配置,virtual-host还可减少可置换的虚拟内存,并启用更多集合脏页写回。同时推荐在虚拟化主机中使用这个配置,包括KVM和红帽企业版Linux虚拟化主机
- throughput-performance:吞吐性能调整的服务器profile。如果系统没有企业级存储,建议使用这个profile
原文地址:http://blog.51cto.com/13641879/2157164