CN115840691A - 远程修复崩溃进程 - Google Patents

远程修复崩溃进程 Download PDF

Info

Publication number
CN115840691A
CN115840691A CN202210924919.4A CN202210924919A CN115840691A CN 115840691 A CN115840691 A CN 115840691A CN 202210924919 A CN202210924919 A CN 202210924919A CN 115840691 A CN115840691 A CN 115840691A
Authority
CN
China
Prior art keywords
application
remote computer
computer server
crash
application program
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
Application number
CN202210924919.4A
Other languages
English (en)
Inventor
M·A·斯特尔马内托
B·席尔瓦
R·L·德弗雷塔斯库哈
R·F·S·索扎
L·科里亚维拉雷尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115840691A publication Critical patent/CN115840691A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本公开涉及远程修复崩溃进程。一种修复崩溃的应用程序的方法包括检测在主机计算设备中操作的应用程序中的崩溃。该应用程序被迁移到远程计算机服务器。当应用程序驻留在远程计算机服务器中时,远程计算机服务器向应用程序提供计算资源。使用供应的计算资源在远程计算机服务器中执行应用程序的恢复操作。在远程计算机服务器中从应用程序生成执行结果。所生成的执行结果从所述应用程序迁移回所述主机计算设备。

Description

远程修复崩溃进程
背景技术
技术领域
本公开总体上涉及网络,并且更具体地涉及远程修复崩溃进程的系统和方法。
背景技术
计算密集型应用程序(如计算机模拟或人工智能(A.I.)模型的训练)的用户可以首先尝试在他们的计算设备中运行那些应用程序,因为对于用户来说在运行应用程序之前涉及的实际应用程序资源可以是什么并不是显而易见的。当尝试运行模拟或A.I.模型时,这样的应用程序甚至可能由于缺少内存或某些加速器设备在主机计算设备中丢失或以其他方式不可用而无法开始运行。更复杂的场景是其中用户应用程序开始执行并且能够运行一段时间(例如,几个小时)的场景。在运行一段时间之后,应用程序由于用户计算设备中的限制而崩溃。
先发制人的应用程序崩溃的一些方法使用应用程序检查点。检查点通常在系统执行之前被明确地编程或配置,这导致用户需要的额外努力和时间。用户必须在检查点标准中明确地编程。检查点通常包括停止应用程序,将所有所需数据从存储器复制到可靠存储,然后继续执行。如果该应用程序支持检查点机制,则用户可从最后保存的检查点恢复该应用程序。否则,应用程序从头重新开始,因此浪费了先前执行的几个小时的处理。
发明内容
根据本公开的实施例,一种修复崩溃的应用程序的计算机实现的方法包括检测在主机计算设备中操作的应用程序中的崩溃。该应用程序被迁移到远程计算机服务器。当应用程序驻留在远程计算机服务器中时,远程计算机服务器向应用程序提供计算资源。使用所述供应的计算资源在所述远程计算机服务器中执行所述应用程序的操作。在远程计算机服务器中从应用程序生成执行结果。所生成的执行结果从所述应用程序迁移回所述主机计算设备。
在一个实施例中,确定崩溃是否是由资源约束引起的。远程计算机服务器中的计算资源的供应分配计算资源以满足资源约束。如将理解的,当原始主机计算机不能满足操作应用程序的需求时,远程计算机服务器充当执行应用程序的辅助源。对于主计算机,这对主机计算机可以是临时情况,例如,当主机计算机运行比它当前可以处理的更多的操作时。或者它可以是按需服务,使得用户可以具有对更高端应用程序的访问,该高端应用程序需要比当前计算机可以处理的更多的资源。
根据本公开的另一个实施例,一种用于修复崩溃的应用程序的计算机程序产品包括一个或多个计算机可读存储介质、以及共同存储在该一个或多个计算机可读存储介质上的程序指令。程序指令包括检测在主机计算设备中操作的应用程序中的崩溃。该应用程序被迁移到远程计算机服务器。当应用程序驻留在远程计算机服务器中时,远程计算机服务器向应用程序提供计算资源。使用所述供应的计算资源在所述远程计算机服务器中执行所述应用程序的操作。在远程计算机服务器中从应用程序生成执行结果。所生成的执行结果从所述应用程序迁移回所述主机计算设备。
根据一个实施例,指令识别执行应用程序所需的一个或多个计算资源类型。缺少所识别的计算资源类型导致崩溃。供应计算资源包括由远程计算机服务器向应用程序的执行供应所识别的计算资源类型。
此特征示出了主题技术中的灵活性,其中,这些实施例可以例如识别存储器要求、硬件和软件指令之间。本技术可以识别在主机计算设备中缺少什么种类的资源,然后可以在远程服务器环境内定位这样的资源类型。
根据本公开的另一个实施例,一种用于修复在主机计算装置中的崩溃的应用程序的远程计算机服务器包括:网络连接;一个或多个计算机可读存储介质;处理器,所述处理器耦合到所述网络连接并且耦合到所述一个或多个计算机可读存储介质;以及计算机程序产品,所述计算机程序产品包括:共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括通过所述网络连接来检测在所述主机计算设备中操作的应用程序中的崩溃。通过网络连接将应用程序迁移到远程计算机服务器。应用程序驻留在远程计算机服务器中时,远程计算机服务器向应用程序提供计算资源。使用所供应的计算资源在所述远程计算机服务器中执行所述应用程序的操作。在远程计算机服务器中从应用程序生成执行结果。从应用程序所生成的执行结果被迁移回主机计算设备。
根据一个实施例,程序指令还可以包括识别应用程序的预崩溃状态。预崩溃状态包括执行结果的当前状态。这些指令在供应计算资源之前在远程计算机服务器中将应用程序回滚到预崩溃状态。此特征可消除执行步骤的重复,且因此节省来自文件上已经具有结果的重新执行步骤的时间和计算资源。该特征还可以帮助导致无缝的最终用户体验。
此外,并且通常针对以上公开的实施例,将认识到,当本地计算设备不能处理应用程序所需的要求时,本技术的特征为计算资产提供了一种替代性途径。在一些实例中,本地设备可能能够处理用于执行应用程序的一些要求,但随后该设备缺少一个(或多个)要求。如将看到的,通过将应用程序迁移到远程服务器,应用程序将被暴露给更鲁棒的计算环境,该计算环境具有对更大的存储器池、更新的和更强的硬件设备、以及更新的、改进的软件工具版本的访问,所有这些可以处理本地设备不能处理的负载。在另一示例场景中,计算设备通常针对在设备购买时可用的软件应用程序完全功能性地操作。然而,随着软件应用程序随着新版本而更新或新应用程序随着计算需求的增加而设计,计算设备的硬件和软件可能很快变得过时或不能跟上较新的需求。通过将应用程序迁移到远程服务器并且供应远程服务器可访问的资源,本地计算设备的能力固有地变得与远程计算机服务器一样强,从而允许本地设备操作它原本将不能物理地执行的一些应用程序。
本文描述的技术可以按多种方式实施。下面参考以下附图提供示例性实现方式。
附图说明
附图是用于说明性实施例。它们没有示出所有实施例。另外或替代地,可使用其他实施例。可省略可明显或不必要的细节以节省空间或用于更有效说明。一些实施例可用附加的组件或步骤和/或不用示出的所有组件或步骤来实践。当在不同的附图中出现相同的数字时,它指代相同或相似的部件或步骤。
图1是根据说明性实施例的用于远程修复崩溃的应用程序的架构的框图。
图2是根据说明性实施例的用于远程修复崩溃的应用程序的系统的框图。
图3A和3B是根据一些实施例的用于远程修复崩溃的应用程序的方法的流程图。
图4是根据一些实施例的用于识别缺失的计算资源的方法的流程图。
图5是根据说明性实施例的可以与不同联网组件进行通信的具体配置的计算机硬件平台的功能框图。
图6描绘了根据说明性实施例的云计算环境。
图7描绘了根据说明性实施例的抽象模型层。
具体实施方式
在以下详细说明中,通过举例的方式阐述了许多具体细节,以便提供对相关传授内容的透彻理解。然而,应当清楚的是,可以在没有此类细节的情况下实践本传授内容。在其他情况下,众所周知的方法、过程、部件和/或电路已经以相对高级别描述,而没有细节,以便避免不必要地模糊本教导的各方面。
本公开总体上涉及通过远程供应资源来修复崩溃的应用程序的系统和方法。一般而言,各实施例可在计算机网络和数据处理领域中实践。如将理解的,本公开的各方面将崩溃的应用程序转发到远程计算机服务器,在该远程计算机服务器中,该应用程序可被恢复和执行到其预期结果。本主题技术的各方面在不知道执行应用程序过程所涉及的资源的情况下释放要运行的应用程序。这使终端用户免于不得不设计具有对资源要求的保守方法的某些应用程序。另外,可以通过利用在线远程计算系统的资源能力来本地运行超过本地计算设备的物理能力的应用程序。此外,本技术允许本地设备利用新开发的资源,包括例如新处理芯片、加速器、读/写设备等,而不必升级本地计算设备。本主题技术的一些实施例可以自动地以无缝方式提供崩溃修复,使得最终用户可能不知道崩溃发生,因为可以以对用户透明的方式将执行结果提供回主机设备。
示例架构
图1示出了用于远程修复崩溃的应用程序的示例架构100。架构100包括允许不同计算设备102(1)至102(N)彼此通信的网络106,以及连接到网络106的其他元件,诸如故障排除策略处理器模块112、远程应用程序恢复服务器116和云120。在根据本公开下提供崩溃恢复服务的上下文中,计算设备102(1)至102(N)可以是具有不足以运行计算密集型应用程序的资源的终端用户设备。计算设备102(1)至102(N)中的一个或多个已经经历了应用程序崩溃,该应用程序崩溃正在被如本文和在以下附图中更详细地公开的系统100的多个方面补救。通常,当计算设备102(1)至102(N)中的一个经历应用程序崩溃时,远程应用程序恢复引擎110可以检测崩溃事件,并且可以通过提供从主机源设备(计算设备102(1)至102(N))远程修复应用程序的服务进行响应,在服务器级恢复应用程序的执行,并且将执行结果提供回原始主机设备。
网络106可以是但不限于局域网(“LAN”)、虚拟专用网(“VPN”)、蜂窝网络、互联网、或其组合。例如,网络106可以包括通信地耦合到专用网络的移动网络,所述专用网络有时被称为提供不同辅助服务(诸如与不同应用程序商店、库和互联网的通信)的内联网。网络106允许远程应用程序恢复引擎110与故障排除策略处理器模块112、计算设备102(1)至102(N)和云120通信以提供数据处理,所述远程应用程序恢复引擎110是在远程应用程序恢复服务器116上运行的软件程序。故障排除策略处理器模块112可以提供将用于处理本文所描述的一个或多个技术的崩溃数据恢复解决方案。在一个实施例中,崩溃恢复过程至少部分地在云120上执行,利用来自包括物理和虚拟设备的多个源的资源。在基于云的实施例中,可以从连接到云网络的不同计算设备收集资源。因此,当参考“通过远程计算机服务器供应资源”时,将理解的是,资源的实际使用可以发生在云120内的多个设备或位置中。
出于稍后讨论的目的,若干用户设备出现在附图中,以表示计算设备的一些示例,所述计算设备可以是针对根本崩溃原因、应用程序资源要求、应用程序执行和结果而被分析的数据源。应用程序数据/文档(例如,103(1)和103(N))的各方面可通过网络106与远程应用程序恢复服务器116的远程应用程序恢复引擎110通信。现今,用户装置通常采取便携式手持机、智能电话、平板计算机、个人数字助理(PDA)和智能手表的形式,尽管用户装置可以其他形式因素实施,包括消费者和商业电子装置。
虽然通过示例的方式将故障排除策略处理器模块112和远程应用程序恢复引擎110示出为在不同的平台上,但是将理解,在各个实施例中,可以组合故障排除策略处理器模块112和远程应用程序恢复服务器116。在其他实施例中,这些计算平台可由虚拟计算设备以托管在云120中的虚拟机或软件容器的形式来实现,由此提供用于处理和存储的弹性架构。
现在参见图2,示出了根据实施例的用于修复崩溃的应用程序的远程基础设施200。基础设施200通常可以包括用于从本地计算设备102检索和修复崩溃的应用程序205的元件。崩溃的应用程序205当在主题技术下被处理时,在远程服务器系统116中恢复执行(示出为恢复的应用程序240)。操作系统崩溃处理器210通常可以驻留在本地计算设备上。操作系统崩溃处理器210可以检索崩溃的应用程序存储器状态220并将其提供给远程基础设施200。
在基础设施200中,存储器状态处理器模块230可以从本地计算设备102接收崩溃的应用程序存储器状态镜像。资源限制标识符模块215可以接收与崩溃的应用程序205相关联的检索的数据,包括应用程序的副本和在崩溃之前应用程序的执行的当前状态。可以访问故障排除策略处理器模块112以提供用于识别崩溃的(多个)原因和识别恢复服务器侧上的应用程序的执行所需的资源的过程。迁移处理器模块225可协调崩溃的应用程序205到远程应用程序恢复服务器116的迁移和恢复的应用程序240结果返回到本地计算设备102的迁移。虽然网络106、(一个或多个)远程服务器116、资源限制标识符模块215和迁移处理程序模块225被示出为单独的元件,但是将理解,实施例通常可以将资源限制标识符模块215和迁移处理程序模块225集成在(一个或多个)服务器116中,服务器116又可以是网络106的一部分。
示例方法
现在参见图3A和图3B,根据示例性实施例示出了一种用于远程修复崩溃的应用程序的方法300。如上所述,以下特征通常可以出现在位于远离运行应用程序的本地计算设备的计算机服务器中。因此,对“系统”的引用可以指位于远离本地设备的一个或多个元件。
通常,方法300的操作可以由系统检测310在本地设备中正在运行的应用程序中执行已经中断/崩溃而触发。远程计算机服务器(例如,远程应用程序恢复服务器116)可识别315应用程序的崩溃的原因。例如,使用资源限制标识符模块215(见图2),操作系统度量被监视(例如,存储器或存储的利用率增加),并且日志文件(来自操作系统和应用程序两者)可以用于识别造成应用程序崩溃的资源限制。崩溃源的示例包括由于应用程序所需的有限量的存储器或在某个时间点处要求用户设备中不可用的GPU指令的应用程序执行而导致的应用程序执行中断。还可以检查进程的存储器状态文件。可以在存储器状态中搜索由进程接收的非法指令信号和总线错误信号。还可以从属于该存储器状态的每个线程的最顶部帧中挑选错误代码和消息以帮助确定这种崩溃的原因。
暂时参见图4,示出了根据示例性实施例的用于识别崩溃的根本原因的崩溃恢复故障排除架构400。架构400可以由故障排除策略处理器模块112(图1)实现。通常,当应用程序405遇到非法指令时,可以触发架构400。本地计算设备的操作系统410可以包括非法指令陷阱处理器模块415。在示例实现中,正在执行的软件应用程序405崩溃并产生被本地设备的操作系统410捕捉的软件或硬件陷阱。本地设备的操作系统410可以通过捕获与软件应用程序405相关联的(或多个)进程的存储器状态的映像来收集该状态的映像。非法指令陷阱处理器模块415将存储器状态数据映像保存到盘上的文件。关于非法指令的文件信息可以包括崩溃时CPU寄存器的值。远程服务器系统然后被通知崩溃并且接收到进程的存储器状态文件的指针。在一些实施例中,远程计算机服务器包括资源限制标识符模块215。
资源限制标识符模块215可以读取从本地计算设备提供的捕捉的存储器状态的映像。另外,可以检查传递到进程的信号。资源限制标识符模块215可以查询故障排除策略处理器数据库112以识别有故障或缺失的资源。
故障排除策略处理器数据库112可以从资源限制标识符模块440读取捕获的映像以分析CPU相关信息420、GPU相关信息425和系统相关信息430。例如,如果进程接收“KILL(杀死)”信号,则系统解析系统日志以使用脚本“find_keyworks.py”来找出为什么信号被杀死。例如这可以在发生存储器不可用状况或程序逻辑错误破坏进程存储器时发生。作为另一实例,如果进程接收“SIGILL”信号,则使用进程映像上的“parse_registers.py”脚本来扫描非法指令以提取程序计数器和寄存器值。脚本在CPU相关信息表420中查找程序计数器和寄存器值。
在一些实施例中,远程计算机服务器可以确定320崩溃的原因是否是由于资源约束或资源访问错误引起的。存在可中断应用程序的若干原因。原因可以是硬件资源限制或某些软件或输入数据依赖性。在该步骤中,如果检测到中断是由于软件或输入数据依赖性,则可以向用户呈现通知,并且可以不采取进一步的动作。然而,如果崩溃是由于硬件限制,该方法可以继续。
远程计算机服务器可以识别325致使应用程序执行被中断并且本地设备需要将应用程序运行至其预期结果的资源的类型(或其缺乏)。可以采取进一步的调查来理解什么是缺失的以满足应用程序需求。例如,如果问题是内存限制,远程计算机服务器可以生成应用程序所需的估计内存量。或者如果问题是特定硬件块(例如,GPU或另一加速器)的指令(或指令集),则识别能够提供这样的指令的指令和硬件类型。
每种类型的资源可以具有描述如何识别这种需求的软件组件。并且可以存在若干实现方式,包括基于规则的或基于机器学习的组件。
当存储器是所需资源的类型时,由于运行应用程序的本地设备中的内存量有限,中断应用程序是非常常见的。一个可能的实施例通过检查存储器(例如,图1的崩溃数据故障排除模块)来估计应用程序将需要的存储器的量,以用于包括不同输入参数值的同一应用程序的先前执行。例如,假设用户用200个代理运行多代理仿真,并且用户设备具有4GB的RAM。使用200个代理,应用程序不能在用户设备中执行。然而,用户能够用5、10、20、50和100个代理来运行。通过访问日志和操作系统测量,各实施例可估计将代理的数量与存储器消耗相关联的曲线(未示出),该曲线随后可被用来估计在本地用户设备中运行给定数量的代理(诸如200)的存储器量。该曲线可以具有不同的形状,如线性的或指数的。
在一些实例中,不足的硬件是崩溃的原因。例如,处理器架构(例如,高级RISK机器(ARM))提供支持一组核心指令的CPU。向想要包括对可选特征的支持的硬件设计者提供处理器扩展:浮点和向量指令是两个示例。当在支持这种扩展指令的情况下编译应用程序代码,但是底层硬件不包括相应的处理器扩展时,“非法指令”陷阱由操作系统接收。通过在这样的陷阱时检查寄存器,实施例可以确定哪个指令失败和哪个硬件资源要被分配以允许该应用程序执行完成。
在一些实施例中,远程计算机服务器可以确定330执行修复是否可能。可以根据应用程序的类型和要求来执行一组验证。这样的验证的实施例包括:
验证应用程序是否依赖于仅本地可用的任何类型的资源(例如,内联网服务)。
如果它是本地应用程序,则验证该应用程序是否包括有待用于将其执行回溯到先前时间点的符号。例如,这样做的可用技术是记录和重放调试,该调试使用这样的符号连同程序计数器,使得它可以将应用程序回滚到先前的执行状态。
如果它是受管理的应用程序(即,具有更高的运行时),则采用反向调试器引擎来恰好在资源使用命令之前将程序执行反向到步骤以保存软件的执行上下文。
在一些实施例中,远程计算机服务器可以在尝试修复应用程序之前检查335远程计算机服务器的远程基础设施中的资源可用性。可以查询远程基础设施提供商以检查与继续执行相关的资源是否可用。如果资源不可用,处理可以终止。
如果资源可用,系统可以提取针对远程基础设施中的资源的更新的引用。一旦获得这些引用,系统就使用它们来估计远程基础设施中的所请求的资源的每小时速率。一旦估计了费率,在一个实施例中,系统估计应用程序的总运行时间,并且可询问用户他/她是否想要继续(例如,一些实施例可涉及对资源的附加认证或支付)。如果用户不同意,处理可以终止。
在一些实施例中,远程计算机服务器可以确定340该应用程序的迁移是否可能。针对必须存在于目的地主机处的资源上的处理程序来检查进程的存储器状态。依赖于本地资源(例如到属于同一专用网络的主机的网络连接)的处理程序可能不可能在目的地服务器处恢复。如果存在不允许在远程位置执行应用程序的任何法律或合规性限制,则用户可被请求用于回答的输入。一些实施例可以预先检查用于运行应用程序的资源是否在远程基础设施上可用。
在一些实施例中,远程计算机服务器可以确定345崩溃的应用程序是否值得修复。在一些实施例中,可以从应用程序崩溃的点执行修复。该确定可涉及将从刚好在崩溃之前的点迁移执行的时间与从开始重启应用程序直到崩溃的点考虑新的计算资源集的时间进行比较。一些实施例可与阈值截止值相比较,计算计算资源的量和所涉及的处理时间,以防止例如一个应用程序消耗太多的远程资源。
通常,一旦远程计算机服务器识别远程运行应用程序所涉及的资源,就执行350修复过程。远程计算机服务器定位所需资源并为应用程序的执行供应355资源。应用程序可以从主机本地计算设备迁移360至远程计算机服务器。在远程计算机服务器处,可以恢复365应用程序的执行。在一些实施例中,远程计算机服务器可以继续监视370应用程序的执行并查看执行性能。在一些实施例中,远程计算机服务器可理解资源使用应用程序模式。应用程序的资源使用可以包括例如存储器、网络、CPU和加速器使用,以确认迁移在远程主机中的所选故障排除策略和分配的资源方面是否成功。在一些实施例中,远程计算机服务器可收集375关于所进行的修复/迁移过程的信息。所收集的信息可以在学习过程中使用以增强故障排除策略处理器模块112。所执行的应用程序和结果可以被迁移380回原始本地计算设备。在一些实施例中,可以在将应用程序结果迁移回本地计算设备之后终止385到远程计算机服务器的资源的连接。
示例计算机平台
如以上所讨论的,与本主题公开的可解释的建模相关的功能可以通过使用一个或多个计算装置来执行,该一个或多个计算装置经由无线或有线通信的被连接用于数据通信,如图1所示。图5是可以与不同联网组件(诸如故障排除策略处理器模块112、云等)通信的特别配置的计算机硬件平台的功能框图。具体地,图5示出了可以用于实现服务器(诸如图1的远程应用程序恢复服务器116)的网络或主机计算机平台500。
计算机平台500可以包括中央处理单元(CPU)504、硬盘驱动器(HDD)506、随机存取存储器(RAM)和/或只读存储器(ROM)508、键盘510、鼠标512、显示器514、以及通信接口516,它们被连接到系统总线502上。
在一个实施例中,HDD506具有包括存储程序的能力,所述程序能够以本文描述的方式执行不同进程,如远程应用程序恢复引擎540。一般而言,远程应用程序恢复引擎540可被配置成在上述各实施例下自动修复崩溃的应用程序并从本地设备远程恢复应用程序执行。远程应用程序恢复引擎540可具有被配置成执行不同功能的各种模块。
例如,远程应用程序恢复引擎540可以包括故障排除策略处理器模块112、资源限制标识符模块215、执行迁移处理器模块225和应用程序状态存储器处理器模块230,其功能先前已经被描述。
示例云平台
如以上所讨论的,与使用机器学习模型来发现用于应用程序特定任务(例如,二氧化碳分离)的新材料的数据处理有关的功能可以包括云计算环境120(参见图1)。应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务递送的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用程序、虚拟机和服务)的共享池,所述可配置计算资源可以用最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以根据需要自动地单方面地配设计算能力,如服务器时间和网络存储,而不需要与服务的提供商进行人为交互。
广泛的网络接入:能力可通过网络获得并且通过促进由异构瘦客户端平台或厚客户端平台(例如,移动电话、膝上计算机、和PDA)使用的标准机制访问。
资源池:提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
可测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用程序。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用程序。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用程序能力的底层云基础设施,可能的例外是有限的用户特定应用程序配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用程序部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用程序和可能的应用程序托管环境配置具有控制。
基础架构即服务(IaaS):向消费者提供的能力是提供处理、存储、网络和消费者能够部署并运行任意软件的其他基本计算资源,所述任意软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用程序的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础设施仅针对组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享并且支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:云基础架构可用于大众或大型行业团体并且由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用程序能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图6,描绘了说明性云计算环境600。如图所示,云计算环境600包括一个或多个云计算节点610,云消费者使用的本地计算设备(诸如例如个人数字助理(PDA)或蜂窝电话654A、台式计算机654B、膝上型计算机654C和/或汽车计算机系统654N)可与云计算节点610通信。节点610可以彼此通信。在一个或多个网络中它们可以物理地或虚拟地分组(未示出),诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境650提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图6中所示的计算设备654A-N的类型仅旨在是说明性的,并且计算节点610和云计算环境650可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参见图7,示出了由云计算环境650(图6)提供的一组功能抽象层。应提前理解,图7中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施方式不限于此。如所描述,提供以下层和对应功能:
硬件和软件层760包括硬件和软件组件。硬件组件的示例包括:大型机761;基于RISC(精简指令集计算机)架构的服务器762;服务器763;刀片服务器764;存储设备765;以及网络和网络组件766。在一些实施例中,软件组件包括网络应用程序服务器软件767和数据库软件768。
虚拟化层770提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器771;虚拟存储772;虚拟网络773,包括虚拟专用网络;虚拟应用程序和操作系统774;以及虚拟客户端775。
在一个示例中,管理层780可以提供以下所述的功能。资源供应781提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价782在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用程序软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户783为消费者和系统管理员提供对云计算环境的访问。服务水平管理784提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行785提供云计算资源的预安排和采购,根据该SLA预期该云计算资源的未来要求。
工作负载层790提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航791;软件开发和生命周期管理792;虚拟教室教育递送793;数据分析处理794;事务处理795;以及如本文所讨论的远程崩溃应用程序修复和执行796。
结论
本传授内容的不同实施例的描述已经出于说明的目的而呈现,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用程序或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
虽然前述内容已描述了被认为是最佳状态和/或其他示例的内容,但应理解,可在其中进行不同修改,并且本文所公开的主题可在不同形式和示例中实现,并且教导可应用程序于许多应用程序中,在本文中仅描述了其中的一些应用程序。所附权利要求旨在要求保护落入本传授内容的真实范围内的任何和所有应用程序、修改和变化。
本文已经讨论的部件、步骤、特征、目的、益处和优点仅是说明性的。它们以及与其相关的讨论都不旨在限制保护范围。虽然本文已经论述了各种优点,但是将理解,并非所有实施例都必须包括所有优点。除非另外说明,否则在本说明书(包括在以下权利要求书中)中阐述的所有测量、值、评级、位置、幅值、大小、以及其他规范都是近似的、不精确的。它们旨在具有与它们有关的功能以及与它们所属领域惯用的功能相一致的合理范围。
还考虑了许多其他实施例。这些包括具有更少的、附加的和/或不同的部件、步骤、特征、目的、益处和优点的实施例。这些还包括部件和/或步骤被不同地安排和/或排序的实施例。
在本文中,参照根据本公开的实施例的方法、装置(系统)和计算机程序产品的调用流程说明和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个步骤以及调用流程图和/或框图中的框的组合可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,这样使得经由该计算机或其他可编程数据处理装置的该处理器执行的这些指令创建用于实现在该调用流程过程和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现调用流程和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
所述计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以使得一系列操作步骤在所述计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,从而使得在所述计算机、其他可编程装置或其他设备上执行的所述指令实现在所述调用流程过程和/或框图的或多个框中指定的功能/动作。
图中的流程图和框图展示了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,调用流程过程或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或调用流说明的每个方框、以及框图和/或调用流说明的方框的组合,可以用执行规定的功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
虽然上文已经结合示例性实施方式进行了描述,但应当理解的是,术语“示例性的”仅意味着作为实例,而不是最佳的或最佳的。除了以上立即陈述的之外,已经陈述或展示的任何内容都不旨在或应该被解释为引起任何部件、步骤、特征、对象、益处、优点的奉献或与公知等效,而不管它是否在权利要求中陈述。
应当理解,本文所使用的术语和表达具有普通含义,如对于它们相应的各自查询和研究领域而言符合此类术语和表达,除非本文另外陈述了具体含义。诸如第一和第二等之类的关系术语可仅用来将一个实体或动作与另一个实体或动作区分开来,而不必要求或暗示这些实体或动作之间的任何实际此类关系或次序。术语“包括(comprises)”、“包括(comprising)”或其任何其他变型旨在覆盖非排他性的包括,从而使得包括一系列要素的过程、方法、物品或装置不仅仅包括那些要素,而且还可以包括未明确列出的或对此类过程、方法、物品或装置固有的其他要素。在没有进一步限制的情况下,由“一个”或“一种”开始的元件不排除在包括该元件的过程、方法、物品或装置中存在另外的相同元件。
提供本公开的摘要以允许读者快速确定本技术公开的性质。在理解其不用于解释或限制权利要求的范围或含义的情况下提交。此外,在以上具体实施方式中,可以看出,出于精简本公开的目的,各个特征在各个实施方式中被组合在一起。本公开的该方法不应被解释为反映所要求保护的实施例具有比每个权利要求中明确记载的特征更多的特征的意图。相反,如以下权利要求所反映的,发明主题在于少于单个公开的实施例的所有特征。因此,以下权利要求由此合并到具体实施方式中,其中每个权利要求独立地作为单独要求保护的主题。

