KVM虚拟机性能分析之内存性能_第1页
KVM虚拟机性能分析之内存性能_第2页
KVM虚拟机性能分析之内存性能_第3页
KVM虚拟机性能分析之内存性能_第4页
KVM虚拟机性能分析之内存性能_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、KVM虚拟机性能分析之内存性能1摘要内存虚拟化,最主要的是实现客户机虚拟地址(GuestVirtualAddress,GVA)到宿主机物理地址之间的转换。根据上述客户机物理地址到宿主机物理地址之间的转换以及客户机页表,即可实现客户机虚拟地址空间到客户机物理地址空间之间的映射,也即GVA到HPA的转换。显然通过这种映射方式,客户机的每次内存访问都需要KVM介入,并由软件进行多次地址转换,其效率是非常低的。因此,为了提高GVA到HPA转换的效率,KVM提供了两种实现方式来进行客户机虚拟地址到宿主机物理地址之间的直接转换。其一是基于纯软件的实现方式,也即通过影子页表(ShadowPageTable)

2、来实现客户虚拟地址到宿主机物理地址之间的直接转换。其二是基于硬件对虚拟化的支持,来实现两者之间的转换(即EPT技术)。EPT技术由于其内存转换更为直接,所以可以获得物理机更多的内存性能。虚拟化内存优化项包括EPT大页、ksm,下面一个一个来介绍。2内存优化技术简介EPT针对内存的使用,存在逻辑地址和物理地址的转换,这个转换时通过pagetable来进行的,并且转换过程由cpuvmm硬件加速,速度是很快速的。但是弓I入vm之后,vmvaddr>vmpadddr>hostpaddr,首先vm需要进行逻辑地址和物理地址的转换,但是vm的物理地址还是host机的逻辑地址,需要再进行一次逻辑

3、地址到物理地址的转换,所以这个过程有2次地址转换,效率非常低。EPT页表相对于影子页表,其实现方式大大简化。而且,由于客户机内部的缺页异常也不会致使客户机退出,因此提高了客户机运行的性能。止匕外,KVM只需为每个客户机维护一套EPT页表,也大大减少了内存的额外开销。我们运用了kvm技术,默认已经开启了EPT功能。通过下述命令,我们可以验证是否使用了EPT技术。lsmod|grepkvm结果中有kvm的两个模块出现:roothost211#lsmod|grepkvmkvm_intelkvm14272894308841kvm_intel大页:巨型页与透明巨型页X86默认的内存页大小是4KB,但是也

4、可以使用2MBE者1GB的巨型页,系统的巨型页可以传输过虚拟机,KVM4拟机可以通过分配巨型页提高性能。在CentOS5上面,需要手工配置巨型页。在CentOS6上面启用一种叫作透明巨型页的技术,默认开启巨型页,并且可以自动调整。使用巨型页可以提升内存的分配效率,提升系统性能。巨型页可以手工配置,也可以使用透明巨型页技术。巨型页可以手工配置的坏处:必须手工配置,虚拟机的数量、可用的内存、虚拟机的启动、关闭、迁移都需要重新配置,并且不能使用swap使用透明巨页内存的好处:可以使用swap,内存页默认大小是2MB需要使用swap的时候,内存被分割为4KB对用户透明,不需要用户做特殊配置。不需要ro

5、ot权限。不需要依赖某种库文件。2.透明巨型页内存配置CentOS6.x默认启用透明巨型页内存。查看目前状态:cat/sys/kernel/mm/transparent_hugepage/enabledalwaysmadvisenever修改配置:echonever>/sys/kernel/mm/transparent_hugepage/enabled参数说明如下:never:关闭,不使用透明内存。alway:尽量使用透明内存,扫描内存,有512个4KB页面可以整合,就整合成一个2MB的页面。madvise:避免改变内存占用。使用情况监控:可以查看/sys/kernel/mm/trans

6、parent_hugepage/khugepaged下的信息。pages_to_scan(默认4096=16MB:一个扫描周期被扫描的内存页数。scan_sleep_millisecs(默认10000=10sec):多长时间扫描一次。alloc_sleep_millisecs(默认60000=60sec):多长时间整理一次碎片。也可以查看/proc/meminfo信息。grepHuge/proc/meminfoAnonHugePages:266240kBHugePages_Total:0HugePages_Free:0HugePages_Rsvd:0HugePages_Surp:0Hugepa

7、gesize:2048kB使用注意要点:虚拟机和宿主机都需要启动THP这样可以获得以下好处。虚拟机的CPK以使用2MB的TLB相同的算法。相同的代码。相同的内核镜像。3.巨型页手工配置(1)虚拟机巨型页手工配置有的场景需要手工配置虚拟机可以使用的巨型页数量。通过配置虚拟机.xml文件,可以指定虚拟机可以使用的巨型页数量。<memoryBacking><hugepages/></memoryBacking>(2)巨型页使用检查要查看当前巨型页使用情况,使用如下命令:cat/proc/sys/vm/nr_hugepages查看当前的巨型页值,命令如下:Viewt

8、hecurrenthugepagesvalue:#cat/proc/meminfo|grepHugeAnonHugePages:2048kBHugePages_Total:0HugePages_Free:0HugePages_Rsvd:0HugePages_Surp:0Hugepagesize:2048kB(3)修改宿主机巨型页数量巨型页默认大小是2MB可以通过如下命令修改可以使用的巨型页数量:echo25000>/proc/sys/vm/nr_hugepages或者使用sysctl命令,N是要设置的巨型页数量:sysctlvm.nr_hugepages=N挂载巨型页,命令如下:|mou

9、nt-thugetlbfshugetlbfs/dev/hugepages重启libvirtd服务和虚拟机:systemctlstartlibvirtdvirshstartvirtual_machine(4)关闭巨型页关闭巨型页,命令如下:sysctlvm.nr_hugepages=0umounthugetlbfsKSM简单理解就是可以将host机内容相同的内存合并,节省内存的使用,特别是当vm操作系统都一样的情况,肯定会有很多内容相同的内存,开启了KSM则会将这些内存合并为一个,当然这个过程会有性能损耗,所以开启与否,需要考虑使用场景,如果不注重vm性能,而注重host内存使用率,可以考虑开启

10、,反之则关闭,在/etc/init.d/下,会有两个服务,服务名称为ksm和ksmtuned,都需要关闭。对任何系统来说,最佳选择将取决于创建虚拟环境时的内存估算。如果在虚拟主机中有足够的物理内存,在没有开启KSMM就能够满足虚拟机的内存需求,那么最好关闭KSM关闭的方法如下:chkconfigksmdoffchkconfigksmtunedoffserviceksmdoffserviceksmtunedoff我们经过讨论,为了保证虚拟机性能,所以ksm是关闭的。3存在的内存优化方案综上所述可知,我们已经对EPTksm都已设置并应用,只是在大页优化方面我们选择的是透明大页,我们将根据下面不同的大灾方案进行测试。1 .无大页2 .透明大页3 .2m巨型大页且内存预分配4 .1g巨型大页且内存预分配测试工具:PhoronixTestSuite版本信息:测试主版本PhoronixTestSuitev5.8.1(Belev)测试套件版本pts/stream-1.2.0配置信息:测试项为Triad参数信息:benchmarkpts/stream-1.2.0测试得分:测试项内存得分(MB/s)无人页14247透明自动大页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论