CN112084058A - 进程处理方法、装置和电子设备 - Google Patents

进程处理方法、装置和电子设备 Download PDF

Info

Publication number
CN112084058A
CN112084058A CN202011013796.6A CN202011013796A CN112084058A CN 112084058 A CN112084058 A CN 112084058A CN 202011013796 A CN202011013796 A CN 202011013796A CN 112084058 A CN112084058 A CN 112084058A
Authority
CN
China
Prior art keywords
parameter value
memory
parameter
sub
target
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
CN202011013796.6A
Other languages
English (en)
Inventor
王贺
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202011013796.6A priority Critical patent/CN112084058A/zh
Publication of CN112084058A publication Critical patent/CN112084058A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/073Error 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 memory management context, e.g. virtual memory or cache management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

本发明提供了一种进程处理方法、装置和电子设备,首先基于目标进程创建子进程;其中的目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;然后设置子进程的指定参数的参数值为第二参数值;其中的第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。该方式中,设置目标进程和子进程的指定参数的参数值之间具有指定的数值关系,在内存溢出时,该数值关系可以使服务中子进程优先于目标进程被终止运行,通过终止子进程进行释放内存,可以降低目标进程被终止运行的概率,进而提高了服务运行的稳定性。

Description

进程处理方法、装置和电子设备
技术领域
本发明涉及计算机***技术领域,尤其是涉及一种进程处理方法、装置和电子设备。
背景技术
在Linux环境下,***内存中运行有大量的服务进程,包括服务的主进程以及在主进程下创建的子进程;当有新的服务需要申请占用内存时,如果这时的内存占用率很高,不足以向新的服务提供充足的内存,就会导致内存申请失败,此时会触发进程终止机制,该机制可以终止当前内存中运行的一部分进程。由于服务的主进程运行时间长、内存占用高,进程终止机制很容易终止主进程,终止主进程会导致服务终止,造成服务运行的稳定性较差。
发明内容
有鉴于此,本发明的目的在于提供一种进程处理方法、装置和电子设备,以提高服务运行的稳定性。
第一方面,本发明实施例提供了一种进程处理方法,该方法包括:基于目标进程创建子进程;其中,目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;设置子进程的指定参数的参数值为第二参数值;其中,第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。
进一步的,第二参数值大于第一参数值,且第二参数值与第一参数值的差值大于预设阈值。
进一步的,设置子进程的指定参数的参数值为第二参数值的步骤之后,方法还包括:当内存溢出时,针对内存中运行的每个进程,基于进程的指定参数的参数值,计算进程的评分;根据每个进程的评分,确定需要终止运行的进程;其中,进程的评分越高,被确定为需要终止运行的进程的概率越大;终止运行确定出的进程。
进一步的,当第二参数值大于第一参数值时,子进程的评分高于目标进程的评分。
进一步的,基于目标进程创建子进程的步骤之后,方法还包括:关闭目标进程的主动删除过期键功能,以降低目标进程的进程数据被更新的概率;其中,主动删除过期键功能用于:当目标进程的进程数据在内存中的存储时间达到指定时间长度时,删除进程数据。
进一步的,关闭目标进程的主动删除过期键功能的步骤之后,方法还包括:当子进程运行结束后,开启目标进程的主动删除过期键功能。
进一步的,设置子进程的指定参数的参数值为第二参数值的步骤,包括:通过目标进程或者子进程,设置子进程的指定参数的参数值为第二参数值。
第二方面,本发明实施例提供了一种进程处理装置,装置包括:创建子进程模块,用于基于目标进程创建子进程;其中,目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;参数设置模块,用于设置子进程的指定参数的参数值为第二参数值;其中,第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面的进程处理方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面的进程处理方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种进程处理方法、装置和电子设备,首先基于目标进程创建子进程;其中的目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;然后设置子进程的指定参数的参数值为第二参数值;其中的第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。该方式中,设置目标进程和子进程的指定参数的参数值之间具有指定的数值关系,在内存溢出时,该数值关系可以使服务中子进程优先于目标进程被终止运行,通过终止子进程释放内存,可以降低目标进程被终止运行的概率,进而提高了服务运行的稳定性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种进程处理方法的流程图;
图2为本发明实施例提供的另一种进程处理方法的流程图;
图3为本发明实施例提供的另一种进程处理方法的流程图;
图4为本发明实施例提供的一种进程处理装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在Linux环境下,父子进程之间内存通常采用COW(Copy On Write,写时复制)机制,节省了较多内存空间的拷贝,从而减轻了服务内存的使用。但是,当父进程或子进程在修改内存时,都将产生COW机制的副作用,即产生内存的双份占用。比如,Redis(Remotedictionary server,远程字典服务)作为一个全内存数据库,当主从全量复制或者备份时,需要创建子进程产生RDB(Relational Database,关系数据库),在主机的大容量实例内存和I/O(Input/Output,输入/输出)紧张的情况下,并且主进程数据操作的时候,会造成COW机制的副作用,即双份内存拷贝,增加主机内存的使用,如果这时的内存占用率很高,不足以向新的服务提供充足的内存,就会导致内存申请失败,严重的情况下可能会产生OOM(OutOf Memory,内存溢出),此时会触发进程终止机制,即***会终止某些内存使用过高的Redis实例,甚至会导致宕机;由于服务的主进程运行时间长、内存占用高,进程终止机制很容易终止主进程,终止主进程会导致服务终止,造成服务运行的稳定性较差。基于此,本发明实施例提供的一种进程处理方法、装置和电子设备,该技术可以应用于手机、电脑、服务器等终端设备。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种进程处理方法进行详细介绍,如图1所示,该方法包括如下步骤:
步骤S102,基于目标进程创建子进程;其中,目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;
上述内存溢出是指应用***中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,***会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件,而由***配置、数据流、用户代码等原因而导致的内存溢出错误,即使用户重新执行任务依然无法避免。
由于Linux存在OOM kill机制,该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程终止运行。具体的在***申请内存失败的情况下,会触发内存溢出的情况,进而会触发OOM killer事件,该事件会导致***无差别的对所有的服务进程进行评分,包括目标进程和子进程,将评分比较高的进程终止运行。然而目前通常采用的方案主要是在备份数据bgsave或者bgrewriteaof以及主从全量同步的时候,直接fork的子进程去备份数据,并不会对内存溢出的子进程和目标进程中影响评分的主要参数进行调整。
上述指定参数可以是oom_score_adj()函数;该指定参数的参数值的设置范围通常为(-1000,1000);该指定参数的参数值大小可以确定在内存溢出时,***是否终止的该运行的进程。具体的,在内存溢出时,对运行中的进程进行评分时,通常可以由指定参数的参数值决定,如果设置指定参数的参数值为负数,表示最后的评分分数会打一定的折扣;如果设置指定参数的参数值为正数,表示最后的评分分数会增加,可以优先终止该进程;如果设置指定参数的参数值为零,表示不调整最后的评分分数。
因此,在实际实现时,基于目标进程创建子进程的过程中,或者目标进程启动时,可以通过目标进程设置目标进程的指定参数的参数值为第一参数值,该第一参数值为较小的数值,比如-900;另外,目标进程创建子进程的时机,通常是在产生主从全量同步、Redis过期键问题、或者bgsave和bgrewriteaof保存数据任务的时候。
步骤S104,设置子进程的指定参数的参数值为第二参数值;其中,第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。
在设置了目标进程的指定参数的参数值后,为了避免内存溢出时,目标进程被终止运行,还需要设置子进程的指定参数的参数值为第二参数值,该第二参数值的数值较大,比如,1000;通常设置的第二参数值大于第一参数值,且第二参数值与第一参数值的差值大于预设阈值;该预设阈值可以根据实际需求进行设置,比如2000、1000等;上述子进程的指定参数与前述目标进程的指定参数的函数都可以是oom_score_adj()函数。
本实施例提供的一种进程处理方法,首先基于目标进程创建子进程;其中的目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;然后设置子进程的指定参数的参数值为第二参数值;其中的第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。该方式中,设置目标进程和子进程的指定参数的参数值之间具有指定的数值关系,在内存溢出时,该数值关系可以使服务中子进程优先于目标进程被终止运行,通过终止子进程释放内存,可以降低目标进程被终止运行的概率,进而提高了服务运行的稳定性。
本实施例提供了另一种进程处理方法,该方法在上述实施例的基础上实现,本实施例重点描述设置子进程的指定参数的参数值为第二参数值的步骤的具体实现过程(通过步骤S204实现),以及设置子进程的指定参数的参数值为第二参数值的步骤之后的步骤的实现过程(具体通过步骤S206-S210实现),如图2所示,该方法包括如下步骤:
步骤S202,基于目标进程创建子进程;其中,目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;
步骤S204,通过目标进程或者子进程,设置子进程的指定参数的参数值为第二参数值;其中,第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行;
上述指定的数值关系包括第二参数值大于第一参数值,且第二参数值与第一参数值的差值大于预设阈值;还包括通过第二参数值与第一参数值,确定的子进程与目标进程的badness分数具有指定的数值关系,可以是子进程的badness分数大于目标进程的badness分数。
具体的,可以预先在目标进程或者子进程中配置参数设置任务,使目标进程创建子进程后,可以通过目标进程或者子进程,设置子进程的指定参数的参数值为第二参数值;其中第二参数值与第一参数值具有指定的数值关系,该指定的数值关系可以使第二参数值对应的子进程的评分分数大于第一参数对应的目标进程的评分分数;以使内存溢出时,优选选择评分分数最高的进程,将评分分数最高的进程种植运行。
步骤S206,当内存溢出时,针对内存中运行的每个进程,基于进程的指定参数的参数值,计算进程的评分;
当内存溢出时,即触发OOM kill机制时,OMM killer通过检查所有正在运行的进程,然后根据预设的算法,基于进程的指定参数的参数值,计算每一个进程的评分,即badness分数;通常计算进程的评分规则通常是由两部分组成,包括进程的内存占用情况,以及进程的指定参数的参数值;比如,占用内存较多的进程计算的评分较高,内核进程和比较重要的进程计算的评分较低等。
步骤S208,根据每个进程的评分,确定需要终止运行的进程;其中,进程的评分越高,被确定为需要终止运行的进程的概率越大;
步骤S210,终止运行确定出的进程。
计算得到目标进程以及子进程的评分后,根据评分的高低,将进程中评分最高的进程确定为需要终止运行的进程。另外,如果将评分最高的进程终止运行后,还存在内存溢出的情况,可以将继续将除评分最高的进程以外的进程中,评分最高的进程确定为需要终止运行的进程,终止运行确定出的进程,直至不再出现内存溢出的情况。该种方式可以直接利用***的OOM kill机制将服务中的多余任务的子进程的终止,从而释放一部分内存,能够减轻***的压力,继续保持稳定的服务能力,提高了服务运行的稳定性。
另外,当第二参数值大于第一参数值时,子进程的评分高于目标进程的评分;此时,可以将子进程确定为需要终止运行的进程,以保证目标进程正常运行,保持主服务的稳定性。
该方式中,在服务运行过程中,首先设置目标进程指定参数的参数值为第一参数值,基于目标进程创建子进程后,可以通过目标进程或者子进程创建子进程的指定参数的参数值为第二参数值,其中的第二参数值与第一参数值具有指定的数值关系,第二参数值大于第一参数值,且第二参数值与第一参数值的差值大于预设阈值;以使内存溢出时,子进程优先于目标进程被终止运行,提高了目标进程不被终止运行的概率,同时释放了一部分运行内存,进而在优化内存紧张情况下提高了服务运行的稳定性。
另外,Redis过期键问题,即Redis本身存在一种设置特定数据在经过多长时间自动删除的机制。当该自动删除的机制,在产生bgsave和bgrewriteaof任务以及主从全量同步的时候,会导致COW过量的问题,即主进程中的数据到期会自动删除,此时主进程会修改内存,进而会触发内存复制的问题。
比如,在高QPS(Queries Per Second,每秒查询率)情况下由于主进程比子进程的占用内存多,以及Redis过期键问题,内存会产生大量的cow,即内存双倍占用。在触发***的OOM kill机制时,会导致主进程被高分选中被***终止运行,进而停止服务。
基于此,本实施例还提供了另一种进程处理方法,该方法在上述实施例的基础上实现,如图3所示,该方法包括如下步骤:
步骤S302,基于目标进程创建子进程;
步骤S304,关闭目标进程的主动删除过期键功能,以降低目标进程的进程数据被更新的概率;其中,主动删除过期键功能用于:当目标进程的进程数据在内存中的存储时间达到指定时间长度时,删除进程数据;
由于服务在不会产生多余的内存共享的情况下,如果有大量的主动删除过期键,可能会导致内存会有额外的输入,更新进程数据;因此为了使目标进程在运行过程中不产生内存复制,占用内存空间,可以使目标进程的不自动删除过期键;具体的,基于目标进程创建子进程的过程中,可以利用预设的处理规则,使目标进程主动关闭目标进程的主动删除过期键功能,从而降低目标进程的进程数据被更新的概率,减少进程内存的使用。
步骤S306,当子进程运行结束后,开启目标进程的主动删除过期键功能。
为了使目标进程能够在子进程运行结束后,恢复删除过期键功能,删除存储时间超过指定时间的进程数据;可以在子进程运行结束后,通过目标进程设置开启目标进程的主动删除过期键功能。
需要说明的是图1和图2所示的方法,与图3所示的方法可以同时实施,已完成进程处理的目的。即,可以在基于目标进程创建子进程后,可以在设置目标进程的指定参数的参数值为第一参数值时,同时关闭目标进程的主动删除过期键功能;另外,在设置子进程的指定参数的参数值为第二参数值时后,并且在子进程运行结束后,开启目标进程的主动删除过期键功能。
上述方式中,为了保证目标进程的稳定性,可以通过关闭目标进程的主动删除过期键功能,以降低目标进程的进程数据被更新的概率;当子进程运行结束后,开启目标进程的主动删除过期键功能,能够降低目标进程的进程数据被更新的概率,进而避免了目标进程修改内存,触发内存复制的情况,提高了服务运行的稳定性。比如,在保持Redis服务稳定的方法中,可以保持Redis的特性消耗内存操作的时候的主服务的稳定性。
对应上述的方法实施例,本实施例提供了一种进程处理的装置,如图4所示,该装置包括:
创建子进程模块41,用于基于目标进程创建子进程;其中,目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;
参数设置模块42,用于设置子进程的指定参数的参数值为第二参数值;其中,第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。
本发明实施例提供的一种进程处理装置,首先基于目标进程创建子进程;其中的目标进程的指定参数的参数值为第一参数值;指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;然后设置子进程的指定参数的参数值为第二参数值;其中的第二参数值与第一参数值具有指定的数值关系,以使内存溢出时,子进程优先于目标进程被终止运行。该方式中,设置目标进程和子进程的指定参数的参数值之间具有指定的数值关系,在内存溢出时,该数值关系可以使服务中子进程优先于目标进程被终止运行,通过终止子进程释放内存,可以降低目标进程被终止运行的概率,进而提高了服务运行的稳定性。
进一步的,上述第二参数值大于第一参数值,且第二参数值与第一参数值的差值大于预设阈值。
进一步的,上述装置还包括:评分计算模块,用于当内存溢出时,针对内存中运行的每个进程,基于进程的指定参数的参数值,计算进程的评分;进程确定模块,用于根据每个进程的评分,确定需要终止运行的进程;其中,进程的评分越高,被确定为需要终止运行的进程的概率越大;终止运行模块,用于终止运行确定出的进程。
进一步的,当第二参数值大于第一参数值时,子进程的评分高于目标进程的评分。
进一步的,上述装置还包括关闭模块,用于关闭目标进程的主动删除过期键功能,以降低目标进程的进程数据被更新的概率;其中,主动删除过期键功能用于:当目标进程的进程数据在内存中的存储时间达到指定时间长度时,删除进程数据。
进一步的,上述装置还包括开启模块:用于当子进程运行结束后,开启目标进程的主动删除过期键功能。
进一步的,上述参数设置模块还用于:通过目标进程或者子进程,设置子进程的指定参数的参数值为第二参数值。
本发明实施例提供的进程处理的装置,与上述实施例提供的进程处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述进程处理方法。
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述进程处理方法。
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述进程处理方法。
本发明实施例所提供的进程处理方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种进程处理方法,其特征在于,所述方法包括:
基于目标进程创建子进程;其中,所述目标进程的指定参数的参数值为第一参数值;所述指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;
设置所述子进程的所述指定参数的参数值为第二参数值;其中,所述第二参数值与所述第一参数值具有指定的数值关系,以使内存溢出时,所述子进程优先于所述目标进程被终止运行。
2.根据权利要求1所述的方法,其特征在于,所述第二参数值大于所述第一参数值,且所述第二参数值与所述第一参数值的差值大于预设阈值。
3.根据权利要求1所述的方法,其特征在于,设置所述子进程的所述指定参数的参数值为第二参数值的步骤之后,所述方法还包括:
当内存溢出时,针对内存中运行的每个进程,基于所述进程的指定参数的参数值,计算所述进程的评分;
根据每个所述进程的评分,确定需要终止运行的进程;其中,所述进程的评分越高,被确定为需要终止运行的进程的概率越大;
终止运行确定出的进程。
4.根据权利要求3所述的方法,其特征在于,当所述第二参数值大于所述第一参数值时,所述子进程的评分高于所述目标进程的评分。
5.根据权利要求1所述的方法,其特征在于,基于目标进程创建子进程的步骤之后,所述方法还包括:
关闭所述目标进程的主动删除过期键功能,以降低所述目标进程的进程数据被更新的概率;其中,所述主动删除过期键功能用于:当所述目标进程的进程数据在内存中的存储时间达到指定时间长度时,删除所述进程数据。
6.根据权利要求5所述的方法,其特征在于,关闭所述目标进程的主动删除过期键功能的步骤之后,所述方法还包括:当所述子进程运行结束后,开启所述目标进程的主动删除过期键功能。
7.根据权利要求1所述的方法,其特征在于,设置所述子进程的所述指定参数的参数值为第二参数值的步骤,包括:
通过所述目标进程或者所述子进程,设置所述子进程的所述指定参数的参数值为第二参数值。
8.一种进程处理装置,其特征在于,所述装置包括:
创建子进程模块,用于基于目标进程创建子进程;其中,所述目标进程的指定参数的参数值为第一参数值;所述指定参数用于指示:当内存溢出时,从内存中确定需要终止运行的进程;
参数设置模块,用于设置所述子进程的所述指定参数的参数值为第二参数值;其中,所述第二参数值与所述第一参数值具有指定的数值关系,以使内存溢出时,所述子进程优先于所述目标进程被终止运行。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-7所述的进程处理方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-7所述的进程处理方法。
CN202011013796.6A 2020-09-23 2020-09-23 进程处理方法、装置和电子设备 Pending CN112084058A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011013796.6A CN112084058A (zh) 2020-09-23 2020-09-23 进程处理方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011013796.6A CN112084058A (zh) 2020-09-23 2020-09-23 进程处理方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN112084058A true CN112084058A (zh) 2020-12-15

Family

ID=73738874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011013796.6A Pending CN112084058A (zh) 2020-09-23 2020-09-23 进程处理方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN112084058A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416426A (zh) * 2021-12-17 2022-04-29 阿里巴巴(中国)有限公司 进程拷贝方法以及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268019A (zh) * 2014-09-23 2015-01-07 广州金山网络科技有限公司 一种软件运行方法、装置及终端
CN106708615A (zh) * 2016-11-21 2017-05-24 珠海市魅族科技有限公司 一种应用的管理方法及终端
US20170329655A1 (en) * 2016-05-13 2017-11-16 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus of unloading out of memory processing flow to user space
CN109324882A (zh) * 2018-08-22 2019-02-12 深圳点猫科技有限公司 基于Linux***控制应用程序的方法以及电子设备
CN109683977A (zh) * 2017-10-17 2019-04-26 腾讯科技(深圳)有限公司 目标应用的启动方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268019A (zh) * 2014-09-23 2015-01-07 广州金山网络科技有限公司 一种软件运行方法、装置及终端
US20170329655A1 (en) * 2016-05-13 2017-11-16 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus of unloading out of memory processing flow to user space
CN106708615A (zh) * 2016-11-21 2017-05-24 珠海市魅族科技有限公司 一种应用的管理方法及终端
CN109683977A (zh) * 2017-10-17 2019-04-26 腾讯科技(深圳)有限公司 目标应用的启动方法和装置
CN109324882A (zh) * 2018-08-22 2019-02-12 深圳点猫科技有限公司 基于Linux***控制应用程序的方法以及电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LINLIN XIN .ETAL: "An Optimization of Memory Usage Based on the Android Low Memory Management Mechanisms", SPRINGER, 19 September 2020 (2020-09-19) *
LINUXNERD: "Linux内核OOM机制的详细分析", Retrieved from the Internet <URL:http://blog.chinaunix.net/uid-29242873-id-3942763.html> *
陈蒙蒙 等: "基于进程生命周期的虚拟机隐藏进程检测技术", 计算机应用, no. 2, 31 December 2017 (2017-12-31) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416426A (zh) * 2021-12-17 2022-04-29 阿里巴巴(中国)有限公司 进程拷贝方法以及装置

Similar Documents

Publication Publication Date Title
US9195543B2 (en) Method and device for detecting data reliability
US20130042156A1 (en) Utilizing multiple storage devices to reduce write latency for database logging
CN108932249B (zh) 一种管理文件***的方法及装置
CN109062600B (zh) 一种固态硬盘内固件在线升级的实现方法及***
CN111078662A (zh) 一种区块链数据存储方法与装置
CN112506710B (zh) 分布式文件***数据修复方法、装置、设备及存储介质
CN111901176B (zh) 故障确定方法、装置、设备及存储介质
US9330153B2 (en) System, method, and computer readable medium that coordinates between devices using exchange of log files
CN112398692A (zh) 共识流程处理方法、装置和电子设备
CN108647118B (zh) 基于存储集群的副本异常恢复方法、装置及计算机设备
US10489244B2 (en) Systems and methods for detecting and correcting memory corruptions in software
CN112084058A (zh) 进程处理方法、装置和电子设备
TWI518680B (zh) 維護電腦系統之檔案系統的方法
JP2004252692A (ja) ディスクアレイ装置
JP2019159729A (ja) 故障予測システム
CN112104576A (zh) 一种sdn交换机的常驻流表存储与校准方法及***
CN113821414B (zh) 一种服务器保护方法、装置、电子设备及存储介质
CN112083888A (zh) 文件存储方法、装置和电子设备
CN111324632B (zh) 利用客户端侧高速缓存的透明数据库会话恢复
CN110879774B (zh) 一种网元性能数据告警方法及装置
CN109753292B (zh) 一种在多单实例数据库服务中部署多个应用的方法及装置
CN114675995A (zh) 数据备份方法、装置和电子设备
CN114625702A (zh) 数据的存储方法、装置、***及电子设备
CN117827981B (zh) 一种MySQL数据库集群的链路检测方法及***
CN112650629B (zh) 区块链索引数据恢复方法、装置、设备和计算机存储介质

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