Claims (9)

1.一种修复崩溃的应用程序的计算机实施的方法,包括:
检测在主机计算设备中操作的应用程序中的崩溃;
将所述应用程序迁移到远程计算机服务器;
在所述应用程序驻留在所述远程计算机服务器中期间,由所述远程计算机服务器向所述应用程序供应计算资源;
使用所述供应的计算资源在所述远程计算机服务器中执行所述应用程序的操作;
在所述远程计算机服务器中从所述应用程序生成执行结果;以及
将所述生成的执行结果从所述应用程序迁移回所述主机计算设备。
2.根据权利要求1所述的方法,进一步包括确定所述崩溃是否是由资源约束引起的,其中计算资源的所述供应分配计算资源以满足所述资源约束。
3.根据权利要求1所述的方法,进一步包括识别用于所述应用程序的执行的一个或多个计算资源类型,其中:
缺乏所述识别的一个或多个计算资源类型引起所述崩溃,以及
所述供应计算资源包括由所述远程计算机服务器将所述识别的一个或多个计算资源类型供应至所述应用程序的所述执行。
4.根据权利要求3所述的方法,其中:
所述识别的一个或多个计算资源类型包括对一件硬件的访问,并且
所述提供计算资源包括访问所述远程计算机服务器中的所述一件硬件。
5.根据权利要求1所述的方法,进一步包括:
识别所述应用程序的预崩溃状态,其中,所述预崩溃状态包括执行结果的当前状态;以及
在供应所述计算资源之前,在所述远程计算机服务器中将所述应用程序回滚到所述预崩溃状态。
6.如权利要求5所述的方法,还包括在将所生成的执行结果从所述应用程序迁移回所述主机计算设备之前,在所述远程计算机服务器中从执行结果的所述当前状态执行所述应用程序。
7.根据权利要求1所述的方法,进一步包括:
确定与修复所述应用程序相关联的资源成本;以及
基于所述资源成本确定是否供应所述计算资源。
8.一种用于修复崩溃的应用程序的计算机程序产品,所述计算机程序产品包括程序指令,所述程序指令实现权利要求1-7之一的步骤。
9.一种用于修复主机计算设备中的崩溃的应用程序的远程计算机服务器,包括:
网络连接;
计算机程序产品,所述计算机程序产品包括程序指令,所述程序指令实现权利要求1-7之一的步骤;
处理器,耦接至所述网络连接并且执行所述计算机程序产品。
CN202210924919.4A 2021-09-20 2022-08-03 远程修复崩溃进程 Pending CN115840691A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/480,087 2021-09-20
US17/480,087 US20230088318A1 (en) 2021-09-20 2021-09-20 Remotely healing crashed processes

