小编Wiz*_*zek的帖子

在 Linux 上,(如何)我可以“热拔出”内存吗?

这是我尝试过的:

sudo zsh -c 'echo offline >/sys/devices/system/memory/memory109/state'`
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

zsh:echo:1: write error: device or resource busy
Run Code Online (Sandbox Code Playgroud)

我是否可能需要先确保我即将脱机的内存模块是空的?

如果是这样,我该怎么做?


背景:

我正在运行一个基于 Ubuntu 的发行版,由 VMWare 虚拟化为来宾。

我希望减少来宾系统的内存使用量,释放更多资源以供主机使用,而无需重新启动来宾系统。

以防万一。


编辑 2016-09-29:

受到@Gilles 的评论和链接的鼓舞,说理论上应该是可能的,我想到可能memory109包含一些不可移动的页面。所以我决定在其他一些模块上尝试它(?)。

起初我手动尝试了其他一些。但由于这些都不成功,我想我会尝试所有这些:

for i in /sys/devices/system/memory/memory*/state;
  do echo -n "Trying "$i" \t";
  sudo zsh -c "echo offline > $i";
done
Run Code Online (Sandbox Code Playgroud)

警告:小心上面的脚本,因为它可能会在您的机器上成功,这可能会使您的大部分内存(如果不是全部)脱机,从而使您的系统饿死和挂起。

这是我得到的最多的:

...
Trying /sys/devices/system/memory/memory44/state        zsh:echo:1: write error: device or resource busy
Trying /sys/devices/system/memory/memory45/state        zsh:echo:1: write error: device or resource busy
Trying /sys/devices/system/memory/memory46/state        zsh:echo:1: write error: device or resource busy …
Run Code Online (Sandbox Code Playgroud)

memory virtual-machine hot-plug

6
推荐指数
1
解决办法
1106
查看次数

标签 统计

hot-plug ×1

memory ×1

virtual-machine ×1