KVM和OpenVZ虚拟化一样 都提供了允许超过物理内存大小的VPS配置,
很多内存分配给VPS,但是并未被完整使用,我们可以将这部分内存分配其他用户
举个例子
如果我们的物理服务器有128G内存, 不开启超售配置, 我们可以开通
128G – 4G(物理系统必要的内存) = 124G空闲内存 = 124 个 1G内存VPS
如果我们超售50%
128G – 4G(物理系统必要的内存) = 124G空闲内存 = 248 个 1G内存VPS
这也是为什么市面上基于KVM虚拟化的VPS价格越来越低的原因
目前基于KVM的超售配置,都是使用的KSM
KSM 全称是 (kernel same-page merging).
原理是将相同内容的内存页面合并, 比如我们运行了10个windows
这10个Windows内核占用的部分内存 数据是完全一样的,原来10份数据合并为一份
这样就减少了内容使用
KSM是由Redhat红帽开发的, 内置在Linux内核2.6.32版本以及以上
但是默认并未开启
所以我们需要开启它
1
|
/etc/init.d/ksmtuned start
|
设置开机启动
1
|
chkconfig ksmtuned on
|
其他命令
1
|
start|stop|restart|force–reload|condrestart|try–restart|status|retune|help
|
开启后需要等待后端分析和处理
大约1个小时左右,你会发现内存使用降低了30% – 60%
又可以开通新的VPS了?
特别注意:
CPU和内存可以超售,硬盘不可以
如果想要硬盘也可以,需要使用专门外部的存储设备,有些设备支持这种操作
比如分配给用户100G,他使用50G, 在存储系统你实际占用就是50G,而不是默认分配100G