服务器超售检测方法
我们用到的博客肯定是要使用服务器的,对于无良商家,服务器肯定是超售的,而且我们也不会知道,主机商肯定不会告诉我们,现在公布一种检测是否超售的工具脚本,希望对自己有用。
一键脚本
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/memoryCheck.sh && chmod +x memoryCheck.sh && bash memoryCheck.sh
来源:
内存交换(Swap)
当系统内存不够用时,宿主机把部分长时间未操作(读写)的内存交换到磁盘上配置的Swap分区,等相关程序需要运行时再恢复到内存中。
气球驱动(Balloon)
通过virtio_balloon驱动实现动态调整Guest与Host的可用内存空间。Balloon的工作原理是在虚拟机中安装一个kmod,KVM宿主机内存不足,会根据virtio_balloon判断哪些内存页面可以被回收,然后virtio_balloon将这些内存占用,返回给宿主机使用。
root用户执行rmmod virtio_balloon可以关闭virtio_balloon。事实上,大多数使用Proxmox VE的厂商都会开启virtio_balloon进行超售。
KSM(Kernel Samepage Merging 内存合并)
KSM是一种内存合并技术,它可以在KVM中实现内存共享,从而节省内存空间。是Linux kernel的一种内存共享机制,在2.6.32版本引入,用于合并具有相同内容的物理主存页面以减少页面冗余。在Kernel中KSM会定期扫描用户注册的内存区域,当有相同的页面就会将其合并,并用一个添加到页表中的新页面来代替原来的页面。当需要修改时,复制新的内存页,再做修改(将其标记为 copy-on-write)
https://github.com/uselibrary/memoryCheck
https://www.nodeseek.com/post-8417-1
结论:
root用户执行rmmod virtio_balloon
rmmod virtio_balloon
可以关闭virtio_balloon,在超售太猛的机器上真的有效,性能提升很大。
SWAP超售!
内存io速度低于 10 GB/s,存在SWAP超售可能。
使用上面的命令只是临时关闭,重启又会恢复,所以提供下面的脚本,彻底禁止其开机启动
curl -sSL https://raw.githubusercontent.com/ZengHuuu/disable_virtio_balloon/main/dvb.sh | bash