22
2024
03
11:38:23

禁用Virtio-Balloon



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

Virtio-Balloon 即内存气泡,通过在虚拟机里面添加一个虚拟的气球设备,实现宿主机和虚拟机之间的内存动态分配和回收,从而提高内存利用效率。
具体工作原理是,该气球设备可以和虚拟机管理程序通信,发送内存使用情况,当虚拟机内存不足时可以要求释放内存,不需要时可以申请内存,虚拟机管理程序根据整体情况进行分配。
但是一些不道德的云服务商有时会通过Virtio-Balloon进行“内存超售”,也就是超额出售内存资源,无法保证用户购买的虚拟机内存,一旦宿主机内存不足所有虚拟机都会受影响。
为此,我今天带来了禁用Virtio-Balloon,以提高稳定性的方法。
 

检查

要检查是否存在Virtio-Balloon,可使用lsmod检查是否加载
lsmod | grep virtio_balloon
Bash
若无输出,则不存在Virtio-Balloon
 

卸载

临时卸载

rmmod virtio_balloon
Bash
使用该命令可卸载Virtio-Balloon模块,但在下一次开机会自动启动
 

永久卸载

为了防止重启后自动启动,可以将规则添加到/etc/modprobe.d/下的配置文件
  1. 打开配置文件

vim /etc/modprobe.d/blacklist.conf
Bash
上述命令中,vim可换为您习惯的文件编辑器,blacklist.conf文件名可修改,只要确保后缀为.conf
  1. 写入规则

使用文件编辑器在配置文件内写入
blacklist virtio_balloon
Bash
保存并退出文件编辑器
 
通过在 blacklist-virtio-balloon.conf 文件中写入 "blacklist virtio_balloon",系统将不再加载 virtio_balloon 模块,因此禁用了相关的功能和特性。这样做可以确保系统在启动时不会加载这个模块,从而实现了禁用 virtio_balloon 内核模块的目的。
 
  1. 重新生成initramfs

update-initramfs -u
Bash
它会重新生成 initramfs 文件,将最新的配置文件和内核模块信息包含进去。
 

对于编译到内核

部分服务商(如Cloudcone)可能会将virtio_balloon编译进内核,而不是内核模块,使得无法通过lsmod | grep virtio_balloon 查询到,且rmmod virtio_balloon无法卸载,对于这种情况,有三种方法
  1. 通过指定Linux内核启动时的命令行参数和选项禁用

    1. 首先,使用您喜欢的文件编辑器打开/etc/default/grub
      如vim
      vim /etc/default/grub
      Bash
      找到GRUB_CMDLINE_LINUX ,在后面的引号内加上virtio_balloon=0
      例如
      `GRUB_CMDLINE_LINUX="virtio_balloon=0"
      JavaScript
修改完毕后,输入以下命令更新grub配置,并重启服务器
update-grub
Bash
若没有上述命令,则使用以下命令
grub-mkconfig -o /boot/grub/grub.cfg
Bash
 
  1. 安装干净的系统

    1. 安装一个干净的系统,可以避免出现这种情况,也能去除服务商可能的内置在系统中的监控程序


本文链接:http://www.hqyman.cn/post/5530.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: