这是我尝试过的:
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 虚拟化为来宾。
我希望减少来宾系统的内存使用量,释放更多资源以供主机使用,而无需重新启动来宾系统。
以防万一。
受到@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)