Publications (1)

Publication Number Publication Date
CN115840691A true CN115840691A (zh) 2023-03-24

Family

ID=85572224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210924919.4A Pending CN115840691A (zh) 2021-09-20 2022-08-03 远程修复崩溃进程

Country Status (3)

Country Link
US (1) US20230088318A1 (zh)
JP (1) JP2023044720A (zh)
CN (1) CN115840691A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578442B (zh) * 2023-05-05 2024-02-06 北京无限自在文化传媒股份有限公司 基于人工智能决策的应用崩溃分析方法及大数据存储系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779295B1 (en) * 2005-06-28 2010-08-17 Symantec Operating Corporation Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US7970903B2 (en) * 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US10019327B1 (en) * 2008-12-15 2018-07-10 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US9037922B1 (en) * 2012-05-01 2015-05-19 Amazon Technololgies, Inc. Monitoring and analysis of operating states in a computing environment
EP2696632A3 (en) * 2012-08-09 2014-04-09 Samsung Electronics Co., Ltd System and method of power savings for mobile device using cloud service
US9213807B2 (en) * 2013-09-04 2015-12-15 Raytheon Cyber Products, Llc Detection of code injection attacks
RU2016130451A (ru) * 2013-12-30 2018-02-07 Общество с ограниченной ответственностью "Мэйл.Ру" Способ и система помощи пользователю при аварийных завершениях приложения программного обеспечения
US20170353397A1 (en) * 2016-06-06 2017-12-07 Advanced Micro Devices, Inc. Offloading Execution of an Application by a Network Connected Device

