CN111435299B - 一种应用程序的处理方法及装置 - Google Patents
一种应用程序的处理方法及装置 Download PDFInfo
- Publication number
- CN111435299B CN111435299B CN201910031503.8A CN201910031503A CN111435299B CN 111435299 B CN111435299 B CN 111435299B CN 201910031503 A CN201910031503 A CN 201910031503A CN 111435299 B CN111435299 B CN 111435299B
- Authority
- CN
- China
- Prior art keywords
- application program
- target application
- running
- file
- snapshot file
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序的处理方法及装置,该方法包括:获得运行态的目标应用程序的快照文件;将运行态的目标应用程序的快照文件提供给目标扩容设备;指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本。通过使用该方法,可根据业务流量需求针对目标应用程序进行快速扩容处理,提高了扩容处理的时效性和稳定性,有效降低了扩容处理的复杂程度。
Description
技术领域
本申请涉及应用程序服务技术领域,具体涉及一种应用程序的处理方法。本申请同时涉及一种应用程序的处理装置、一种电子设备以及一种计算机可读取存储介质。本申请还涉及一种应用程序的处理方法、一种应用程序的处理装置、一种电子设备以及一种计算机可读取存储介质。
背景技术
在云计算等应用服务场景中,需要根据业务流量对应用程序进行扩容或缩容等弹性处理,对应用程序进行扩容是指在业务流量处于高峰时,将一个应用程序副本复制为多个应用程序副本,并且使该多个应用程序副本处于运行状态;对应用程序进行缩容是指在业务流量处于低谷时业务流量处于低谷时,将多个应用程序副本缩减为满足服务要求的少量应用程序副本,通过该种方式动态调整应用程序的运行,实现计算资源的按需分配。
现有对应用程序进行弹性处理的方法为在需要进行扩容的设备上对应用程序进行冷启动,并且采用微服务和函数计算等方式对应用程序进行逻辑拆分部署,例如将大的应用程序拆分为多个小的应用程序。
上述对应用程序进行弹性处理的方法存在以下不足:
1、对应用程序进行冷启动的过程包含应用的加载,启动,初始化,预热等阶段,其所消耗的时间至少为分钟级,影响对应用程序进行扩容或缩容的效率,无法按照业务流量及时对应用程序进行扩容或缩容等弹性处理;
2、对应用进行逻辑拆分部署的过程需要业务配合,并且对业务的侵入性较强,某些方案需要对应用程序的代码进行变更或拆分处理,增加了上述弹性处理的复杂度,并且对上述弹性处理的稳定性造成影响。
发明内容
本申请提供一种应用程序的处理方法,以解决现有的对应用程序进行弹性处理的过程中出现的消耗时间长以及弹性处理过程复杂度高的问题。本申请另外提供一种应用程序的处理装置、一种电子设备以及一种计算机可读取存储介质。本申请还提供一种应用程序的处理方法、一种应用程序的处理装置、一种电子设备以及一种计算机可读取存储介质。
本申请提供一种应用程序的处理方法,包括:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,所述获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件。
可选的,所述获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
所述将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件,包括:将所述运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,生成所述进程的快照文件;
所述将所述运行态的目标应用程序的快照文件提供给目标扩容设备,包括:将所述进程的快照文件提供给目标扩容设备;
所述指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示所述目标扩容设备根据所述进程的快照文件,生成与所述运行态的目标应用程序对应的进程具有相同功能的运行态的进程副本。
可选的,所述将所述运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,包括:
将所述运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将所述运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将所述运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中。
可选的,所述将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中,包括:
将分配给所述运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
可选的,所述获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动所述目标应用程序,获取处于可服务状态的目标应用程序在内核的数据结构。
可选的,在采用冷启动的方式启动所述目标应用程序之后,还包括:
预先将所述目标应用程序所需要的运行资源分配至预定位置处。
可选的,在将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件之前,还包括:
回收未被所述运行态的目标应用程序使用的内存数据所占用的内存。
可选的,所述指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:
指示所述目标扩容设备根据所述快照文件,生成指定数量的所述应用程序副本。
可选的,所述指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:
指示所述目标扩容设备在指定的时间,根据所述快照文件,生成所述应用程序副本。
可选的,所述将所述运行态的目标应用程序的快照文件提供给目标扩容设备,包括:通过分布式文件系统将所述运行态的目标应用程序的快照文件分发至所述目标扩容设备;或者,通过P2P网络将所述运行态的目标应用程序的快照文件分发至所述目标扩容设备。
可选的,还包括:指示所述目标扩容设备删除所述应用程序副本。
可选的,所述指示所述目标扩容设备删除所述应用程序副本,包括:
指示所述目标扩容设备删除预定数量的所述应用程序副本。
可选的,所述指示所述目标扩容设备删除所述应用程序副本,包括:
指示所述目标扩容设备按照预定时间删除预定数量的所述应用程序副本。
本申请还提供一种应用程序的处理方法,包括:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,所述获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
所述获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息,包括:获得根据所述进程的快照文件生成与所述进程具有相同功能的进程副本的指示信息;
所述根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:根据所述指示信息以及所述进程的快照文件,生成与所述进程具有相同功能的进程副本。
可选的,所述根据所述指示信息以及所述进程的快照文件,生成与所述进程具有相同功能的进程副本,包括:
提供用于对所述运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境;
对所述快照文件进行解析,提取出所述运行态的目标应用程序对应的进程在内核中的数据;
在所述隔离环境中,根据所述运行态的目标应用程序对应的进程在内核中的数据生成与所述进程具有相同功能的运行态进程副本。
可选的,所述运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息;所述在所述隔离环境中,根据所述运行态的目标应用程序对应的进程在内核中的数据生成与所述进程具有相同功能的运行态进程副本,包括:
在所述隔离环境中,根据所述线程信息创建进程树;
基于所述进程树打开所述文件句柄;
将所述内存信息中的内存数据映射至所述进程树的虚拟地址空间中;
获得恢复所述进程副本时需要更新的状态数据,并加载所述状态数据。
可选的,所述恢复进程副本时需要更新的状态数据包括:所述进程副本的主机信息和所述进程副本的身份信息;所述获得恢复进程副本时需要更新的状态数据,包括:
通过比较所述进程和进程副本的内存布局的方式确定出所述进程副本相较于所述进程的发生变化的主机信息和身份信息。
可选的,所述提供用于对所述运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境,包括:创建用于对所述快照文件进行恢复的特定命名空间。
可选的,还包括:
接收删除所述运行态的目标应用程序副本的指示信息;
按照所述指示信息删除所述运行态的目标应用程序副本。
可选的,所述删除所述运行态的目标应用程序副本包括:
删除预定数量的运行态的目标应用程序副本。
可选的,所述删除所述运行态的目标应用程序副本包括:
按照预定时间删除预定数量的运行态的目标应用程序副本。
本申请还提供一种应用程序的处理装置,包括:
快照文件获得单元,用于获得所述运行态的目标应用程序的快照文件;
快照文件提供单元,用于将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示单元,用于指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储应用程序的处理程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得所述运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
本申请还提供一种计算机可读取存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获得所述运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
本申请还提供一种应用程序的处理装置,包括:
快照文件获得单元,用于获得运行态的目标应用程序的快照文件;
指示信息获得单元,用于获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
应用程序副本生成单元,用于根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储应用程序的处理程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
本申请还提供一种计算机可读取存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
与现有技术相比,本申请具有以下优点:
本申请提供的应用程序的处理方法,获得运行态的目标应用程序的快照文件,并且将该快照文件提供给目标扩容设备,在需要针对目标应用程序进行扩容时,指示目标扩容设备直接根据该快照文件生成运行态的应用程序副本,该过程无需对应用程序进行冷启动或者对目标应用程序的代码进行变更或拆分等复杂处理,可根据业务流量需求对目标应用程序进行快速扩容处理,提高了扩容处理的时效性和稳定性,有效降低了扩容处理的复杂程度。
附图说明
图1是本申请实施例提供的示意图;
图2是本申请第一实施例提供的方法流程图;
图3是本申请第二实施例提供的方法流程图;
图4是本申请第二实施例提供的进程副本生成流程图;
图5是本申请第三实施例提供的装置单元框图;
图6是本申请第四实施例提供的电子设备示意图;
图7是本申请第六实施例提供的装置单元框图;
图8是本申请第七实施例提供的电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在应用服务场景中,由于业务流量波动剧烈,因此需要对应用程序进行弹性处理,具体指的是根据业务流量的需求对应用程序进行扩容或缩容处理,扩容指的是将应用程序的副本复制为两个或多个副本,并使该两个或多个应用程序副本运行于具有扩容需求的设备上,该过程可满足业务流量增大时的应用运行需求;缩容指的是将应用程序的两个或多个副本收缩为一个副本,该过程可实现在业务流量萎缩时对未处于运行状态的应用程序进行资源释放,节约计算资源。
上述对应用程序进行扩容或缩容处理等弹性处理过程可分为垂直弹性处理和水平弹性处理。垂直弹性处理指的是对应用程序的扩容处理或缩容处理发生在同一个主机上,例如在同一主机上同时运行多个具有相同功能的应用程序;水平弹性处理指对应用程序的扩容处理或缩容处理发生在不同主机之间,该种跨主机的弹性处理适用于分布式集群中,如集群服务器。
在无服务器应用(Serverless)构架中的自动扩/缩容场景中,可以通过对应用程序的扩/缩容过程进行监控和管理的弹性调度平台提供应用程序的扩/缩容服务。现有的扩容过程大多采用冷启动的方式启动需要扩容的应用程序,该过程需要完整经历程序代码加载、启动应用程序、分配应用程序的运行资源以及对应用程序进行初始化等环节,所消耗的时间较长,极大地阻碍了上述弹性调度平台对应用程序的弹性处理能力,例如,应用程序的扩/缩容时间过长,则上述弹性调度平台需要提前很长时间在主机上部署大批应用程序副本,以此应对激增的业务流量,并且上述弹性调度平台无法在业务流量陷入低谷时及时对应用程序进行缩容,无法及时释放资源,将导致计算资源被浪费。
针对上述应用服务场景,为了提高应用程序的扩容或缩容等弹性处理效率,缩短弹性处理时间,本申请提供了一种应用程序的处理方法、与该方法相对应的应用程序的处理装置、电子设备以及计算机可读取存储介质,本申请另外提供一种应用程序的处理方法、与该方法相对应的应用程序的处理装置、电子设备以及计算机可读取存储介质。以下提供实施例对所述方法、装置、电子设备以及计算机可读取存储介质进行详细说明。
本申请第一实施例提供一种应用程序的处理方法,该方法的实施主体可以为能够对应用程序的扩/缩容过程进行监控和管理的弹性调度平台。图2为本申请第一实施例提供的应用程序的处理方法流程图,以下结合图2对本实施例提供的方法进行详细描述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。
如图2所示,本实施例提供的应用程序的处理方法包括如下步骤:
S101,获得运行态的目标应用程序的快照文件。
目标应用程序指的是与预定的业务流量需求相对应的、可用于进行扩容或缩容处理的应用程序;运行态的目标应用程序指的是处于运行状态的上述应用程序。
本步骤用于获得处于运行态的目标应用程序的快照文件,可通过如下两个阶段实现该步骤:首先,获得运行态的目标应用程序在内核中的数据;其次,将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件。上述两个阶段可通过不同的应用节点分别实施,例如,可以由第一应用节点获得运行态的目标应用程序在内核中的数据,并将获得的内容传输至第二应用节点,由该第二应用节点生成上述快照文件;或者在同一应用节点中实现上述两个阶段。
上述获得运行态的目标应用程序在内核中的数据,具体可采用冷启动的方式启动所述目标应用程序,使该目标应用程序处于可服务状态之后,获取处于可服务状态的该目标应用程序在内核的数据结构。冷启动的过程实质为对目标应用程序进行的代码加载、启动、分配运行资源以及初始化等环节。在冷启动目标应用程序之后,为了使该目标应用程序在短时间内处于最佳运行状态,需要对其进行引流预热,具体为预先将上述处于运行状态的目标应用程序所需要的运行资源分配至预定位置处。
在本实施例中,上述处于运行状态的目标应用程序在内核中的数据为处于运行状态的目标应用程序对应的进程在内核中的数据,该进程在内核中的数据包括进程的文件句柄、进程的线程信息、进程的地址空间、进程在运行过程中修改或创建的文件信息以及进程在内核的其它兜底数据。文件句柄包含普通文件、套接字、eventfd、signalfd、pipe等系统调用函数以及用于数据传输的文件队列等多种文件形式;进程的线程信息包括线程的数据结构以及寄存器信息等;进程的地址空间为进程的主要数据内容,其包含代码段、数据段、内存映射文件、共享内存段以及匿名内存映射数据等;进程在运行过程中修改或创建的文件信息指的是在对应用程序进行冷启动和引流预热的过程中所修改或创建的文件信息,可通过分层文件系统技术查找该文件信息。
上述将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件,可以是指将上述获得的运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,生成目标应用程序对应的进程的快照文件,该快照文件用于对进程的运行态信息进行记录。
上述将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中的过程具体包括:将运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;将运行态的目标应用程序对应的进程的线程信息转储到预定文件中;将运行态的目标应用程序对应的进程的地址空间转储到预定文件中;将运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中;将运行态的目标应用程序对应的进程在内核的其它兜底数据转储到预定文件中。为了避免生成的快照文件过大,需要将运行态的目标应用程序对应的进程的地址空间选择性地转储到预定文件中,主要将分配给所述运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中,该过程可采用将用于导出内存数据的寄生虫代码注入到运行态的目标应用程序对应的进程的地址空间中的方法实现,对于非匿名的内存区域所对应的内存数据,则不进行转储。
为了进一步缩减上述快照文件的大小,在生成所述运行态的目标应用程序的快照文件之前,还可通过内存回收功能回收未被运行态的目标应用程序对应的进程所使用的内存数据所占用的内存,即回收掉无效内存。
S102,将运行态的目标应用程序的快照文件提供给目标扩容设备;
目标扩容设备指的是针对上述目标应用程序具有扩容需求的、需要运行该目标应用程序的设备,例如集群服务器中的主机。在上述步骤获得运行态的目标应用程序的快照文件之后,本步骤用于将上述快照文件提供给需要运行上述目标应用程序的目标扩容设备。
本实施例中,将运行态的目标应用程序的快照文件提供给目标扩容设备指的是将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中后所生成的快照文件提供给目标扩容设备,如果对目标应用程序的扩容处理发生在同一设备上,即目标扩容设备与初始运行上述目标应用程序的设备为同一设备,则通过将快照文件在上述目标扩容设备上进行复制的方法即可实现将快照文件提供给目标扩容设备;如果对目标应用程序的扩容处理发生在不同主机之间,则可通过分布式文件系统或者通过P2P网络将该快照文件分发至目标扩容设备,例如图1中所示,将运行态的目标应用程序的快照文件同时提供给A、B、C、D四个目标扩容设备。
S103,指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本。
在上述步骤将运行态的目标应用程序的快照文件提供给目标扩容设备之后,如图1所示,本步骤用于指示该目标扩容设备根据上述快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,在本实施例中,该过程为指示所述目标扩容设备根据运行态的目标应用程序对应的进程的快照文件,生成与该进程具有相同功能的运行态的进程副本。具体可指示目标扩容设备根据上述快照文件生成指定数量的运行态进程副本,还可指示目标扩容设备在指定时间、根据上述快照文件生成指定数量的运行态进程副本。
在本实施例中,在对目标应用程序的运行需求下降时,还可指示目标扩容设备删除其生成的应用程序副本,例如,根据实际业务流量判断需要删除的目标应用程序的数量,并指示目标扩容设备删除该数量的目标应用程序;并且,还可预先确定删除应用程序副本的时间,并指示目标扩容设备按照该预定时间删除预定数量的应用程序副本。
本申请第二实施例提供一种应用程序的处理方法,该实施例的实施主体可以为上述第一实施例中的目标扩容设备,与上述第一实施例配合完成针对目标应用程序的扩容或缩容。如图3所示,该方法包括如下步骤:
S201,获得运行态的目标应用程序的快照文件。
本步骤用于获得处于运行状态的目标应用程序的快照文件,可通过接收上述对应用程序的扩/缩容过程进行监控和管理的弹性调度平台所分发的快照文件的方式实现该过程。
在本实施例中,获得运行态的目标应用程序的快照文件指的是获得运行态的目标应用程序对应的进程的快照文件,该快照文件包含进程的线程信息、进程运行时所需的文件句柄、进程的地址空间、进程在运行过程中所修改或创建的文件信息以及进程在内核的其它兜底数据。
S202,获得根据运行态的目标应用程序的快照文件生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息。
在上述步骤获得运行态的目标应用程序的快照文件之后,本步骤用于接收上述对应用程序的扩/缩容过程进行监控和管理的弹性调度平台所发出的根据该快照文件生成与上述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息。本实施例中,该过程为获得根据上述运行态的目标应用程序对应的进程的快照文件生成与该进程具有相同功能的进程副本的指示信息,该指示信息中还包含生成的进程副本的数量。
S203,根据上述指示信息以及上述运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本。
在经上述步骤获得运行态的目标应用程序的快照文件以及根据该快照文件生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息之后,如图1所示,本步骤用于根据该指示信息以及运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,具体为根据指示信息以及运行态的目标应用程序对应的进程的快照文件,生成与该进程具有相同功能的进程副本,以提供与目标应用程序对等的服务,并且,生成的进程副本的数量可以为多个。如图4所示,该过程具体包括如下子步骤:
S2031,提供用于对运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境,如图1所示,该过程具体为:在目标扩容设备中创建用于对所述快照文件进行恢复的特定命名空间,隔离环境的数量与预生成的进程副本的数量一致。该过程可通过容器技术、虚拟机技术以及Unikernel技术等应用虚拟化技术中的一种来实现,Unikernel是通过使用专门的库操作系统来构建的单地址空间机器镜像。其中,在容器技术中,与目标应用程序相对应的版本的容器镜像可提供该目标应用程序运行时所需的各类文件,该版本的容器镜像可作为恢复多个目标应用程序的运行时所利用的隔离环境。
S2032,对所述运行态的目标应用程序对应的进程的快照文件进行解析,提取出所述进程在内核中的数据;该进程在内核中的数据包括:目标应用程序对应的进程在运行时所打开的文件句柄、进程的线程信息以及进程的内存信息。
S2033,在所述隔离环境中,根据所述运行态的目标应用程序在内核中的数据生成与所述运行态的目标应用程序对应的进程具有相同功能的运行态进程副本。该步骤包含如下过程:在所述隔离环境中,根据所述线程信息创建进程树,该过程中,进程的所有线程的PID需要保持一致,不能与其它进程发生冲突,具体可采用对创建进程的函数进行系统调用的方式创建进程树;基于该进程树打开所述文件句柄,该文件句柄为目标应用程序的核心数据结构,包含普通文件、套接字、Eventfd、signalfd、pipe等系统调用函数以及用于数据传输的文件队列等多种文件形式,其与应用程序的执行功能相对应,例如,当应用程序需要执行发送数据至其它服务器时,需打开网络文件句柄,具体为应用程序运行时所需要的代码文件以及数据文件等,该代码文件以及数据文件需要放置在与运行态的目标应用程序相同的路径上;将所述内存信息中的内存数据映射至所述进程树的虚拟地址空间中,生成进程副本的地址空间;切换进程副本的状态为运行态。
由于针对目标应用程序的扩容过程中,目标应用程序对应的主机信息或者容器信息发生了变更,导致主机的IP、域名等发生了变化,并且进程副本的身份信息相较于运行态的目标应用程序对应进程发生了变化,例如,根据上述快照文件恢复获得的进程副本与目标应用程序对应的进程的状态一致,然而,每个进程具有自身独特的身份信息,比如从其它服务器获取的唯一ID以及与其它服务器建立的网络连接等,因此需要查找获得恢复上述进程副本的运行时需要更新的状态数据,并加载该状态数据,切换该状态数据为进程副本的主机信息和进程副本的身份信息,获得该状态数据的方式可以:通过比较所述目标进程和进程副本的内存布局的方式确定出所述进程副本相较于进程的发生变化的主机信息和身份信息,具体可通过迭代进程和进程副本的内存中的变量的值获得上述恢复进程副本的运行时需要更新的状态数据。
在本实施例中,目标扩容设备还可接收删除该运行态的目标应用程序副本的指示信息,并且按照该指示信息删除所述运行态的目标应用程序副本。删除该运行态的目标应用程序副本的过程可以为:删除预定数量的运行态的目标应用程序副本,进一步的,还可以为按照预定时间删除预定数量的运行态的目标应用程序副本。例如,当集群服务器的业务流量降低时,相应的针对目标应用程序的运行需求下降,因此目标扩容设备可接收到来自弹性调度平台发出的在预定时间删除预定数量的运行态的目标应用程序副本的指示信息,并且按照该指示信息执行相应的删除操作。通过该种方式,在业务流量陷入低谷时可及时对目标扩容设备上的目标应用程序进行缩容处理,及时释放资源,避免集群服务器的主机的计算资源被浪费。
上述第一实施例和第二实施例,通过对运行态的目标应用程序对应的进程的文件句柄、线程信息、地址空间等所有在内核中的数据进行转储而获得该进程的快照文件,并且将该快照文件提供给针对上述目标应用程序具有扩容需求的目标扩容设备,在业务流量激增时,可快速指示该目标扩容设备根据该快照文件生成与上述运行态的目标应用程序对应的进程具有相同功能的进程副本。目标扩容设备在获得上述快照文件,并且接收到根据该快照文件生成与上述进程具有相同功能的进程副本的指示之后,在本地提供的隔离环境中对快照文件进行恢复,生成与上述运行态的目标应用程序对应的进程具有相同功能的运行态进程副本。通过上述过程,可实现对该目标应用程序进行快速扩容。并且,在业务流量萎缩时,可删除运行于上述目标扩容地址上的目标应用程序副本,实现对该目标应用程序进行快速缩容。
上述第一实施例提供了一种应用程序的处理方法,与之相对应的,本申请第三实施例还提供了一种应用程序的处理装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的技术特征的细节部分请参见上述提供的方法实施例的对应说明即可,下述对装置实施例的描述仅仅是示意性的。
请参考图5理解该实施例,图5为本实施例提供的装置的单元框图,如图5所示,本实施例提供的装置包括:
快照文件获得单元301,用于获得运行态的目标应用程序的快照文件;
快照文件提供单元302,用于将运行态的目标应用程序的快照文件提供给目标扩容设备;
指示单元303,用于指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,快照文件获得单元301包括:数据获得子单元和快照文件生成子单元,数据获得子单元用于获得运行态的目标应用程序在内核中的数据;快照文件生成子单元用于将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件。
可选的,数据获得子单元具体用于获得运行态的目标应用程序对应的进程在内核中的数据;具体可以为:采用冷启动的方式启动目标应用程序,获取处于可服务状态的目标应用程序在内核的数据结构,并且预先将目标应用程序所需要的运行资源分配至预定位置处
快照文件生成子单元具体用于将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,生成进程的快照文件;例如,将运行态的目标应用程序对应的进程的文件句柄、线程信息、地址空间以及进程在运行过程中所修改或创建的文件信息存储至预定文件中,其中,将运行态的目标应用程序对应的进程的地址空间转储到预定文件中具体为:将分配给运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中,以此减小快照文件的大小。并且,生成运行态的目标应用程序的快照文件之前,还需要回收未被运行态的目标应用程序使用的内存数据所占用的内存。
快照文件提供单元302具体用于将进程的快照文件提供给目标扩容设备;例如通过分布式文件系统将运行态的目标应用程序的快照文件分发至目标扩容设备,或者通过P2P网络将运行态的目标应用程序的快照文件分发至目标扩容设备。
指示单元303具体用于指示目标扩容设备根据进程的快照文件,生成与运行态的目标应用程序对应的进程具有相同功能的运行态的进程副本,具体可生成指定数量的应用程序副本,或者指示目标扩容设备在指定的时间根据快照文件生成应用程序副本。
该装置还包括:指示删除副本单元,用于指示目标扩容设备删除应用程序副本,具体用于指示目标扩容设备删除预定数量的应用程序副本,或者用于指示目标扩容设备按照预定时间删除预定数量的应用程序副本。
在上述的实施例中,提供了一种应用程序的处理方法以及一种应用程序的处理装置,此外,本申请第四实施例还提供一种电子设备,该电子设备实施例如下:
请参考图6理解本实施例,图6为本实施例提供的电子设备的示意图。
如图6所示,所述电子设备包括:处理器401;存储器402;
所述存储器402,用于存储应用程序的处理程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件。
可选的,获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件,包括:将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,生成进程的快照文件;
将运行态的目标应用程序的快照文件提供给目标扩容设备,包括:将进程的快照文件提供给目标扩容设备;
指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示目标扩容设备根据进程的快照文件,生成与运行态的目标应用程序对应的进程具有相同功能的运行态的进程副本。
可选的,将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,包括:
将运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中。
可选的,将运行态的目标应用程序对应的进程的地址空间转储到预定文件中,包括:将分配给运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
可选的,指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示目标扩容设备根据快照文件,生成指定数量的应用程序副本。
可选的,指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示目标扩容设备在指定的时间,根据快照文件,生成应用程序副本。
可选的,获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动目标应用程序,获取处于可服务状态的目标应用程序在内核的数据结构。
可选的,在采用冷启动的方式启动目标应用程序之后,还包括:
预先将目标应用程序所需要的运行资源分配至预定位置处。
可选的,在将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件之前,还包括:
回收未被运行态的目标应用程序使用的内存数据所占用的内存。
可选的,将运行态的目标应用程序的快照文件提供给目标扩容设备,包括:通过分布式文件系统将运行态的目标应用程序的快照文件分发至目标扩容设备;
或者,通过P2P网络将运行态的目标应用程序的快照文件分发至目标扩容设备。
可选的,还包括:指示目标扩容设备删除应用程序副本。
可选的,指示目标扩容设备删除运行态的应用程序副本,包括:指示目标扩容设备删除预定数量的应用程序副本。
可选的,指示目标扩容设备删除运行态的应用程序副本,包括:指示目标扩容设备按照预定时间删除预定数量的应用程序副本。
在上述的实施例中,提供了一种应用程序的处理方法、一种应用程序的处理装置以及一种电子设备,此外,本申请第五实施例还提供了一种用于存储应用程序的处理程序的计算机可读取存储介质。本申请提供的所述计算机可读取存储介质实施例描述得比较简单,相关部分请参见上述方法实施例的对应说明即可,下述描述的实施例仅仅是示意性的。
本实施例提供一种计算机可读取存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件。
可选的,获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件,包括:将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,生成进程的快照文件;
将运行态的目标应用程序的快照文件提供给目标扩容设备,包括:将进程的快照文件提供给目标扩容设备;
指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示目标扩容设备根据进程的快照文件,生成与运行态的目标应用程序对应的进程具有相同功能的运行态的进程副本。
可选的,将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,包括:
将运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中。
可选的,将运行态的目标应用程序对应的进程的地址空间转储到预定文件中,包括:将分配给运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
可选的,指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示目标扩容设备根据快照文件,生成指定数量的应用程序副本。
可选的,指示目标扩容设备根据运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示目标扩容设备在指定的时间,根据快照文件,生成应用程序副本。
可选的,获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动目标应用程序,获取处于可服务状态的目标应用程序在内核的数据结构。
可选的,在采用冷启动的方式启动目标应用程序之后,还包括:
预先将目标应用程序所需要的运行资源分配至预定位置处。
可选的,在将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件之前,还包括:
回收未被运行态的目标应用程序使用的内存数据所占用的内存。
可选的,将运行态的目标应用程序的快照文件提供给目标扩容设备,包括:通过分布式文件系统将运行态的目标应用程序的快照文件分发至目标扩容设备;
或者,通过P2P网络将运行态的目标应用程序的快照文件分发至目标扩容设备。
可选的,还包括:指示目标扩容设备删除应用程序副本。
可选的,指示目标扩容设备删除运行态的应用程序副本,包括:指示目标扩容设备删除预定数量的应用程序副本。
可选的,指示目标扩容设备删除运行态的应用程序副本,包括:指示目标扩容设备按照预定时间删除预定数量的应用程序副本。
上述第二实施例提供了一种应用程序的处理方法,与之相对应的,本申请第六实施例还提供了一种应用程序的处理装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的技术特征的细节部分请参见上述提供的方法实施例的对应说明即可,下述对装置实施例的描述仅仅是示意性的。
请参考图7理解该实施例,图7为本实施例提供的装置的单元框图,如图7所示,本实施例提供的装置包括:
快照文件获得单元501,用于获得运行态的目标应用程序的快照文件;
指示信息获得单元502,用于获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
应用程序副本生成单元503,用于根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
快照文件获得单元501具体用于获得运行态的目标应用程序对应的进程的快照文件;
指示信息获得单元502具体用于获得根据进程的快照文件生成与进程具有相同功能的进程副本的指示信息;
应用程序副本生成单元503具体用于根据指示信息以及进程的快照文件,生成与进程具有相同功能的进程副本。该过程包含如下内容:提供用于对运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境,具体为创建用于对快照文件进行恢复的特定命名空间;对快照文件进行解析,提取出运行态的目标应用程序对应的进程在内核中的数据,该数据包括文件句柄、线程信息以及内存信息;在隔离环境中,根据运行态的目标应用程序对应的进程在内核中的数据生成与进程具有相同功能的运行态进程副本,其包括如下细节:在隔离环境中,根据线程信息创建进程树;基于进程树打开文件句柄;将内存信息中的内存数据映射至进程树的虚拟地址空间中;获得恢复进程副本时需要更新的状态数据,并加载状态数据,该状态数据可以为进程副本的主机信息和进程副本的身份信息;获得恢复进程副本时需要更新的状态数据可通过比较进程和进程副本的内存布局的方式确定出进程副本相较于进程的发生变化的主机信息和身份信息。
该装置还包括:
删除副本的指示信息接收单元,用于接收删除运行态的目标应用程序副本的指示信息;
删除副本执行单元,用于按照指示信息删除运行态的目标应用程序副本,具体包括删除预定数量的运行态的目标应用程序副本或者按照预定时间删除预定数量的运行态的目标应用程序副本。
在上述的实施例中,提供了一种应用程序的处理方法以及一种应用程序的处理装置,此外,本申请第七实施例还提供一种电子设备,该电子设备实施例如下:
请参考图8理解本实施例,图8为本实施例提供的电子设备的示意图。
如图8所示,所述电子设备包括:处理器601;存储器602;
所述存储器602,用于存储应用程序的处理程序,所述程序在被所述处理器601读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
获得根据运行态的目标应用程序的快照文件生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息,包括:获得根据进程的快照文件生成与进程具有相同功能的进程副本的指示信息;
根据指示信息以及运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:根据指示信息以及进程的快照文件,生成与进程具有相同功能的进程副本。
可选的,根据指示信息以及进程的快照文件,生成与进程具有相同功能的进程副本,包括:提供用于对运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境;对快照文件进行解析,提取出运行态的目标应用程序对应的进程在内核中的数据;在隔离环境中,根据运行态的目标应用程序对应的进程在内核中的数据生成与进程具有相同功能的运行态进程副本。
可选的,运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息;在隔离环境中,根据运行态的目标应用程序对应的进程在内核中的数据生成与进程具有相同功能的运行态进程副本,包括:
在隔离环境中,根据线程信息创建进程树;
基于进程树打开文件句柄;
将内存信息中的内存数据映射至进程树的虚拟地址空间中;
获得恢复进程副本时需要更新的状态数据,并加载状态数据。
可选的,恢复进程副本时需要更新的状态数据包括:进程副本的主机信息和进程副本的身份信息;获得恢复进程副本时需要更新的状态数据,包括:
通过比较进程和进程副本的内存布局的方式确定出进程副本相较于进程的发生变化的主机信息和身份信息。
可选的,提供用于对运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境,包括:创建用于对快照文件进行恢复的特定命名空间。
可选的,还包括:
接收删除运行态的目标应用程序副本的指示信息;
按照指示信息删除运行态的目标应用程序副本。
可选的,删除运行态的目标应用程序副本包括:
删除预定数量的运行态的目标应用程序副本。
可选的,删除运行态的目标应用程序副本包括:
按照预定时间删除预定数量的运行态的目标应用程序副本。
在上述的实施例中,提供了一种应用程序的处理方法、一种应用程序的处理装置以及一种电子设备,此外,本申请第八实施例还提供了一种用于存储应用程序的处理程序的计算机可读取存储介质。本申请提供的所述计算机可读取存储介质实施例描述得比较简单,相关部分请参见上述方法实施例的对应说明即可,下述描述的实施例仅仅是示意性的。
本实施例提供一种计算机可读取存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本。
可选的,获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
获得根据运行态的目标应用程序的快照文件生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息,包括:获得根据进程的快照文件生成与进程具有相同功能的进程副本的指示信息;
根据指示信息以及运行态的目标应用程序的快照文件,生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:根据指示信息以及进程的快照文件,生成与进程具有相同功能的进程副本。
可选的,根据指示信息以及进程的快照文件,生成与进程具有相同功能的进程副本,包括:提供用于对运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境;对快照文件进行解析,提取出运行态的目标应用程序对应的进程在内核中的数据;在隔离环境中,根据运行态的目标应用程序对应的进程在内核中的数据生成与进程具有相同功能的运行态进程副本。
可选的,运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息;在隔离环境中,根据运行态的目标应用程序对应的进程在内核中的数据生成与进程具有相同功能的运行态进程副本,包括:
在隔离环境中,根据线程信息创建进程树;
基于进程树打开文件句柄;
将内存信息中的内存数据映射至进程树的虚拟地址空间中;
获得恢复进程副本时需要更新的状态数据,并加载状态数据。
可选的,恢复进程副本时需要更新的状态数据包括:进程副本的主机信息和进程副本的身份信息;获得恢复进程副本时需要更新的状态数据,包括:
通过比较进程和进程副本的内存布局的方式确定出进程副本相较于进程的发生变化的主机信息和身份信息。
可选的,提供用于对运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境,包括:创建用于对快照文件进行恢复的特定命名空间。
可选的,还包括:
接收删除运行态的目标应用程序副本的指示信息;
按照指示信息删除运行态的目标应用程序副本。
可选的,删除运行态的目标应用程序副本包括:
删除预定数量的运行态的目标应用程序副本。
可选的,删除运行态的目标应用程序副本包括:
按照预定时间删除预定数量的运行态的目标应用程序副本。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (27)
1.一种应用程序的处理方法,其特征在于,包括:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件;
所述获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
所述将所述运行态的目标应用程序在内核中的数据存储至预定文件中,包括:
将所述运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将所述运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将所述运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中,生成所述进程的快照文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述运行态的目标应用程序的快照文件提供给目标扩容设备,包括:将所述进程的快照文件提供给目标扩容设备;
所述指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:指示所述目标扩容设备根据所述进程的快照文件,生成与所述运行态的目标应用程序对应的进程具有相同功能的运行态的进程副本。
3.根据权利要求1所述的方法,其特征在于,所述将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中,包括:
将分配给所述运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
4.根据权利要求1所述的方法,其特征在于,所述获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动所述目标应用程序,获取处于可服务状态的目标应用程序在内核的数据结构。
5.根据权利要求4所述的方法,其特征在于,在采用冷启动的方式启动所述目标应用程序之后,还包括:
预先将所述目标应用程序所需要的运行资源分配至预定位置处。
6.根据权利要求1所述的方法,其特征在于,在将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件之前,还包括:
回收未被所述运行态的目标应用程序使用的内存数据所占用的内存。
7.根据权利要求1所述的方法,其特征在于,所述指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:
指示所述目标扩容设备根据所述快照文件,生成指定数量的所述应用程序副本。
8.根据权利要求1所述的方法,其特征在于,所述指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:
指示所述目标扩容设备在指定的时间,根据所述快照文件,生成所述应用程序副本。
9.根据权利要求1所述的方法,其特征在于,所述将所述运行态的目标应用程序的快照文件提供给目标扩容设备,包括:
通过分布式文件系统将所述运行态的目标应用程序的快照文件分发至所述目标扩容设备;
或者,通过P2P网络将所述运行态的目标应用程序的快照文件分发至所述目标扩容设备。
10.根据权利要求1所述的方法,其特征在于,还包括:
指示所述目标扩容设备删除所述应用程序副本。
11.根据权利要求10所述的方法,其特征在于,所述指示所述目标扩容设备删除所述应用程序副本,包括:
指示所述目标扩容设备删除预定数量的所述应用程序副本。
12.根据权利要求10所述的方法,其特征在于,所述指示所述目标扩容设备删除所述应用程序副本,包括:
指示所述目标扩容设备按照预定时间删除预定数量的所述应用程序副本。
13.一种应用程序的处理方法,其特征在于,包括:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
所述运行态的目标应用程序对应的进程的快照文件包括:运行态的目标应用程序对应的进程在内核中的数据;
所述运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息。
14.根据权利要求13所述的方法,其特征在于,
所述获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息,包括:获得根据所述进程的快照文件生成与所述进程具有相同功能的进程副本的指示信息;
所述根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本,包括:根据所述指示信息以及所述进程的快照文件,生成与所述进程具有相同功能的进程副本。
15.根据权利要求14所述的方法,其特征在于,所述根据所述指示信息以及所述进程的快照文件,生成与所述进程具有相同功能的进程副本,包括:
提供用于对所述运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境;
对所述快照文件进行解析,提取出所述运行态的目标应用程序对应的进程在内核中的数据;
在所述隔离环境中,根据所述运行态的目标应用程序对应的进程在内核中的数据生成与所述进程具有相同功能的运行态进程副本。
16.根据权利要求15所述的方法,其特征在于,所述在所述隔离环境中,根据所述运行态的目标应用程序对应的进程在内核中的数据生成与所述进程具有相同功能的运行态进程副本,包括:
在所述隔离环境中,根据所述线程信息创建进程树;
基于所述进程树打开所述文件句柄;
将所述内存信息中的内存数据映射至所述进程树的虚拟地址空间中;
获得恢复所述进程副本时需要更新的状态数据,并加载所述状态数据。
17.根据权利要求16所述的方法,其特征在于,所述恢复所述进程副本时需要更新的状态数据包括:所述进程副本的主机信息和所述进程副本的身份信息;所述获得恢复进程副本时需要更新的状态数据,包括:
通过比较所述进程和进程副本的内存布局的方式确定出所述进程副本相较于所述进程的发生变化的主机信息和身份信息。
18.根据权利要求15所述的方法,其特征在于,所述提供用于对所述运行态的目标应用程序对应的进程的快照文件进行恢复的隔离环境,包括:创建用于对所述快照文件进行恢复的特定命名空间。
19.根据权利要求13所述的方法,其特征在于,还包括:
接收删除所述运行态的目标应用程序副本的指示信息;
按照所述指示信息删除所述运行态的目标应用程序副本。
20.根据权利要求19所述的方法,其特征在于,所述删除所述运行态的目标应用程序副本包括:
删除预定数量的运行态的目标应用程序副本。
21.根据权利要求19所述的方法,其特征在于,所述删除所述运行态的目标应用程序副本包括:
按照预定时间删除预定数量的运行态的目标应用程序副本。
22.一种应用程序的处理装置,其特征在于,包括:
快照文件获得单元,用于获得运行态的目标应用程序的快照文件;
快照文件提供单元,用于将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示单元,用于指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件;
所述获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
所述将所述运行态的目标应用程序在内核中的数据存储至预定文件中,包括:
将所述运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将所述运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将所述运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中,生成所述进程的快照文件。
23.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储应用程序的处理程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件;
所述获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
所述将所述运行态的目标应用程序在内核中的数据存储至预定文件中,包括:
将所述运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将所述运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将所述运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中,生成所述进程的快照文件。
24.一种计算机可读取存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件提供给目标扩容设备;
指示所述目标扩容设备根据所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件;
所述获得运行态的目标应用程序在内核中的数据,包括:获得运行态的目标应用程序对应的进程在内核中的数据;
所述将所述运行态的目标应用程序在内核中的数据存储至预定文件中,包括:
将所述运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;
将所述运行态的目标应用程序对应的进程的线程信息转储到预定文件中;
将所述运行态的目标应用程序对应的进程的地址空间转储到预定文件中;
将所述运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中,生成所述进程的快照文件。
25.一种应用程序的处理装置,其特征在于,包括:
快照文件获得单元,用于获得运行态的目标应用程序的快照文件;
指示信息获得单元,用于获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
应用程序副本生成单元,用于根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
所述运行态的目标应用程序对应的进程的快照文件包括:运行态的目标应用程序对应的进程在内核中的数据;
所述运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息。
26.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储应用程序的处理程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
所述运行态的目标应用程序对应的进程的快照文件包括:运行态的目标应用程序对应的进程在内核中的数据;
所述运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息。
27.一种计算机可读取存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获得运行态的目标应用程序的快照文件;
获得根据所述运行态的目标应用程序的快照文件生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本的指示信息;
根据所述指示信息以及所述运行态的目标应用程序的快照文件,生成与所述运行态的目标应用程序具有相同功能的运行态的应用程序副本;
其中,所述获得运行态的目标应用程序的快照文件,包括:获得运行态的目标应用程序对应的进程的快照文件;
所述运行态的目标应用程序对应的进程的快照文件包括:运行态的目标应用程序对应的进程在内核中的数据;
所述运行态的目标应用程序对应的进程在内核中的数据包括:文件句柄、线程信息以及内存信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910031503.8A CN111435299B (zh) | 2019-01-14 | 2019-01-14 | 一种应用程序的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910031503.8A CN111435299B (zh) | 2019-01-14 | 2019-01-14 | 一种应用程序的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435299A CN111435299A (zh) | 2020-07-21 |
CN111435299B true CN111435299B (zh) | 2023-06-20 |
Family
ID=71580495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910031503.8A Active CN111435299B (zh) | 2019-01-14 | 2019-01-14 | 一种应用程序的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435299B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327179B (zh) * | 2021-11-30 | 2022-12-16 | 荣耀终端有限公司 | 应用启动方法、电子设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133761A (zh) * | 2013-11-28 | 2014-11-05 | 腾讯科技(成都)有限公司 | 一种移动终端的内存占用分析方法、装置和系统 |
CN104156367A (zh) * | 2013-05-14 | 2014-11-19 | 阿里巴巴集团控股有限公司 | 一种搜索引擎的扩容方法及搜索服务系统 |
CN105242987A (zh) * | 2015-09-22 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种快照扩容的灾备方法、装置及系统 |
WO2017028719A1 (zh) * | 2015-08-19 | 2017-02-23 | 阿里巴巴集团控股有限公司 | 元数据输出方法、客户端和元数据服务器 |
CN107908460A (zh) * | 2017-11-23 | 2018-04-13 | 平安科技(深圳)有限公司 | 虚拟机快速扩容方法、装置、设备以及存储介质 |
WO2018076973A1 (zh) * | 2016-10-28 | 2018-05-03 | 华为技术有限公司 | 一种负载调整方法、装置及系统 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
US10169065B1 (en) * | 2016-06-29 | 2019-01-01 | Altera Corporation | Live migration of hardware accelerated applications |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100293144A1 (en) * | 2009-05-15 | 2010-11-18 | Bonnet Michael S | Using snapshotting and virtualization to perform tasks in a known and reproducible environment |
US9348634B2 (en) * | 2013-08-12 | 2016-05-24 | Amazon Technologies, Inc. | Fast-booting application image using variation points in application source code |
-
2019
- 2019-01-14 CN CN201910031503.8A patent/CN111435299B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156367A (zh) * | 2013-05-14 | 2014-11-19 | 阿里巴巴集团控股有限公司 | 一种搜索引擎的扩容方法及搜索服务系统 |
CN104133761A (zh) * | 2013-11-28 | 2014-11-05 | 腾讯科技(成都)有限公司 | 一种移动终端的内存占用分析方法、装置和系统 |
WO2017028719A1 (zh) * | 2015-08-19 | 2017-02-23 | 阿里巴巴集团控股有限公司 | 元数据输出方法、客户端和元数据服务器 |
CN105242987A (zh) * | 2015-09-22 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种快照扩容的灾备方法、装置及系统 |
US10169065B1 (en) * | 2016-06-29 | 2019-01-01 | Altera Corporation | Live migration of hardware accelerated applications |
WO2018076973A1 (zh) * | 2016-10-28 | 2018-05-03 | 华为技术有限公司 | 一种负载调整方法、装置及系统 |
CN107908460A (zh) * | 2017-11-23 | 2018-04-13 | 平安科技(深圳)有限公司 | 虚拟机快速扩容方法、装置、设备以及存储介质 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111435299A (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169083B (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
CN111182067B (zh) | 一种基于星际文件系统ipfs的数据写入方法及设备 | |
CN107729020B (zh) | 一种实现大规模容器快速部署的方法 | |
CN104580439B (zh) | 一种云存储系统中使数据均匀分布的方法 | |
EP3076307A1 (en) | Method and device for responding to a request, and distributed file system | |
CN106663022A (zh) | 对使用外部化存储页面的虚拟机的实时迁移 | |
US20060136779A1 (en) | Object-based storage device with low process load and control method thereof | |
CN111221678B (zh) | Hbase数据备份/恢复系统、方法、装置及电子设备 | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
Chen et al. | Federation in cloud data management: Challenges and opportunities | |
JP2021524104A (ja) | マスター・スタンドバイコンテナシステム切替 | |
CN112000287A (zh) | 一种io请求处理装置、方法、设备及可读存储介质 | |
CN107920101B (zh) | 一种文件访问方法、装置、系统及电子设备 | |
CN109271376A (zh) | 数据库升级方法、装置、设备及存储介质 | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
JP2007041888A (ja) | データベース再構成装置、およびデータベース再構成プログラム | |
CN114594914A (zh) | 用于分布式存储系统的控制方法及系统 | |
CN105760391B (zh) | 数据动态重分布的方法、数据节点、名字节点及系统 | |
CN111435302B (zh) | 一种应用程序的处理方法及装置 | |
CN113296931A (zh) | 一种资源的控制方法、系统、计算设备及存储介质 | |
CN111435299B (zh) | 一种应用程序的处理方法及装置 | |
CN110895545B (zh) | 共享数据同步方法及装置 | |
WO2024207831A1 (zh) | 一种智能ec处理方法与装置 | |
CN109144403B (zh) | 一种用于云盘模式切换的方法与设备 | |
US20180322675A1 (en) | Image Processing Method and Computing Device |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40033299 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |