我正在尝试在不重启的情况下升级 Xen VM 上的 RAM。虽然从主机节点看来它正在运行,但 VM 并未获取升级后的内存。
从 756 MB 升级到 1024 MB。以下是我使用的命令以及相关信息
xm 列表 vm2 名称 ID 内存 VCPU 状态 时间(秒) VM2 35768 2 -b---- 180.5
使用 xm mem-set 即时升级 RAM
xm 内存最大虚拟机2 1024 xm 内存设置 vm2 1024
主机节点现在看到它已经升级了 RAM,
xm 列表 vm2 名称 ID 内存 VCPU 状态 时间(秒) VM2 35 1024 2 -b---- 210.6
但是检查虚拟机上的内存仍然显示只有 756MB,
# 免费 -m 已使用的、可用的、缓存的共享缓冲区总数 内存:750 669 80 0 23 145 -/+ 缓冲区/缓存:500 249 交换:767 106 661
它会立即选择任何内存降级,比如说 512 MB。
任何建议将不胜感激。
答案1
你的内核需要支持Linux 内存热插拔
它将为 /sys/devices/system/memory 下的服务器 RAM 配置提供一个 sysfs 接口,您可以通过写入 /sys/devices/system/memory/memory[number]/state 来启用/禁用模块
这VMWare 知识库文章有一个循序渐进的程序。
您可能还想在 CentOS 论坛中搜索“内存热插拔在 CentOS vm 上不起作用”,因为它应该可以工作,并且解决方案很可能是一个一般配置问题。
答案2
如果与 Hyper-V 类似,则虚拟机的最大 RAM 在启动时是固定的 - 气球驱动程序可以隐藏 RAM,但不能神奇地将其添加到模拟硬件中。因此,如果不重新启动虚拟机,这很可能是不可能的。