CN117591252A - 性能优化的任务复制和迁移 - Google Patents
性能优化的任务复制和迁移 Download PDFInfo
- Publication number
- CN117591252A CN117591252A CN202311007033.4A CN202311007033A CN117591252A CN 117591252 A CN117591252 A CN 117591252A CN 202311007033 A CN202311007033 A CN 202311007033A CN 117591252 A CN117591252 A CN 117591252A
- Authority
- CN
- China
- Prior art keywords
- processing element
- microarchitectural
- information
- extracted
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005012 migration Effects 0.000 title claims abstract description 22
- 238000013508 migration Methods 0.000 title claims abstract description 22
- 230000010076 replication Effects 0.000 title abstract description 6
- 238000012545 processing Methods 0.000 claims abstract description 150
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 19
- 239000000872 buffer Substances 0.000 claims description 34
- 238000013519 translation Methods 0.000 claims description 9
- 238000010367 cloning Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 abstract description 28
- 238000005516 engineering process Methods 0.000 abstract description 19
- 230000000977 initiatory effect Effects 0.000 abstract description 2
- 230000003362 replicative effect Effects 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 67
- 230000006870 function Effects 0.000 description 24
- 238000004590 computer program Methods 0.000 description 8
- 230000014616 translation Effects 0.000 description 7
- 230000006854 communication Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及性能优化的任务复制和迁移。该技术的各方面涉及当正在运行的应用被克隆(例如,为了更快的功能启动)、迁移(例如,到另一核或机器)或被持久化到辅助存储装置时能够复制微架构场境信息的方法和系统。该方法例如可以包括从第一处理元件提取微架构信息、将所提取的微架构信息传输到第一操作系统、由第一操作系统将所提取的微架构信息转发到第二处理元件,并且使用所提取的微架构信息在第二处理元件处实例化进程。
Description
相关申请的交叉引用
本申请要求2022年8月10日提交的美国临时专利申请No.63/396,693的申请日的权益,该临时专利申请的公开内容通过引用并入本文。
技术领域
本公开涉及性能优化的任务复制和迁移。
背景技术
对于某些软件应用来说,启动时间对于提供令人满意的低延迟用户体验来说,如果不是关键的,也是一个重要的组成部分。例如,当在云或分布式计算环境中使用功能作为服务时,这种体验可能会受到影响,因为同一功能经常被复制和实例化多次。在采用实时迁移的情况下,这种体验也可能会受到影响。例如,中央处理单元通常包含有关正在运行的应用或程序和/或虚拟机(VM)的场境(context)的信息,这些信息在该应用被复制/克隆或迁移时丢失。例如,该信息可以包括关于虚拟到物理的存储器转换、分支预测历史等的场境,当应用或VM由于克隆或迁移而重新启动时,需要在新的场境中重新构建这些场境。在应用或程序被实例化时使该信息可用可能会影响启动时间。
发明内容
本技术的各方面涉及当正在运行的应用例如为了更快的功能启动而被克隆、被迁移到例如另一核或机器、或者被持久化到辅助存储装置中时使得能够复制微架构场境信息的方法和系统。微架构场境信息通常包括与运行应用的处理器相关联或驻留在其上的信息。复制该信息作为克隆、迁移或存储操作的一部分允许应用的后续实例化更快地发生,因为新处理器或虚拟机可以在实例化和/或运行应用时使用复制或拷贝的场境信息。
所公开技术的一个方面包括微处理器,该微处理器包括能够对运行的应用或程序、VM和出于例如为了更快的功能启动而被克隆、被迁移到另一机器或被持久化到辅助存储装置中的过程中的其他软件的微架构场境信息进行复制的逻辑。在一个示例中,微处理器、处理元件或处理器遍历其内部转换后备缓冲器(TLB)、分支预测器和其他内部状态机,并且提取微处理器的内部状态。然后,内部状态被复制到虚拟寻址的存储器缓冲器中并被传递到操作系统(OS),OS能够将这种信息传递到目的地,例如另一主机、OS或处理器,以改进恢复微架构状态的速度。
所公开技术的一个方面是一种方法,包括从第一处理元件提取与在第一处理元件上运行的程序相关联的微架构信息;将所提取的微架构信息传输到与第一处理元件相关联的第一操作系统;由该第一操作系统将所提取的微架构信息转发至第二处理元件;以及使用所提取的微架构信息在第二处理元件处实例化进程。根据本技术的该方面,所提取的微架构信息包括关于第一处理元件的内部状态的信息。所提取的微架构信息可以包括与转换后备缓冲器(TLB)或分支预测器缓冲器相关联的信息。另外,转发的步骤可以作为在第二处理元件上对程序进行克隆的一部分被执行。转发的步骤可以作为将程序迁移到第二处理元件的一部分被执行。此外,实例化进程可以包括在与第二处理元件相关联的第二操作系统处接收所提取的微架构信息,并且由第二操作系统将所提取的微架构信息传输到第二处理元件。
此外,根据该方法,第一处理元件和第二处理元件可以驻留在第一主机上。第一处理元件可以驻留在第一主机上并且第二处理元件可以驻留在第二主机上。第一主机充当实时迁移事件的源节点,并且第二处理元件充当实时迁移事件的目标节点。
所公开技术的一个方面是一种系统,其包括运行程序的第一处理元件,第一处理元件提取与程序相关联的微架构场境信息;并且其中,第一操作系统将所提取的微架构信息传送至第二处理元件。第二处理元件使用所提取的微架构信息对程序进行实例化。所提取的微架构信息可以包括关于第一处理元件的内部状态的信息。所提取的微架构信息可以包括与转换后备缓冲器(TLB)或分支预测器缓冲器相关联的信息。
根据所公开技术的该方面,第一处理元件传送所提取的微架构信息作为在第二处理元件上克隆程序的一部分。第一处理元件可以传送所提取的微架构信息作为将程序迁移到第二处理元件的一部分。
另外,与第二处理元件相关联的第二操作系统接收所提取的微架构信息并将所提取的微架构信息传输到第二处理元件。第一处理元件和第二处理元件可以驻留在第一主机上。第一处理元件可以驻留在第一主机上并且第二处理元件可以驻留在第二主机上。第一主机可以充当实时迁移事件的源节点,并且第二处理元件充当实时迁移事件的目标节点。
附图说明
图1说明性地描绘了根据所公开的技术的一方面的方法或过程。
图2说明性地描绘了根据所公开的技术的一方面的处理元件。
图3说明性地描绘了根据所公开的技术的一方面的系统。
图4说明性地描绘了根据所公开的技术的一方面的云计算环境或分布式系统。
图5是根据本公开的一方面的示例计算设备的示意图。
具体实施方式
该技术更具体地涉及捕获与在云平台或分布式计算架构类型环境中运行的应用相关联的微架构信息。有两个示例用例可用于说明该技术的应用。第一个用例涉及虚拟机或应用的实时迁移,并且第二个用例涉及复制应用或虚拟机,例如,将功能实现为服务,诸如相对小的JavaScript代码在网页上执行功能。所公开的技术涉及在微架构级别复制场境信息并将该信息从源微处理器传送到用于运行应用或功能的另一实例化的目标微处理器。
例如,当应用在云或分布式计算架构类型环境中正在运行时,捕获虚拟存储器空间如何映射到物理存储器空间的信息在硬件级别被保留并定期更新。当发生实时迁移时,将该微架构数据传输到目标计算机可能是有益的。具体地,正在运行虚拟机的源保持对虚拟存储器如何转换到物理存储器的跟踪。该详细信息通常在转换后备缓冲器(TLB)中被跟踪。在当前的实时迁移方法中,该缓冲器中的信息通常不被传输,因为这种信息通常由处理器保密。所公开的技术包括捕获和传输该信息作为实时迁移的一部分。
这可能是有益的,因为TLB中的信息通知处理器在哪里访问由在虚拟机上运行的应用使用的特定信息数据。虽然目标机器可能重新创建与TLB相关联的微架构状态,但这需要时间,从而减慢了过程。由于TLB往往很大,这种情况尤其真实。通过捕获该微架构数据并将其提供给目标,目标然后使用它来重新创建到其物理存储器的映射,而无需确定源处虚拟存储器的微架构状态。
该技术可以被实现为例如一种方法,其中正在运行应用的处理器对其TLB、分支预测器和/或其他内部状态机进行轮询、访问或遍历以提取这些机器的内部状态。所提取的状态或微架构场境信息然后被复制到虚拟寻址的存储器缓冲器中,并被传递到操作系统,例如主机操作系统。然后操作系统可以将该信息传输到目标或目的地节点,例如另一主机或操作系统、处理器或存储装置。在目标或目的地节点处,状态或微架构场境信息然后可以用于恢复状态或微架构场境信息以反映从其复制信息的原始节点处的情况。这将导致能够更快地实例化被克隆、迁移或移动到存储的应用。
前述示例是参考虚拟寻址或索引的存储器缓冲器来描述的。在其他示例中,该技术可以使用物理寻址或索引的存储器缓冲器来实现。另外,这样的缓冲器可以是连续的或不连续的。
作为另一示例用例,可以采用该技术来提高应用被实例化的速度。例如,Web功能通常经由程序来实现,例如相对少量的代码行或Java Script——微程序,它们经由VM在云平台上被实例化。作为提供功能作为服务的一部分,主机可能必须多次复制微程序。这些程序的多个实例可以在同一处理器上运行。在该技术的一方面,运行微程序的处理器的微架构状态可以被复制和存储,以便允许程序的后续实例被更快地实例化。在这方面,处理器可以基于处理器地址空间中的存储器缓冲器来生成状态列表。这些状态可以包括虚拟存储器到驻留在TLB中的物理存储器的转换,这将提供当前正在使用的存储器地址的列表。虚拟地址和物理地址可以被返回到操作系统,然后操作系统可以使用它们来创建程序或Web功能的新实例。通过在TLB中提供微架构信息,不需要为微程序的每个实例重新创建程序的新副本的处理器地址状态。
所公开的技术应用的另一方面是分支预测器。在编程中,每五个指令左右就产生一个分支。这导致需要提前预测。分支预测器有一个存储这些预测的缓冲器。如果在使用功能作为服务时将这些预测作为实时迁移或复制的一部分进行传输,则在实例化程序的新副本时可以节省时间。
所公开的技术可以经由晶体管逻辑以硬件来实现。它也可以用微代码来实现。
如今,微架构细节的传输通常被认为是不可行的,因为这样的信息必然驻留在芯片级别,并且即使被收集,也不会被提取并传递到OS,因为假设的是那些细节在分布式类型计算环境中的另一节点处将不会是有用的。该信息通常被视为是专有的。这种情况是因为集成电路(IC)或处理器是由与网络或云提供商不同的实体提供的。实际上,不同的实体向系统供应不同的部件,并且鉴于不能保证例如在目标节点处会有类似的硬件——例如处理器——并且IC供应商希望保护其专有信息,不鼓励将该信息通过硬件和软件架构复制并传递到另一节点。然而,当这种信息被复制并传递通过另一节点时,它可能在性能——例如速度、可靠性——方面证明是有益的。
图1说明性地描绘了根据所公开的技术的一方面的方法或过程100。该过程包括使用处理元件提取与在处理元件上运行的实例化的程序或应用相关联的微架构场境信息,如经由处理块110所指示的。提取可以包括:从TLB、分支预测器缓冲器读取、选择、轮询或获得信息,和/或更一般地,以及在实现程序时在处理元件内的元件如何逻辑上互连。如下文更详细讨论的,处理元件可以包括微处理器、处理器、处理设备或电路元件的组合,例如集成电路,其被配置为实行或执行与程序或应用相关联的指令。微架构可以包括用于执行给定指令集架构(ISA)的数字逻辑。指令集架构通常包括处理器的编程模型,并且包括例如指令、执行模型、寄存器、地址和数据格式、以及构成处理器/处理元件/处理设备的其他元件。微架构包括处理器/处理元件/处理设备内的元件以及这些元件如何连接和操作以实现指令集架构。微架构可以包括寄存器、存储器、算术逻辑单元、多路复用器、转换后备缓冲器(TLB)、分支预测器和任何其他数字逻辑块或元件的组合实施。这些数字逻辑块或元件一起形成处理元件、处理设备、微处理器或处理器。除非另有指示,否则术语处理元件、处理设备、微处理器或处理器被同义地使用。
与在处理元件上实例化或运行的程序或应用相关联的指令在处理元件的指令集架构的框架内实现。这导致经由与处理元件相关联的一个或多个数字逻辑块实现的一系列操作。程序在给定的指令集架构内的实施创建关于正在运行的程序或VM的场境的信息。除非被保留,例如被复制,否则如果程序或VM被迁移或克隆(例如,当程序为另一客户端运行时),该信息丢失。
在所公开的技术的一方面中,处理元件将微架构信息传送到与处理元件和/或程序相关联的操作系统(OS),如经由处理块120所指示的。该处理元件可以被认为是源或第一处理元件。该处理元件可以通过经由主计算机内的内部总线将信息发送到OS来将微架构信息传送到OS。可替代地,处理元件可以将微架构信息存储在可由OS访问的存储位置处,例如一个或多个虚拟寻址的存储器缓冲器处。作为另一替代,处理元件还可以利用一个或多个物理寻址或索引的存储器缓冲器。
OS然后可以将微架构信息提供给第二或目标处理元件,该第二或目标处理元件可以在运行程序的另一实例化时使用它,如处理框130处所指示的。如下面更详细讨论的,目标处理元件可以包括驻留在与提取信息的源处理元件相同的主机中的处理元件。可替代地,它可以包括不同主机中的处理元件,例如同一数据中心或不同数据中心中的不同主机。
一旦接收到微架构信息,第二或目标处理元件可以使用微架构信息来实例化程序或应用的副本,如处理框140所指示的。根据本公开的该方面,因为源处理元件处的微架构信息被提供给目标处理元件,与源处理元件相关联的场境信息用于更有效地实例化和运行目标处的程序。这在程序或VM的多个副本被运行以向不同客户端提供相同功能的情况下,可以证明是有利的。当程序或VM作为实时或非实时迁移的一部分被迁移到不同的主机时,这也可以证明是有利的。在这两种用例的任一个中,目标OS都可以保留微架构信息并根据需要使其可用。无论用例如何,所公开的技术都允许改进需要在处理元件上运行程序或应用的新实例化的速度。发生这种情况主要是因为目标处理元件处的微架构场境信息的可用性。因此,目标处理元件不需要从头开始生成这样的场境信息。
图2说明性地描绘了根据本公开的一方面的处理元件200。处理元件200通常驻留在主机中。主机可以包括多于一个的处理元件200。主机内的每个处理元件200可以在实现VM时与OS分开通信。处理元件200包括被耦合到微架构场境信息块214和OS218的逻辑功能210。逻辑功能210包括提取内部状态信息221、复制所提取的状态内部信息225以及将复制的状态内部信息229输出到OS218的功能。如所示,复制功能225包括缓冲器234。缓冲器234可以包括存储复制的状态内部信息的虚拟寻址存储器缓冲器。
提取功能221从微架构场境信息块214获取——例如读取、轮询、拉取或访问——微架构场境信息。微架构信息在框238处被描绘为包括TLB、分支预测或更一般地与在处理元件200上运行或实例化的程序或应用相关联的数字逻辑信息。该信息可以驻留在处理元件200上的缓冲器中,该缓冲器构成例如微架构场境信息块214。如所讨论的,处理元件配备有TLB和分支预测器缓冲器,其跟踪虚拟存储器如何跟踪到物理存储器以及在处理元件200上运行的指令的分支历史。此外,微架构场境信息块214还可以包括跟踪在处理元件上运行的程序或应用的数字逻辑的缓冲器。数字逻辑信息可以包括例如处理元件200上的ALU、寄存器、高速缓存、存储器、调度器等之间的连接或处理流程,因为处理元件200进行操作以实现与程序或应用相关联的一个或多个指令,例如汇编程序。一般而言,微架构场境信息包括允许指令集被执行的信息。
一旦该信息被提取功能221提取,它就被复制或存储为复制功能225的一部分。如先前所讨论的,所提取的微架构场境信息可以被存储在虚拟存储器缓冲器234中。如经由功能块229所指示的,该信息然后可以被输出到OS218。例如,微架构场境信息可以在处理元件200内的数据总线上被输出到例如其中它能够由OS218检索的诸如例如RAM的存储器中的位置。可替代地,OS218可以读取缓冲器234中的信息。在后一种情况下,输出功能229可以包括输入/输出(I/O)接口,其基于OS读取请求从缓冲器获取信息并将该信息呈现给OS218。一旦OS218获得微架构场境信息,它就可以将其存储在缓冲器244中,并且该缓冲器244也可以是虚拟存储器缓冲器,并且与和微架构场境信息相关联的程序或应用相关联。OS218可以例如将微架构场境信息存储为与在处理元件200上运行的程序或应用相关联的存储器映射的一部分。然后,当OS218实例化程序的另一副本或将运行的服务从第一主机迁移到另一主机时,OS218可以使用该信息。
例如,图3说明性地描绘了系统300,其中微架构场境信息在主机之间传输。第一或源主机304包括OS 308、处理元件312、存储器316、存储装置320和通信接口324。虽然在第一主机304(以及第二主机)中仅示出了一个处理元件312,但是主机可以包括若干处理元件。这样,所公开的技术可以包括第一或源处理元件和第二或源处理元件驻留在同一主机中的用例。
根据所公开的技术的一方面,主机304中的处理元件312根据图2的处理元件200来配置。这样,处理元件312提取与在主机304上正在运行的并且使用处理元件312的程序或应用相关联的微架构场境信息。处理元件312可以例如用于实例化正在支持一个或多个客户端的基于云的服务的一个或多个VM。然后,处理元件312和OS 308可以进行通信,使得微架构信息被复制并存储在其被输出或OS 308可访问的地方。提取、复制和允许OS 308访问微架构场境信息的功能可以使用总线328发生。
具体地,处理元件312可以在其上运行的程序的场境中提取与其数字逻辑相关联的微架构场境信息,并且通过总线328将所提取的信息传送到存储器316。存储器316可以包括物理存储器,例如RAM,其被映射到可由OS 308访问的虚拟存储器。换句话说,存储器316可以被认为是虚拟存储器映射。在这方面,虚拟存储器映射可以包括包含微架构场境信息的区域。OS 308然后可以访问存储器316或相关的存储器映射并且经由通信接口324将微架构场境信息传送到局域网(LAN)和/或广域网(WAN)340,在该情况下其被传送到第二或目标主机354。附加地,OS 308可以将微架构场境信息存储在存储装置320中。该信息可以与在处理元件312上正在运行的程序或应用相协调地或者随着微架构场境信息改变而在存储装置320中周期性地更新。这样的更新还可以周期性地发生,例如,以毫秒、秒或分钟的时钟循环的次序发生,或者是用户可设置的。
第二或目标主机354可以与第一或源主机304类似地配备。具体地,第二或目标主机354包括OS 358、处理元件362、存储器366和存储装置378。第二或目标主机354可以从源或第一主机304接收微架构场境信息。在目标主机354处从源主机接收的微架构场境信息可能遇到OS 358,其存储在存储装置378中以供处理元件362使用。例如,在实时迁移的情况下,可以由目标主机354使用微架构场境信息来实例化VM,该VM将替换运行与微架构场境信息相关联的程序的VM。在克隆的情况下,目标主机354可以将微架构场境信息存储在存储装置378中,并在其实例化VM时进行检索以支持与微架构场境信息相关联的功能或程序。
如上所论述,源主机304和目标主机354可以通过LAN和/或WAN 340进行通信。LAN和/或WAN 340更一般地表示网络340。在源主机304和目标主机354位于同一数据中心的情况下,网络340可以包括LAN。在源主机304和目标主机354不在同一数据中心的情况下,网络340可以包括LAN和WAN。此外,在这方面,在一些实例中,处理元件304和354可以驻留在同一主机中。更具体地,在函数被复制或克隆的情况下,或者在程序的多个实例正在被运行的情况下,两个处理元件可以都位于同一主机上。通常,主机包括多个处理元件并且能够同时支持许多VM。
图4说明性地描绘了根据所公开的技术的一方面的云计算环境或分布式系统400。分布式系统400包括执行虚拟计算环境406的资源404(例如,硬件资源404)的集合402。虚拟计算环境404包括虚拟机管理器(VMM)420和虚拟机(VM)层430,其运行被配置为执行一个或多个软件应用的实例462a-n的一个或多个虚拟机(VM)434a-n。每个硬件资源404可以包括一个或多个物理中央处理单元(pCPU)412(“数据处理硬件112”)和存储器硬件(为简单起见未示出)。每个pCPU 412可以包括如上所述的处理元件200。
主机操作系统(OS)422可以在资源402的集合402上执行。主机OS 422包括通信模块424和内核426。
在一些示例中,虚拟机管理器(VMM)420对应于管理程序(hypervisor)420,例如计算引擎,其包括被配置为创建、实例化/部署并且执行VM 434的软件、固件或硬件中的至少一种。与执行一个或多个VM 434的VMM 420相关联的诸如数据处理硬件412的计算机可以被称为主机404,而每个VM 434可以被称为客户机。这里,VMM 420或管理程序被配置为向每个VM 434提供具有虚拟操作平台的对应的客户操作系统(OS)464a-n并且管理对应的客户OS464在VM 434上的执行。如本文中所使用的,每个VM 434可以被称为“实例”或“VM实例”。在一些示例中,各种操作系统的多个实例可以共享虚拟化资源。例如,操作系统的第一VM 434a、/>操作系统的第二VM 434b和OS />操作系统的第三VM 434n都可以在单个物理主机上运行。
VM层430包括一个或多个虚拟机434。分布式系统400使得用户能够按需启动VM434,即通过经由诸如网络340的网络向分布式系统400发送命令。例如,命令可以包括与对应操作系统422相关联的映像或快照,并且分布式系统400可以使用该映像或快照来创建用于对应VM 434的根资源。这里,命令内的映像或快照可以包括引导加载程序、对应的操作系统422和根文件系统。响应于接收命令,分布式系统400可以实例化对应的VM 434并且在实例化时自动启动VM 434。VM 434模拟真实计算机系统,例如主机404,并且基于真实计算机系统或假设计算机系统的计算机架构和功能来操作,其可以涉及专用硬件、软件或其组合。在一些示例中,分布式系统400在启动一个或多个VM 434之前对用户进行授权和认证。软件应用的实例462,或者简称为实例,是指在分布式系统400的数据处理硬件412上托管(执行)的VM 434。
主机OS 422虚拟化底层主机硬件并管理一个或多个VM实例462的并发执行。例如,主机OS 422可以管理VM实例434a-n,并且每个VM实例434可以包括底层主机硬件的模拟版本或者不同的计算机架构。与每个VM实例434a-n相关联的硬件的模拟版本被称为虚拟硬件468a-n。虚拟硬件468可以包括模拟主机304(图3)的一个或多个物理处理器412的一个或多个虚拟中央处理单元(vCPU)(“虚拟处理器”)。虚拟处理器可以互换地称为与VM实例434相关联的“计算资源”。计算资源可以包括执行对应的单独服务实例462所需的目标计算资源水平。
虚拟硬件468可以进一步包括至少一个虚拟存储设备,其为物理存储器硬件(未示出)上的服务提供存储容量。该至少一个虚拟存储设备可以被称为与VM实例434相关联的存储资源。存储资源可以包括执行对应的单独服务实例462所需的目标存储资源水平。在每个VM实例434上执行的客户软件可以进一步分配网络边界,例如分配网络地址,通过该网络边界,相应的客户软件能够与通过诸如LAN的内部网络、诸如WAN的外部网络或两者可到达的其他进程进行通信(参见图3)。网络边界可以被称为与VM实例434相关联的网络资源。
在每个VM 434上执行的客户OS 464包括控制经由VM实例434运行的应用的对应的单独服务实例462a-n的执行的软件。在VM实例434a-n上执行的客户OS 464a-n能够与在其他VM实例434上执行的其他客户OS 464相同或不同。在一些实施方式中,VM实例462不需要客户OS 464以便执行单独的服务实例462。主机OS 422可以进一步包括为主机OS 422的内核426保留的虚拟存储器。内核426可以包括内核扩展和设备驱动器,并且可以执行对于在主机OS 422的用户进程空间中运行的进程是禁止进行的某些特权操作。特权操作的示例包括对不同地址空间的访问、对主机404中的特殊功能处理器单元——诸如存储器管理单元——的访问等。在主机OS 422上运行的通信进程或模块424可以提供VM网络通信功能的一部分并且可以在用户进程空间或与内核426相关联的内核进程空间中执行。
在VM 434的故障转移请求的情况下,VMM 420可以确定主机404中的哪一个可以用于继续处理运行故障的VM的程序或应用。例如,如果VM 434a经历需要其故障转移到另一VM(例如VM 434n)的状况,则VMM 420可以在主机404n上置备(provision)或指配(commission)运行这些程序或应用所需的资源。作为该过程的一部分,由pCPU 412a提取的微架构场境信息可以被传送到主机OS 422,如先前所讨论的。主机OS 422然后可以将该信息传送到VMM 420,VMM 420然后可以将该信息提供给故障转移主机404n。主机404n然后可以使用微架构场境信息来设置运行故障转移应用所需的数字逻辑。取决于故障转移条件,还可以简单地使用同一主机中的另一处理元件以与所描述的类似的方式实现故障转移请求。
关于支持功能的克隆或拷贝或者运行同一程序或应用的多个应用,可以使用类似的过程。例如,如果主机404a正在运行程序或功能并且VMM 420请求实例化该程序或功能的另一副本的请求,VMM 420可以指示OS 422使用在运行程序时使用的处理元件412a的微架构信息来实例化程序或功能的副本。
图5是可以用于实现本文档中描述的系统和方法的示例计算设备500的示意图。计算设备500旨在表示各种形式的数字计算机,诸如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、主机、大型机和其他适当的计算机。这里示出的部件、它们的连接和关系以及它们的功能仅意味着示例,并且不意味着限制本文档中所描述和/或要求保护的实施方式。例如,在服务器或主机的情况下,一些部件可以驻留在机箱组件中的系统板上。另外,在一些示例中,机箱组件可以包括多个这样的板。
计算设备500包括处理器510、存储器520、存储设备530、连接到存储器520和高速扩展端口550的高速接口/控制器540、以及连接到低速总线570和存储设备530的低速接口/控制器560。组件510、520、530、540、550和560中的每一个使用各种总线互连,并且可以被安装在公共主板上或以其他适当的方式安装。处理器510能够处理用于在计算设备500内执行的指令,包括在存储器520中或存储设备530上存储的指令,以在外部输入/输出设备——诸如被耦合到高速接口540的显示器580——上显示用于图形用户界面(GUI)的图形信息。在其他实施方式中,可以适当使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备500,每个设备提供必要操作的部分(例如,作为服务器库、一组刀片服务器或多处理器系统)。
存储器520将信息非暂时性地存储在计算设备500内。存储器520可以是计算机可读介质、易失性存储器单元或非易失性器存储单元。非暂时性存储器520可以是用于临时或永久存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备使用的物理设备。
非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于诸如引导程序的固件)。
易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备530能够为计算设备500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储器设备、或设备的阵列,包括存储区域网络或其他配置中的设备。在附加实施方式中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含指令,该指令当被执行时执行一个或多个方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器520、存储设备530或处理器510上的存储器。
仅作为示例,高速控制器540管理计算设备500的带宽密集型操作,而低速控制器560管理较低带宽密集型操作。在一些实施方式中,高速控制器540被耦合到存储器520、显示器580(例如,通过图形处理器或加速器),并且被耦合到高速扩展端口550,该高速扩展端口550可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器560被耦合到存储设备530和低速扩展端口590。低速扩展端口590,其可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网),可以例如通过网络适配器来被耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。
计算设备500可以以多种不同的形式来实现,如图所示。例如,它可以被实现为标准服务器500a或者在一组这样的服务器500a中多次实现、实现为膝上型计算机500b、或者实现为机架服务器系统500c的一部分。
本文中描述的系统和技术的各种实施方式能够以数字电子和/或光学电路、集成电路、专门设计的ASIC(应用专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实施方式能够包括在包括至少一个可编程处理器的可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该至少一个可编程处理器可以是专用的或通用的,其被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向其传输数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够用高级的过程性和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文中所使用的,术语“机器可读介质”和“计算机可读介质”指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备,例如磁盘、光盘、存储器、可编程逻辑器件(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还能够由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备接收数据或向其传输数据,或两者,例如磁盘、磁光盘或光盘。然而,计算机不需要有这样的设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如,半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面能够在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以及可选地具有键盘和定点设备,例如鼠标或轨迹球),用户能够通过这些设备向计算机提供输入。其他种类的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;来自用户的输入能够以任何形式接收,包括声学、语音或触觉输入。此外,计算机能够通过向由用户使用的设备发送文档以及从由用户使用的设备接收文档来与用户交互。例如,通过响应于从Web浏览器接收到的请求而将网页发送到用户客户端设备上的Web浏览器。
除非另有说明,前述可替代示例不是相互排斥的,而是可以以各种组合来实现以实现独特的优点。由于能够在不脱离权利要求所限定的主题的情况下利用以上论述的特征的这些和其他变化和组合,前述描述应当被理解为说明性的而不是限制权利要求所限定的主题。此外,本文中所描述的示例的提供以及措辞为“诸如”、“包括”等的从句不应被解释为将权利要求的主题限制于具体示例;相反,这些示例旨在说明所公开的主题的许多可能的配置或布置中的仅一种。此外,不同附图中的相同附图标记能够标识相同或相似的元件。
Claims (19)
1.一种方法,包括:
从第一处理元件提取与在所述第一处理元件上运行的程序相关联的微架构信息;
将所提取的微架构信息传输到与所述第一处理元件相关联的第一操作系统;
由所述第一操作系统将所提取的微架构信息转发至第二处理元件;以及
使用所提取的微架构信息在所述第二处理元件处实例化进程。
2.根据权利要求1所述的方法,其中,所提取的微架构信息包括关于所述第一处理元件的内部状态的信息。
3.根据权利要求2所述的方法,其中,所提取的微架构信息包括与转换后备缓冲器(TLB)或分支预测器缓冲器相关联的信息。
4.根据权利要求1所述的方法,其中,所述转发的步骤是作为在所述第二处理元件上对所述程序进行克隆的一部分来执行的。
5.根据权利要求1所述的方法,其中,所述转发的步骤是作为将程序迁移到所述第二处理元件的一部分来执行的。
6.根据权利要求1所述的方法,其中,实例化所述进程包括在与所述第二处理元件相关联的第二操作系统处接收所提取的微架构信息,并且由所述第二操作系统将所提取的微架构信息传输到所述第二处理元件。
7.根据权利要求6所述的方法,其中,所述第一处理元件和所述第二处理元件驻留在第一主机上。
8.根据权利要求6所述的方法,其中,所述第一处理元件驻留在第一主机上并且所述第二处理元件驻留在第二主机上。
9.根据权利要求8所述的方法,其中,所述第一主机充当实时迁移事件的源节点,并且所述第二处理元件充当所述实时迁移事件的目标节点。
10.一种系统,包括:
运行程序的第一处理元件,所述第一处理元件提取与所述程序相关联的微架构场境信息;以及
与所述第一处理元件相关联的第一操作系统,所述第一操作系统访问所提取的微架构场境信息,以及
其中,所述第一操作系统将所提取的微架构场境信息传送至第二处理元件。
11.根据权利要求10所述的系统,其中,所述第二处理元件使用所提取的微架构场境信息对所述程序进行实例化。
12.根据权利要求11所述的系统,其中,所提取的微架构场境信息包括关于所述第一处理元件的内部状态的信息。
13.根据权利要求12所述的系统,其中,所提取的微架构场境信息包括与转换后备缓冲器(TLB)或分支预测器缓冲器相关联的信息。
14.根据权利要求10所述的系统,其中,所述第一处理元件传送所提取的微架构场境信息作为在所述第二处理元件上对所述程序进行克隆的一部分。
15.根据权利要求10所述的系统,其中,所述第一处理元件传送所提取的微架构场境信息作为将所述程序迁移到所述第二处理元件的一部分。
16.根据权利要求10所述的系统,其中,与所述第二处理元件相关联的第二操作系统接收所提取的微架构场境信息并将所提取的微架构场境信息传输到所述第二处理元件。
17.根据权利要求16所述的系统,其中,所述第一处理元件和所述第二处理元件驻留在第一主机上。
18.根据权利要求16所述的系统,其中,所述第一处理元件驻留在第一主机上并且所述第二处理元件驻留在第二主机上。
19.根据权利要求18所述的系统,其中,所述第一主机充当实时迁移事件的源节点,并且所述第二处理元件充当所述实时迁移事件的目标节点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/396,693 | 2022-08-10 | ||
US18/220,536 US20240053983A1 (en) | 2022-08-10 | 2023-07-11 | Performance Optimized Task Duplication and Migration |
US18/220,536 | 2023-07-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591252A true CN117591252A (zh) | 2024-02-23 |
Family
ID=89915561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311007033.4A Pending CN117591252A (zh) | 2022-08-10 | 2023-08-10 | 性能优化的任务复制和迁移 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591252A (zh) |
-
2023
- 2023-08-10 CN CN202311007033.4A patent/CN117591252A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8464259B2 (en) | Migrating virtual machines configured with direct access device drivers | |
US8832352B2 (en) | Hypervisor-driven protection of data from virtual machine clones | |
US9870248B2 (en) | Page table based dirty page tracking | |
US8151263B1 (en) | Real time cloning of a virtual machine | |
US8775715B2 (en) | Protection of data from virtual machine clones via paravirtualization | |
US8775748B2 (en) | Method and system for tracking data correspondences | |
US10996968B2 (en) | Support for application transparent, high available GPU computing with VM checkpointing | |
US20150205542A1 (en) | Virtual machine migration in shared storage environment | |
US9588793B2 (en) | Creating new virtual machines based on post-boot virtual machine snapshots | |
US10481940B2 (en) | Post-copy based live virtual machine migration via speculative execution and pre-paging | |
US9740544B2 (en) | Live snapshotting of multiple virtual disks in networked systems | |
US20180225221A1 (en) | Post-copy vm migration speedup using free page hinting | |
US9058299B2 (en) | Efficient copying between storage devices | |
US9098461B2 (en) | Live snapshots of multiple virtual disks | |
US11880702B2 (en) | Hypervisor hot restart | |
US20230195533A1 (en) | Prepopulating page tables for memory of workloads during live migrations | |
EP4321998A1 (en) | Performance optimized task duplication and migration | |
CN117591252A (zh) | 性能优化的任务复制和迁移 | |
Gangadhar et al. | Distributed memory and cpu management in cloud computing environment | |
US9104634B2 (en) | Usage of snapshots prepared by a different host | |
US11762573B2 (en) | Preserving large pages of memory across live migrations of workloads | |
US20220229683A1 (en) | Multi-process virtual machine migration in a virtualized computing system | |
Wu et al. | Vshadow: Promoting Physical Servers into Virtualization World |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |