Xen

如何從 DomU 中更改記憶體資源?

  • July 10, 2014

對於某項工作,我有時需要在 DomU (CentOS 5) 中使用更多記憶體。作業開始的觸發器是一些我只能在該 DomU 中檢查的條件: DomU 正在等待上傳。完成後,它需要處理接收到的數據 - 最適合的是 ram-disk。

對於這種情況,我已將 DomU 設置為最小 1 GB 和最大 16 GB 的記憶體設置。

現在我正在嘗試找到一種優雅的方法來從 DomU 中將記憶體大小調整為最大/最小。

第一個解決方案是使用來自 DomU 的 ssh 到所有可能的 Dom0,然後在那裡觸發“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/ballon也在 DomU 中工作。

您可以使用 xen 具有最小記憶體和最大記憶體的氣球驅動程序……它都是動態的並且是內置的

引用自:https://serverfault.com/questions/257786