KVM性能优化

优化思路及步骤

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

时间: 2024-10-08 08:38:27

KVM性能优化的相关文章

kvm性能优化方案

kvm性能优化方案 kvm性能优化,主要集中在cpu.内存.磁盘.网络,4个方面,当然对于这里面的优化,也是要分场景的,不同的场景其优化方向也是不同的,下面具体聊聊这4个方面的优化细节. cpu 在介绍cpu之前,必须要讲清楚numa的概念,建议先参考如下两篇文章 CPU Topology 玩转cpu-topology 查看cpu信息脚本: #!/bin/bash # Simple print cpu topology # Author: kodango function get_nr_proc

kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6.x系列操作系统下KVM优化的点,有很多都是默认支持开启了的,除了采用virtio方式的磁盘IO,与网络IO接口优化之外,其它真是无需太多优化. 1. CPU性能优化 (1) 服务器或宿主机主板BIOS中开启Intel Virtualization Technology(简称VT), 如果主板支持In

OpenStack入门篇(五)之KVM性能优化及IO缓存介绍

1.KVM的性能优化,介绍CPU,内存,IO性能优化 KVM CPU-->qemu进行模拟ring 3-->用户应用 (用户态,用户空间)ring 0-->操作系统 (内核态,内核空间)虚拟化难题?(1)CPU优化:上下文切换:宿主机ring 0ring 3虚拟机ring 0ring 3处理器设置-->Inter VT-x/EPT或AMD-V/RVI(V)缓存:L1-->静态内存L2.L3-->动态内存虚拟机在宿主机上是一个进程,受进程调度器的管理.容易导致Cache

2017版:KVM 性能优化之内存优化

我们说完CPU方面的优化,接着我们继续第二块内容,也就是内存方面的优化.内存方面有以下四个方向去着手: EPT 技术 大页和透明大页 KSM 技术 内存限制 1. EPT技术 EPT也就是扩展页表,这是intel开创的硬件辅助内存虚拟化技术.我们知道内存的使用,是一个逻辑地址跟物理地址转换的过程.虚拟机内部有逻辑地址转成成物理地址的过程,然后再跳出来,虚拟机这块内存又跟宿主机存在逻辑到物理的转换.有了EPT技术,那么能够将虚拟机的物理地址直接翻译为宿主机的物理地址,从而把后面那个转换过程去掉了,

KVM性能优化之CPU优化

前言 任何平台根据场景的不同,都有相应的优化.不一样的硬件环境.网络环境,同样的一个平台,它跑出的效果也肯定不一样.就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同... 所以,我们做运维工作,也是如此.首先你得充分了解你所用的软件平台,然后根据你现有的生产环境去充分的测试,最后得出结果,做最优的调整. KVM也是一样,首先要做的是充分的了解它,看看有哪些参数和设置我们可以做出调整,最终应用以求发挥最高的性能. 那么KVM的性能调优,我们可以从四个方面入手 —— CPU.内存.磁

KVM文件管理及性能优化

KVM文件管理 通过文件管理可以直接查看.修改.复制虚拟机的内部文件.例如:系统因为配置问题无法启动时,可以直接修改虚拟机的文件.虚拟机的磁盘文件有 raw和 qcow2 两种格式. KVM默认格式是raw,raw格式性能最好.速度最快,其缺点是不支持一些新的功能,如镜像.Zlib磁盘压缩.AES加密等 文件管理 转换磁盘格式 # qemu-img info /vdir/c01.raw //查看当前磁盘格式 # virsh shutdown c01 //转换磁盘格式前必须先关闭虚拟机 # qem

KVM命令--优化篇(2)

1- 为什么要调优 ___ KVM采用全虚拟化技术,全虚拟化要由一个软件来模拟硬件,故有一定的损耗,特别是I/O,因此需要优化. ___ KVM性能优化主要在CPU.内存.I/O这几方面.当然对于这几方面的优化,也是要分场景的,不同的场景其优化方向也是不同的. 2- 优化 2.1- cpu ___ 考虑CPU的数量问题,所有guestcpu的总数目不要超过物理机CPU的总数目.如果超过,则将对性能带来严重影响,建议选择复制主机CPU配置. 2.2- 内存 2.2.1- KSM(Kernel Sa

Ceph性能优化总结(v0.94)

如需转载请标明作者,原文地址:http://xiaoquqi.github.io/blog/2015/06/28/ceph-performance-optimization-summary/ 最近一直在忙着搞Ceph存储的优化和测试,看了各种资料,但是好像没有一篇文章把其中的方法论交代清楚,所以呢想在这里进行一下总结,很多内容并不是我原创,只是做一个总结.如果其中有任何的问题,欢迎各位喷我,以便我提高. 优化方法论 做任何事情还是要有个方法论的,"授人以鱼不如授人以渔"的道理吧,方法通

kqemu性能优化

kvm与VMware Esx在某些应用中性能差别较大,主要原因在于kvm的IO模拟放在qemu中做的,而qemu在用户态实现.这样一来,从kvm到用户态的切换需要消耗不少的cpu,另外用户态调度效率比内核线程调度低. 目前kqemu有些重要的设备模拟放在内核态实现,比如vhost-net,即virtio网卡内核加速功能.但是也有些IO没有放在内核,比如ACPI PM TIMER,如果客户机中的应用程序大量调用获取timer相关的函数,那么就有可能造成qemu进程繁忙,在客户机中的任务管理器就可以