KVM的虚拟化内存

本文探讨了KVM虚拟化技术中内存管理的两个关键策略:内存膨胀(memory ballooning)和KSM(Kernel Same-Page Merging)。KSM通过内存去耦合减少内存消耗,实验显示在30个Windows 7虚拟机中,KVM节省了约101GB的内存空间。文章还提到了KSM的默认配置及其调整方法,并指出在系统内存使用情况查看时出现的不一致现象。
摘要由CSDN通过智能技术生成

现代操作系统对内存共享的应用已经非常广泛了,例如fork的进程会与父进程共享所有的内存空间,虚拟化技术也逐渐增加了对内存共享的要求,但是并没有想象中那么容易。虚拟化的一个重要优势是能将多个工作负载整合到一个计算机系统中,Linux主要采用了两种技术来解决虚拟化的内存超量使用。

1: 内存膨胀(memory ballooning)是指主机指示合作客户释放一些已分配内存以用于其他用途。这种技术将内存压力从主机转移到客户机上。

2:KSM(Kernel same-page merging) 使用一个内核线程扫描之前确认的内存范围内是否有一样的页面,将其合并 然后释放其副本。KSM是最受欢迎的形势。KSM 简单来说就是一个memory deduplication(内存去耦合)的进程。KSM允许虚拟机合并一些内存内容相同的page,进而达到节约内存的目的.

我们通过一个例子来了解KVM shared memory 的好处

[3]利用30个windows 7 镜像做了KSM memory deduplication 实验。 

    Windows 7 镜像个格式为qcow2,大小为20G,4G虚拟内存 ,2个CPU

   测试KVM的主机为Dell c6220,32个HT 内核和128G的主存。

    启动30个Window 7 的配置为: 

    MEM=4048

    BACKING_DIR = /mnt/ksm-test

    BACKING_FILE=win7-base.qcow2

    SLEEP=60

Ubuntu默认开启KSM, 默认配置为:pages_scan = 100; sleep_millisecs = 200

也就是说KSM会扫描100个内存pages,休息200 millisecsÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值