云计算基础-计算虚拟化-内存虚拟化

这篇具有很好参考价值的文章主要介绍了云计算基础-计算虚拟化-内存虚拟化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内存的工作原理

内存在物理上是由内存卡提供的,也就是我们俗称的内存条,内存条提供了物理内存。

在物理内存之上还有虚拟内存,虚拟内存操作系统给程序分配的一段连续的内存,属于逻辑上的概念。

虚拟内存和物理内存之间会有一个映射关系,这个映射关系我们称之为页表,通过页表,软件可以把数据真实的写到物理内存里

比如在电脑上打开一个程序,比如打开微信,这时操作系统会给微信分配一段连续的虚拟内存空间,但是这个虚拟内存空间它仅仅是一个逻辑上的概念,当这个程序需要往物理内存里写东西的时候,它首先找到虚拟内存,通过虚拟内存和物理内存之间映射关系的页表,软件就可以把数据真实的写到物理内存里。对于软件来说,它本身能看到的只是分配给它的这个虚拟内存空间,它是看不到底层的物理内存的,

总结一下:

· 物理内存:内存条,内存数据真实存放的物理设备。

· 虚拟内存:操作系统给应用程序分配的一段连续的虚拟内存空间,并没有真实的实体存在。

· 页表:记录了物理内存和虚拟内存之间的映射关系

云计算基础-计算虚拟化-内存虚拟化,云计算

内存虚拟化架构

当在物理机上起了一台虚拟机之后,虚拟机要将数据写入到物理内存需要经历三次映射。如下图,所以为什么虚拟相比物理机性能是有下降的,仅内存读写的操作,原先只需要经过一次映射,而虚拟机则需要经过三次映射

· 宿主机物理内存地址:物理机上内存条的物理内存地址

· 宿主机虚拟地址:Host OS给运行在物理机上的应用分配的虚拟内存地址,Hypervisor本质上也是操作系统上的一个应用。

· 客户机物理地址:虚机的物理内存地址,因为虚拟机作为一台完整的设备也是有物理内存地址的,只不过虚机的物理内存是由Hypervisor使用宿主机给Hypervisor分配的虚拟内存地址模拟出来的。

· 客户机虚拟地址:虚机的操作系统GuestOS给运行在 虚机上的应用分配的虚拟内存地址。

第一次映射:客户机系统页表--虚拟机的虚拟内存地址到虚拟机的物理内存地址(Hypervisor模拟)

第二次映射:内存槽--虚拟机的物理内存地址(Hypervisor模拟)到物理机的虚拟内存地址

第三次映射:宿主机系统页表--物理机的虚拟地址到宿主机物理地址

云计算基础-计算虚拟化-内存虚拟化,云计算

MMU虚拟化

传统MMU(内存管理单元)负责虚拟地址映射为物理地址,主要包含两种技术

· Software technique:shadow page tables(影子页表)

· Hardware technique:Inter EPT and AMD RVI

shadow page tables(影子页表)

· 影子页表是VMM(Hypervisor)在宿主机内核中为虚拟机进程维护了一个虚拟机的虚拟地址到宿主机物理地址的页表,这个页表和虚拟机内核的页表同步更新。

虚拟机上的应用想要调度底层物理硬件的物理地址需要经理三次映射:

· 虚拟机的虚拟内存地址到虚拟机的物理内存地址

· 虚拟机的物理内存地址到物理机的虚拟内存地址

· 物理机的虚拟内存地址到物理机的物理内存地址

每次虚拟机应用要在内存中读写数据,都需要经历三次映射,这样工作量太大,这时技术人员就想出一个办法,在这三张页表都建立完成后,再创建一张新的页表:影子页表,影子页表记录了虚拟机的虚拟内存地址到物理机的物理内存地址之间的映射。这样虚拟机读写内存时不需要经过三次查找,而是直接读第四张影子页表,就可以直接从虚拟机的虚拟内存地址直接到物理内存地址,极大提升了虚拟机应用的内存读写效率

云计算基础-计算虚拟化-内存虚拟化,云计算