Also Published As

Publication number Publication date
US20230088318A1 (en) 2023-03-23
JP2023044720A (ja) 2023-03-31

Similar Documents

Publication Publication Date Title
US10303589B2 (en) Testing functional correctness and idempotence of software automation scripts
US9003239B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
US9183093B2 (en) Virtual machine crash management
US10171315B2 (en) Orchestration process template for generation of orchestration process to tolerate errors
JP5689400B2 (ja) アクセス要求に対する予期せぬ応答に関するコンピュータ・プログラムの検証
US9898258B2 (en) Versioning of build environment information
US10678670B2 (en) Evaluating fairness in devices under test
US20220197770A1 (en) Software upgrade stability recommendations
US11243854B2 (en) System, method and recording medium for antifragile computing problem management
US10120671B1 (en) Multi-level image extraction
CN115840691A (zh) 远程修复崩溃进程
US11656888B2 (en) Performing an application snapshot using process virtual machine resources
US11656930B2 (en) Minimizing impact of first failure data capture on computing system using recovery process boost
US11188249B2 (en) Storage alteration monitoring
Nguyen et al. Resilience for collaborative applications on clouds: fault-tolerance for distributed HPC applications
Carling et al. Encouraging automated tests for code-to-container delivery
Nguyên et al. Applications resilience on clouds

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