如何从 DomU 内部更改内存资源?

如何从 DomU 内部更改内存资源?

对于某项工作,我有时需要在 DomU(CentOS 5)中增加内存。触发该工作的条件是我只能在该 DomU 中检查的:DomU 正在等待上传。上传完成后,它需要处理收到的数据 - 最适合的是 ram-disk。

对于这种情况,我将 DomU 的内存设置为最小 1 GB、最大 16 GB。

现在,我正在尝试寻找一种优雅的方法来从 DomU 内部将内存大小调整为最大/最小。

对此的第一个解决方案是使用从 DomU 到所有可能的 Dom0 的 ssh,然后在那里触发“xm mem-set”命令(使用 sudo)。

我读过一些关于 xen-store 的内容。其中提到了触发器... 所以这让我觉得应该有更好的方法。事实证明,内存膨胀是一种更好的方法。

这应该在 DomU 中工作:

echo $((4096*1024*1024)) >/proc/xen/balloon

应将内存大小调整为 4 GB。

但是: cat /proc/xen/ballon 说:

Current allocation:  2165536 kB
Requested target:    4192256 kB
Low-mem balloon:    14611680 kB
High-mem balloon:          0 kB
Driver pages:              0 kB
Xen hard limit:      2165536 kB

那么 xen 的硬限制从何而来?

结果现在是我的 DomU 有 2 GB RAM。Dom0 中的 xm 列表显示 DomU 仍为 1 GB RAM...

这里出了什么问题?是的 - 由于 DomU 版本低于 3.0.4,我将“mem=16G”作为内核启动参数添加到我的 DomU。

使用 Dom0 SLES11 SP1(XEN 4.0.1)和 CentOS 5.6 DomU(仍然是 XEN 3.0.3?)时, echo 4G >/proc/xen/ballon一开始没有做任何事情 - 但在我 xm mem-sets从 Dom0(最高 16 GB - 有效)成功执行了一些操作之后,/proc/xen/气球也在 DomU 内工作过。

答案1

您可以使用 xen 的 balloon 驱动程序,它具有最小内存和最大内存...它们都是动态的,并且是内置的

相关内容