影子页表适合于一次写入、频繁读取的场景。

随着互联网技术的发展,影子页表在一些特定的场景下页出现了一些其他的问题。举个例子:

比如说网络游戏,在网络游戏中多人在线上同时玩,网络游戏公司为了防止大家作弊,比如说英雄的金钱、血量等,这些其实都已一个一个的数据存在内存中的,对于一些黑客来说,他就可以找到那个内存然后更改这个内存中的数据,这样的话就会影响游戏的公平性。

所以游戏公司开发了一个动态内存技术,将游戏中的一些关键数据动态的存储在内存中,它可能每秒就变一次,第一秒在第一个内存空间里,第二秒系统就自动的把它随机挪到另一个物理内存空间里。

对于这种场景,影子页表就会产生一个巨大的问题,因为影子页表是三张页表建立完成后,影子页表直接将虚拟机的虚拟内存地址映射到物理机的物理内存地址,而动态内存的场景下,因为数据在内存中是动态存放的,所以,内存中的数据每更新一次存放位置,三张页表也需要更新映射关系,因为有影子页表的存在,还要等三张页表更新完成后再更新第四张影子页表。

所以在这种动态内存场景中,如果用之前的笨方法,映射三次,那它的处理时间就是延长三倍,如果用影子页表,它还要创建第四张页表,在这种场景下,它不仅没有提升性能,反而增加了负担。所以影子页表适合于一次写入、频繁读取的场景。

所以这个技术随着IT技术的发展,在一些特定的场合下是没有使用空间的

Inter EPT and AMD RVI

· 基于硬件的内存虚拟化技术,也叫硬件辅助内存虚拟化,英特尔的叫Inter EPT,AMD的叫 AMD RVI,主要实现了虚拟机虚拟地址到宿主机物理地址“一步到位”的自动映射

Inter EPT and AMD RVI在CPU里新增了一个硬件:TLB(Translation look-aside buffer,转换查找缓冲器)

原先虚拟机上的应用需要调度物理内存需要经历三次映射,这三次映射它的运算都是要靠CPU和内存完成的,这三次映射都会占用一部分CPU和内存资源,从而造成了虚机性能下降。

现在硬件辅助内存虚拟化增加了一个专门的硬件TLB,这个硬件的功能就是完成那三次映射运算的,这样那三次映射的运算就不用再占用CPU和内存资源,这个专用的硬件是针对映射算法进行了专门的优化的,它的转换速度是非常快的。这个技术就对于提升虚拟机内存虚拟化后的性能有一个显著的帮助

这个技术也是需要在BIOS里开启,有些服务器开了CPU虚拟化会同步把内存虚拟化也开启,有些需要单独打开

Inter EPT and AMD RVI在CPU里新增了一个硬件:TLB(Translation look-aside buffer,转换查找缓冲器)

原先虚拟机上的应用需要调度物理内存需要经历三次映射,这三次映射它的运算都是要靠CPU和内存完成的,这三次映射都会占用一部分CPU和内存资源,从而造成了虚机性能下降。

现在硬件辅助内存虚拟化增加了一个专门的硬件TLB,这个硬件的功能就是完成那三次映射运算的,这样那三次映射的运算就不用再占用CPU和内存资源,这个专用的硬件是针对映射算法进行了专门的优化的,它的转换速度是非常快的。这个技术就对于提升虚拟机内存虚拟化后的性能有一个显著的帮助

这个技术也是需要在BIOS里开启,有些服务器开了CPU虚拟化会同步把内存虚拟化也开启,有些需要单独打开

云计算基础-计算虚拟化-内存虚拟化,云计算文章来源地址https://www.toymoban.com/news/detail-829664.html

