CPU虚拟化
vcpu个数 = cpu个数 * 每颗cpu核心数 * 每核心线程数
例如:物理服务器上有两颗cpu,每颗cpu有2核心6线程;则vcpu=2×2×6=24
就比如我们在公有云上租用ECS时选用CPU规格都是以vcpu为单位。
在公有云上我们作为租户时看不到算力分配规则的,而在FC上可用规定
内存虚拟化
当虚拟机访问宿主机物理内存时,需要进行多次地址转换。GVA --> GPA --> HVA -->HPA
如此一来访问内存效率低下,而通过影子页表可以实现客户机虚拟地址到宿主机物理地址的直接转换。GVA --> HPA 以此提高性能。
TLB的作用:减少地址转换,以此提高性能。
瓶颈:TLB的存储空间有限,保留的映射关系较少,哪如何在TLB表容量不变的情况下能够保存更多的映射关系呢?答案:扩大内存页的大小(大页)。
原理:TLB保存一条映射关系,这条映射关系就能影响4k大小的内存,如果查找的数据刚好在这4k里面,那么直接命中,无需再进行地址转换,以此提高性能。所以扩大内存页的大小,能使命中率提升。
TLB表对于映射的管理:①热数据更倾向保留②冷数据可能清除以保留热数据
大页适合数据库场景,命中率越高,性能越好。
Linux查看内存页大小:getconf -a |grep -i page
查看进程所占虚拟内存:pmap 进程号
查看内存使用情况:free -m
查看大页:systcl -a |grep huage (默认2M)
修改大页:vim /etc/sysctl.conf
vm.nr_hugepages = <大页个数>
参数生效:sysctl -p
超内存分配
通过内存复用技术实现的内存的超额分配。
内存共享,内存置换,内存气泡三种方式,个人无法手动选择哪种方式来实现内存复用。
了解HA和迁移
HA:大多数情况是在被动局面下。(物理机宕机,业务会短暂中断)
迁移:大多数情况下是主动迁移,真正保证业务的连续性。(物理机正常情况下热迁移虚拟机,业务不会中断)
热迁移:在线迁移,不停机的情况下做的迁移,不会中断业务,用户无感知。
虚拟机热迁移原理:
1.将虚拟机配置和设备信息传送到目标主机上;
2.传送虚拟机内存:将虚拟机迁移时的初始内存及内存变更分片同步到目标主机上;
3.暂停源虚拟机并传送状态,在原主机上暂停虚拟机,将最后的变更内存传到目标主机;
在目标主机上恢复虚拟机,并在原主机上停止虚拟机。
虚拟机热迁移应用场景:
① 主机负载较重或者较轻场景下,通过虚拟机热迁移实现负载均衡;
② 主机进行计划性停机维护;
③ 当多数主机负载过轻时,可以将虚拟机迁移整合,以减少主机数量,提高资源的利用率,实现节能减排。
冷迁移:停机的情况下做的迁移,会导致业务中断。