非常短的前提

Libvirt支持对虚拟机进行内存动态扩展,可是windows虚拟机首先须要安装virtio-win驱动。

KVM提供的virtio-win驱动下载地址:

http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers

http://alt.fedoraproject.org/pub/alt/virtio-win/

下面是栗子

镜像:windows2008R2。64位

virtio-win:virtio-win-0.1-100.iso

disk:差分镜像(qemu-img create -f qcow2 -b ./windows_2008R2_x86_64 disk)

使用qemu命令启动虚拟机并载入virtio驱动:

qemu-system-x86_64 -hda ./windows_2008R2_x86_64 -drive file=./disk,if=virtio \
-drive file=./virtio-win-0.1-100.iso,media=cdrom,index=1 -net nic,model=virtio \
-net user -boot d -vga std -m 4096 -usbdevice tablet -vnc :50 -enable-kvm

通过vnc訪问该虚拟机,进行下面操作:

  1. 进入“设备管理器” - “系统设备”。安装“未知设备”为“Virtio Balloon Driver”
  2. 将virtio-win光驱中的WIN7/X86文件夹复制到“c:/Program files/Balloon”
  3. 以管理员身份使用cmd命令行进入上述文件夹
  4. 运行“BLNSVR.exe -i”用以安装BLNSVR服务
  5. 正常关机保存设置

至此。该disk文件已经具备了获取具体内存信息、动态调整内存大小的能力,验证的方法例如以下:

内存具体信息获取验证:

1.使用该disk文件启动虚拟机。在xml文件里加入例如以下段落用于启用balloon设备,同一时候设定採集周期为10s

...
<devices>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
<stats period='10'/>
</memballoon>
</devices>
</domain>

2.採集时间能够手动设置

virsh dommemstat <dommain> --period <time(sec)>

3.获取虚拟机的当前内存用量

virsh dommemstat <dommain>

内存动态大小调整验证:

1.关闭虚拟机

virsh destroy <domain>

2.设置虚拟机最大内存值(假设已经写入xml文件能够跳过)

virsh setmaxmem <domain> --size <max_size>

3.启动虚拟机

virsh start <domain>

4.动态调整

virsh setmem <domain> --size <mem_size>

有点不同于linux系统的地方在于windows会显示设置的最大内存值,会让人产生误解。

參考资料

https://pve.proxmox.com/wiki/Dynamic_Memory_Management#Ballooning

Libvirt中windows虚拟机的动态内存管理的更多相关文章

  1. FreeRTOS 动态内存管理

    以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 动态内存管理,动态内存管理是 FreeRTOS 非常重要的一项功能,前面 ...

  2. C++中对C的扩展学习新增语法——动态内存管理

    1.C语言动态内存管理的缺点: 1.malloc对象的大小需要自己计算. 2.需要手动转换指针类型. 3.C++的对象不适合使用malloc和free. 2.C++中new/delete基本使用: 3 ...

  3. java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)

    概述 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又 ...

  4. java虚拟机学习-JVM内存管理:深入垃圾收集器与内存分配策略(4)

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项 ...

  5. 【深入理解Java虚拟机】自动内存管理机制——内存区域划分

      Java与C++之间有一堵有内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来.C/C++程序员既拥有每一个对象的所有权,同时也担负着每一个对象生 ...

  6. 深入理解Java虚拟机(自动内存管理机制)

    文章首发于公众号:BaronTalk 书籍真的是常读常新,古人说「书读百遍其义自见」还是很有道理的.周志明老师的这本<深入理解 Java 虚拟机>我细读了不下三遍,每一次阅读都有新的收获, ...

  7. C++动态内存管理之shared_ptr、unique_ptr

    C++中的动态内存管理是通过new和delete两个操作符来完成的.new操作符,为对象分配内存并调用对象所属类的构造函数,返回一个指向该对象的指针.delete调用时,销毁对象,并释放对象所在的内存 ...

  8. uCGUI动态内存管理

    动态内存的堆区 /* 堆区共用体定义 */ typedef union { /* 可以以4字节来访问堆区,也可以以1个字节来访问 */ ]; /* required for proper aligne ...

  9. Keil C动态内存管理机制分析及改进(转)

    源:Keil C动态内存管理机制分析及改进 Keil C是常用的嵌入式系统编程工具,它通过init_mempool.mallloe.free等函数,提供了动态存储管理等功能.本文通过对init_mem ...

随机推荐

  1. 《C++编程思想》第四章 初始化与清除(原书代码+习题+解答)

    相关代码: 1. #include <stdio.h> class tree { int height; public: tree(int initialHeight); ~tree(); ...

  2. java 用JNA调用dll 参考文档

    1  Java调用C语言动态库(JNA方式):回调函数.结构体数组传参.结构体数组返回 2jna结构体数组  JNA结构体数组 3JNA调用C语言动态链接库学习实践总结 4 Java 通过 JNA 调 ...

  3. c11---位运算相关

    // // main.c // 03-原码反码补码 #include <stdio.h> int main(int argc, const char * argv[]) { // int占 ...

  4. [HDU 5542] The Battle of Chibi

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5542 [算法] 树状数组优化DP [代码] #include<bits/stdc++.h&g ...

  5. WebService CXF学习:复杂对象传递(List,Map)

    转自:https://blog.csdn.net/z69183787/article/details/35988335 第一步:创建存储复杂对象的类(因为WebServices的复杂对象的传递,一定要 ...

  6. 光标属性CSS cursor 属性

    CSS cursor 属性 CSS cursor属性,以前不知道,如果以后用到自己看的 <html> <body> <p>请把鼠标移动到单词上,可以看到鼠标指针发生 ...

  7. HttpClient连接超时及读取超时

    HttpClient连接超时及读取超时 httpClient在执行具体http请求时候 有一个连接的时间和读取内容的时间: HttpClient连接时间 所谓连接的时候 是HttpClient发送请求 ...

  8. Spring学习笔记(二) 初探Spring

    版权声明 笔记出自<Spring 开发指南>一书. Spring 初探 前面我们简单介绍了 Spring 的基本组件和功能,现在我们来看一个简单示例: Person接口Person接口定义 ...

  9. T7316 yyy的最大公约数(者)

    题目背景 全场基本暴力 题目描述 输入输出格式 输入格式: 如图 输出格式: 如图 输入输出样例 输入样例#1: 如图 输出样例#1: 如图 说明 如图 这题用到了容斥原理和线性筛的一些东西, 表示没 ...

  10. 达夫设备之js

    最近阅读<高性能JavaScript>时,在书中的“达夫设备“ . 对此,有些感悟,同时有些疑问,希望看到的朋友,能帮忙解释下,在此先提前感谢了. 1. 先说自己的理解吧: ”达夫设备“的 ...