到了这里,关于云计算基础-计算虚拟化-内存虚拟化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云计算基础-虚拟化概述

    虚拟化是一种资源管理技术,能够将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来并可供分割、组合为一个或多个逻辑上的资源。这种技术通过在计算机硬件上创建一个抽象层,将单台计算机的硬件元素(处理器、内存、存储等

    2024年02月19日
    浏览(29)
  • 【云计算基础知识2】计算虚拟化

    B站视频 虚拟化技术:计算虚拟化、存储虚拟化、网络虚拟化。 计算虚拟化的分类及作用 1、 CPU虚拟化:保障CPU资源的合理调度以及VM上的指令能够正常高效的运行。 2、 内存虚拟化:保障内存空间的合理分配、管理、隔离以及高效可靠的使用。 3、 I/O虚拟化:保障VM的IO操作

    2024年02月04日
    浏览(45)
  • 【云计算与虚拟化】第五章 实验一 vCenter Server的高级功能—vMotion、虚拟内存、虚拟CPU、磁盘分配及资源池

    实验一    vCenter Server的高级功能—vMotion、虚拟内存、虚拟CPU、磁盘分配及资源池 1.通过vSphere client 客户端登陆vCenter服务器 (1)再次新建一个共享存储,iSCSI类型的,大小60G,名称为iSCSI-2。 (2)将运行在ESXi01主机上的虚拟机,在关机的状态下,数据存储位置不动,运行的

    2024年02月04日
    浏览(37)
  • 【云计算基础知识3】存储虚拟化

    B站视频 引入:虚拟机的存储资源从何而来?上层虚拟机如何使用? 存储虚拟化就是将多个存储介质(如硬盘、RAID)通过一定技术集中起来,组成一个存储池(Storage Pool)并进行统一管理。从主机或工作站角度,看到的就不是多个硬盘,而是分区或是卷,就好像是一个超大容量(≥

    2024年02月03日
    浏览(35)
  • 【云计算基础知识1】虚拟化与容器

    B站视频 定义:一种计算机资源管理技术,将各种IT实体资源抽象、转换成另一种形式的技术。 作用:将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可以运行不同操作系统,提高计算机工作效率。 云计算以 虚拟化 为核心技

    2024年02月05日
    浏览(39)
  • 云计算基础-虚拟化技术的发展和详细研究

    为了提高大型机的资源利用率和效率。在 20 世纪 60 年代,大型机是昂贵而稀缺的计算资源,为了让多种业务应用能够共享并充分利用大型机的集中化计算能力,IBM 等公司开发了虚拟化技术,将大型机划分为多个逻辑分区,每个分区可以运行一个独立的操作系统和应用。 为了

    2024年02月06日
    浏览(35)
  • 服务器虚拟化及云计算基础实验

    软件环境:Windows 10 X64 16G及以上 虚拟机环境:VMware workstation 16 Pro以上版本 or Virtual Box 6.1以上版本 ps:这是课堂老师布置的作业,觉得挺有意思,课后也花了点时间去实现,觉得挺有意义的,便记录下来。如果有做的不对的地方欢迎各位指正! 实训要求 在部分极端环境下,尽

    2023年04月08日
    浏览(39)
  • 云计算基础-存储虚拟化(深信服aSAN分布式存储)

    分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘,实现服务器存储资源的统一整合、管理及调度,最终向上层提供NFS、ISCSI存储接口,供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。 每秒钟的IOPS数,该指标主要用于评价小块

    2024年02月19日
    浏览(31)
  • 云计算:从基础架构原理到最佳实践之:虚拟化技术与容器化

    作者:禅与计算机程序设计艺术 作为一名资深软件工程师、架构师、CTO或者云计算相关技术人员,如果想要提升自己对于云计算的理解和掌握能力,那么文章将会非常有帮助。文章将从云计算的最底层——基础架构开始介绍,向高级用户展示如何利用云服务提供商提供的基础

    2024年02月08日
    浏览(34)
  • 硬件辅助虚拟化 之EPT(内存虚拟化)介绍

           这篇内容,通过从操作系统的虚拟地址介绍到虚拟机层面的内存虚拟化技术,并介绍这两种技术之间的关联。        (以下实例都以intel 64位处理器和win10 x64操作系统位例。 ) 一、虚拟地址        在保护模式下,每个进程拥有自己独立的虚拟内存,程序的代

    2024年02月02日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包