kvm-内存资源管理
1、基础知识
1.1、需求
需要根据实际情况,对kvm进行内存资源调整。
注意:不推荐频繁切换,否则导致虚拟机启动异常。
1.2、基本语法
1.2.1、方法1-virsh qemu-monitor-command
virsh qemu-monitor-command <虚拟机名称> --hmp --cmd 命令
命令解析:
查看所有信息 info
查看内存 info balloon
调整内存 balloon 定制容量
特点:
只管调整,不管系统是否重启成功
1.2.2、方法2-virsh setmem
virsh setmem <虚拟机名称> 定制容量
1.2.3、注意事项
因为它涉及到虚拟机资源的重新加载(重启主机),如果内存过小,导致系统无法启动。再一个,频繁执行次数过多导致虚拟机卡死
1.3、超限使用
原则上,宿主机的资源是不允许超限使用的,比如,我要在 100G的电脑上,存储 200G的资源。这是不可能的。
根据我们之前对虚拟磁盘的原理解析,我们知道,分配的资源和使用的资源是有区别的,实际使用的远远小于分配的资源。所以我们在分配内存的时候,可以对内存进行超配的使用
1.4、基本信息查看
1.4.1、查看配置文件
root@localhost:~# virsh dumpxml CentOS-8-x86_64 | grep -i memo <memory unit='KiB'>2097152</memory> <currentMemory unit='KiB'>2097152</currentMemory>
1.4.2、查看虚拟机内存信息
root@localhost:~# virsh dominfo CentOS-8-x86_64 | grep memory Max memory: 2097152 KiB Used memory: 2097152 KiB
2、实战
2.1、调整内存
2.1.1、查看内存信息
# virsh qemu-monitor-command CentOS-8-x86_64 --hmp --cmd info balloon balloon: actual=2048
2.1.2、调整内存信息
virsh qemu-monitor-command CentOS-8-x86_64 --hmp --cmd balloon 1024
2.1.3、确认内存信息
# virsh qemu-monitor-command CentOS-8-x86_64 --hmp --cmd info balloon balloon: actual=1024 # virsh dumpxml CentOS-8-x86_64 | grep -i memo <memory unit='KiB'>2097152</memory> <currentMemory unit='KiB'>1048576</currentMemory> # virsh dominfo CentOS-8-x86_64 | grep -i memo Max memory: 2097152 KiB Used memory: 1048576 KiB
# 主机的内存信息和配置信息都同步更改了
2.2、超限调整内存
2.2.1、调整内存的限制
# virsh edit CentOS-8-x86_64 ... <memory unit='KiB'>3397152</memory> # 调整了内存的最大值为3G,当前的内存大小为1 ...
2.2.2、动态调大内存为3G
virsh qemu-monitor-command CentOS-8-x86_64 --hmp --cmd balloon 3024
2.2.3、查看效果
# virsh qemu-monitor-command CentOS-8-x86_64 --hmp --cmd info balloon balloon: actual=3024