服务跨境电商
助力企业出海

memoryCheck:用于检测VPS内存是否超售的一键脚本

kvm内存超售的方法一般而言就三种,分别为内存交换(Swap),气球驱动(Balloon),KSM(Kernel Samepage Merging)。

内存交换(Swap),当系统内存不够用时,宿主机把部分长时间未操作(读写)的内存交换到磁盘上配置的Swap分区,等相关程序需要运行时再恢复到内存中。说白了,就是宿主机的swap当内存用

气球驱动(Balloon),通过virtio_balloon驱动实现动态调整Guest与Host的可用内存空间。Balloon的工作原理是在虚拟机中安装一个kmod,KVM宿主机内存不足,会根据virtio_balloon判断哪些内存页面可以被回收,然后virtio_balloon将这些内存占用,返回给宿主机使用。说白了,就是小鸡的一个间谍virtio_balloon,KVM宿主机内存不足,virtio_balloon kmod会申请占用小鸡空闲的内存。占用的内存就会释放到宿主机。

KSM(Kernel Samepage Merging),KSM是一种内存合并技术,它可以在KVM中实现内存共享,从而节省内存空间。是Linux kernel的一种内存共享机制,在2.6.32版本引入,用于合并具有相同内容的物理主存页面以减少页面冗余。在Kernel中KSM会定期扫描用户注册的内存区域,当有相同的页面就会将其合并,并用一个添加到页表中的新页面来代替原来的页面。当需要修改时,复制新的内存页,再做修改(将其标记为 copy-on-write),说白了,就是相同小鸡的内存页面有重复,KVM宿主机会把这些内存只存为一份。

一键脚本

curl https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh | bash

如果上述执行出错,可以尝试以下命令:

wget --no-check-certificate -O memoryCheck.sh https://raw.githubusercontent.com/uselibrary/memoryCheck/main/mem

结果如图:

1689143933 QQ截图20230712143830

关闭Balloon

rmmod virtio_balloo

1689144094 QQ截图20230712144118

备注

  1. 基于nodeseek讨论内容,感谢原作者,详情:https://www.nodeseek.com/post-8417-1
  2. 脚本已经在KVM架构Debian 11/12系统上通过检测
  3. 其他架构和系统理论上有用,具体检测没做

来源:

声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《memoryCheck:用于检测VPS内存是否超售的一键脚本》
文章链接:https://www.zjcp.com/15970.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。