云服务器配置中的“2核4G”“4核8G”和家用电脑的CPU核数、内存大小相同吗?这是令很多童鞋都感觉到困惑的问题。尤其是在选择云服务器配置时,经常用家用电脑的配置来衡量。object哥哥用阿里云Intel(R)Xeon(R)Platinum 8163 CPU@2.5GHz(虚拟2核)、4G内存、1M带宽的云服务器(win2012系统)和 Intel(R)Core(TM)i5-5275U CPU@2.7GHz (双核四线程)、4G内存配置的笔记本(win7系统)做过比较,云服务器虽然远程连接,但在任务处理的流畅度上比笔记本好很多。
云服务器虚拟化技术KVM和Xen简介
要说清楚云服务器配置中的“2核4G”“4核8G”和家用电脑的CPU核数、内存大小的不同,就不得不说说云服务器的虚拟化解决方案KVM和XEN。阿里云、腾讯云服务器采用的是KVM虚拟化解决方案,华为云服务器采用的是XEN虚拟化解决方案。
KVM虚拟化解决方案
KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。
Xen虚拟化解决方案
Xen 也是Linux下的一个虚拟化解决方案,也将很快被编入内核中。Xen的实现方法是运行支持Xen功能的kernel,这个kernel是工作在 Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。
KVM和XEN虚拟化解决方案对比
Xen是较早出现的虚拟化技术,是“第一类”运行在裸机上的虚拟化管理程序(Hypervisor),也是当前相当一部分商业化运作公司的基础技术,其中包括Citrix系统公司的XenServer和Oracle的虚拟机,Xen同时支持全虚拟化和准虚拟化(需要修改客户机操作系统,而修改过的客户机操作系统能有更好的性能)。
KVM由以色列公司Qumranet开发,已经被Linux核心组织放入Linux的内核里面,其使用的x86处理器至少需要包含其中一项硬件辅助虚拟化技术(Intel-VT或AMD-V)。相比较Xen来说,KVM简化了很多。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。
云服务器和家用电脑CPU核心数的区别
以KVM虚拟化解决方案为例,允许用户为每个虚拟机设置多个虚拟内核,为了保证性能,每个VM虚拟核数建议如下:
- 每个VM只使用一个核,对于多核要考虑到数据缓存命中率,建议使用cpu绑定,并且不能跨cpu,否则会导致缓存效率降低并且跨CPU节点访问缓存的开销;
- 每个VM的虚拟cpu核数量不要高于物理服务器可提供的真实cpu核数量,如果超配了cpu核,会导致持续的cpu切换,性能降低明显。
物理服务器的处理器都支持硬件虚拟化(大多数笔记本和台式机的CPU也支持),但是如果分配了超过硬件支持的虚拟机数量,就会出现CPU资源竞争。在KVM Performance Limits for virtual CPU cores一文中个提供了一个经验数据: 每个物理服务器cpu核支持8个虚拟机cpu核 。即,物理服务器是2个cpu核的环境,可以运行16个单vcpu的虚拟机,或者8个使用双vcpu的虚拟机。这就是在云服务器测评时,显示的VCPU核数。
云服务器和家用电脑内存的区别
启动KVM虚拟机时候,可以定义VM使用的内存大小。所有运行在主机上的虚拟机的内存总量可以超过物理服务器的内存配置,有关KVM内存限制的大多数信息汇总得到的经验是:可以最多超配到物理服务器的150% (包括物理主机使用的内存)。但是如果每个虚拟机运行的应用程序消耗了所有内存,就会导致大量的内存交换,用户体验和虚拟机性能极差。
例如:您的物理服务器有8GB内存,则可以运行10个1GB内存的虚拟机,这样加上物理服务器操作系统运行需要的2GB内存,就可以实现实际物理内存的150%超配。在这个虚拟机配置场景中,假设所有guest虚拟机运行的应用程序消耗了每个虚拟机的所有内存,就会导致极差的性能。
本站所有内容,如有版权、侵权等问题,请及时联系本站做删除。发布者:聚云网,转载请注明出处:https://www.juyun.top/5079.html