浅谈VPS超开

前言

首先明确一个概念 “超开”(overcommit)在某些场合是可以代表“超售”(又名“超卖”)这个词的,毕竟超开出来了,目的是什么大家心里都懂
在个人目前的认知里,只要是虚拟化,都可以超开
服务商所说的“无法超开” 都是假的,目前来说不存在不可超开的虚拟化

超开

Xen

这种虚拟化被某些服务商吹的飞上了天,称其为”比KVM还要无法超开” ,更有甚者说”采用Xen虚拟化,无法超开”

  • 首先CPU这点是绝对能超的,UNLIMITED vCPUs,这一点都是“喜(xīn)闻(zhī)乐(dù)见(míng)”的
  • 内存这一点可以使用balloon*来超开,只不过懂点东西的客户很容易发现猫腻,在vps的进程中可以看到一个吃了巨量内存的进程
  • 内存也可以使用Optane虚拟内存来超开,具体操作就是划分磁盘当SWAP
  • 硬盘么,暂时没研究过Xen的硬盘超开。

能超开的资源:
CPU 内存

不能/不了解的超开资源
硬盘空间

OpenVZ

可以随意超开,无底线,可以看作container plus

能超开的资源:
CPU 内存 硬盘空间

不能超开的资源:

KVM

  • CPU一样能超,这个就不解释了
  • 内存可以参考Xen,同样使用balloon*技术可以实现超开效果也支持使用Optane虚拟内存来超开

    追加:
    KVM下的变态内存压缩技术 —KSM
    KSM 全称是 (kernel same-page merging).
    原理是将相同内容的内存页面合并, 比如我们运行了50个CentOS
    这50个CentOS内核占用的部分内存数据是完全一样的,甚至一些软件所用的内存数据也一模一样,将原来50份数据合并为一份
    这样就减少了内容使用

    KSM是由Redhat红帽开发的, 内置在Linux内核2.6.32版本以及以上,但是默认并未开启

    如何开启?

    /etc/init.d/ksmtuned start

    设置开机启动

    chkconfig ksmtuned on

    其他命令

    start|stop|restart|force–reload|condrestart|try–restart|status|retune|help
    开启后需要等待后端分析和处理
    大约1个小时左右,你会发现内存使用降低了30% – 60%

  • 硬盘只需在创建VM盘的时候选择qcow2格式,就会和OVZ一样,用多少占多少(动态磁盘),但注意,qcow2格式下,用户即使删除了文件,qcow2的大小也不会缩小,只能增加不能减少。

能超开的资源:
CPU 内存 硬盘空间

不能/不了解的超开资源:

Hyper-V

这个玩意超起来也是很爆炸的

  • 首先CPU超开起来非常丧心病狂,支持按照百分比来限制CPU使用(虽然KVM也有,但是Hyper-V方便且门槛低)
  • Hyper-V也有非常强的内存压缩技术,论内存超开Hyper-V应该是最强的,不仅虚拟内存的利用也非常好,还可以动态内存,一般来说Hyper-V能做到6G内存超8G。
  • 硬盘也是有压缩方法的,但会消耗大量CPU,不值得。

能超开的资源
CPU 内存 硬盘空间

不能超开的资源

VMware

VMware(ESXI)的超开能力也是数一数二的

  • 首先是CPU,可以参考Hyper-V
  • 个人测试,Windows Server 2016下物理内存32G 可以超开到 58G,有前辈测试过,32G机器超到80多G。
  • 硬盘超开也是数一数二,虚拟机可以使用链接克隆节省大量硬盘空间,只要母本没有被删除,克隆机就会以类似增量备份的形式存在,所以啊~

能超开的资源:
CPU 内存 硬盘空间

不能超开的资源

总结

所以,没有超不了的虚拟化,只有超多少的虚拟机
超开其实就是用时间换空间,就这么简单

相关资料:
https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.resmgmt.doc_50%2FGUID-895D25BA-3929-495A-825B-D2A468741682.html


浅谈VPS超开
http://www.evec.cc/2019/02/06/vpsovercommit/
作者
前夕
发布于
2019年2月6日
许可协议