KVM虚拟机性能分析之内存性能.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
KVM虚拟机性能分析之内存性能

Kvm虚拟机性能分析之内存性能1 摘要内存虚拟化,最主要的是实现客户机虚拟地址 (Guest Virtual Address, GVA) 到宿主机物理地址之间的转换。根据上述客户机物理地址到宿主机物理地址之间的转换以及客户机页表,即可实现客户机虚拟地址空间到客户机物理地址空间之间的 映射,也即 GVA 到 HPA 的转换。显然通过这种映射方式,客户机的每次内存访问都需要 KVM 介入,并由软件进行多次地址转换,其效率是非常低的。因此,为了提高 GVA 到 HPA 转换的效率,KVM 提供了两种实现方式来进行客户机虚拟地址到宿主机物理地址之间的直接转换。其一是基于纯软件的实现方式,也即通过影子页表 (Shadow Page Table) 来实现客户虚拟地址到宿主机物理地址之间的直接转换。其二是基于硬件对虚拟化的支持,来实现两者之间的转换(即EPT技术)。EPT技术由于其内存转换更为直接,所以可以获得物理机更多的内存性能。虚拟化内存优化项包括EPT、大页、ksm,下面一个一个来介绍。2 内存优化技术简介EPT 针对内存的使用,存在逻辑地址和物理地址的转换,这个转换时通过page table来进行的,并且转换过程由cpu vmm硬件加速,速度是很快速的。但是引入vm之后,vm vaddrvm padddrhost paddr,首先vm需要进行逻辑地址和物理地址的转换,但是vm的物理地址还是host机的逻辑地址,需要再进行一次逻辑地址到物理地址的转换,所以这个过程有2次地址转换,效率非常低。EPT 页表相对于影子页表,其实现方式大大简化。而且,由于客户机内部的缺页异常也不会致使客户机退出,因此提高了客户机运行的性能。此外,KVM 只需为每个客户机维护一套 EPT 页表,也大大减少了内存的额外开销。我们运用了kvm技术,默认已经开启了EPT功能。通过下述命令,我们可以验证是否使用了EPT技术。lsmod |grep kvm结果中有kvm的两个模块出现:[root@host211 ~]# lsmod |grep kvmkvm_intel 142728 9kvm 430884 1 kvm_intel大页:巨型页与透明巨型页X86默认的内存页大小是4KB,但是也可以使用2MB或者1GB的巨型页,系统的巨型页可以传输过虚拟机,KVM虚拟机可以通过分配巨型页提高性能。在CentOS 5上面,需要手工配置巨型页。在CentOS 6上面启用一种叫作透明巨型页的技术,默认开启巨型页,并且可以自动调整。使用巨型页可以提升内存的分配效率,提升系统性能。巨型页可以手工配置,也可以使用透明巨型页技术。巨型页可以手工配置的坏处:必须手工配置,虚拟机的数量、可用的内存、虚拟机的启动、关闭、迁移都需要重新配置,并且不能使用swap。使用透明巨页内存的好处:可以使用swap,内存页默认大小是2MB,需要使用swap的时候,内存被分割为4KB。对用户透明,不需要用户做特殊配置。不需要root权限。不需要依赖某种库文件。2.透明巨型页内存配置CentOS 6.x默认启用透明巨型页内存。查看目前状态:cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise never修改配置:echo never /sys/kernel/mm/transparent_hugepage/enabled参数说明如下:never:关闭,不使用透明内存。alway:尽量使用透明内存,扫描内存,有512个4KB页面可以整合,就整合成一个2MB的页面。madvise:避免改变内存占用。使用情况监控:可以查看/sys/kernel/mm/transparent_hugepage/khugepaged下的信息。pages_to_scan(默认4096=16MB):一个扫描周期被扫描的内存页数。scan_sleep_millisecs(默认10000=10sec):多长时间扫描一次。alloc_sleep_millisecs(默认60000=60sec):多长时间整理一次碎片。也可以查看/proc/meminfo信息。grep Huge /proc/meminfoAnonHugePages: 266240 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kB使用注意要点:虚拟机和宿主机都需要启动THP,这样可以获得以下好处。虚拟机的CPU可以使用2MB的TLB。相同的

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档