本发明涉及数据处理领域,尤其涉及一种服务控制方法、系统、电子设备及计算机可读存储介质。
背景技术:
在服务的运行过程中,由于种种原因会产生内存泄露现象。内存泄露现象是指服务中己动态分配的堆内存由于某种原因程序未释放或无法释放的现象。这种现象会造成系统内存被浪费,导致程序运行速度慢甚至系统崩溃等严重后果。
为了减少内存泄露现象的产生,目前存在一种服务控制方法,该服务控制方法通过监视服务的内存占用空间,若该服务内存空间大于预设的内存可占用空间阈值,则重启该服务,以释放该服务所占用的堆内存。
然而,由于服务在完成重启之前将会中断服务,因此,上述服务控制方法容易导致数据传输丢失、用户请求被异常中断。
技术实现要素:
本发明提供一种服务控制方法、系统、电子设备及计算机可读存储介质,可以解决重启服务导致的数据传输丢失、用户请求被异常中断的问题。
本发明实施例一方面提供了一种服务控制方法,包括:
监控服务中已完成进程响应的进程;
当监控到所述已完成进程响应的进程中存在目标进程时,结束所述目标进程,所述目标进程的内存占用空间超过所述目标进程的内存可占用空间阈值。
本发明第二方面提供了一种电子设备,包括:
监控模块,用于监控服务中已完成进程响应的进程;
处理模块,用于当所述监控模块监控到所述已完成进程响应的进程中存在目标进程时,结束所述目标进程,所述目标进程的内存占用空间超过所述目标进程的内存可占用空间阈值。
对本发明第三方面提供了一种服务控制方法,包括:显示配置界面,所述配置界面包括:用以输入地址信息的第一输入框、用以输入检测指令的第一控件;
当接收到所述检测指令时,根据当前所述第一输入框中输入的地址信息,获取该地址信息所指向的电子设备的硬件配置信息,所述硬件配置信息包括所述电子设备的物理内存大小;
在所述配置界面显示所述电子设备的硬件配置信息,以便用户基于所述电子设备的硬件配置信息配置所述电子设备的内存权重系数和允许所述电子设备并行运行的服务进程的上限数;
其中,所述电子设备的内存权重系数和所述上限数用以确定所述电子设备的内存可占用空间阈值,以便在监控到所述电子设备的服务中存在目标进程时,触发所述电子设备结束所述目标进程;
所述服务进程为所述服务的进程,所述目标进程为内存占用空间超过所述电子设备的内存可占用空间阈值的进程。
本发明第四方面提供了一种服务控制系统,包括:电子设备和监控设备;
所述电子设备用于执行服务进程,所述服务进程为服务的进程;
所述电子设备还用于监控所述服务中已完成进程响应的进程,若所述电子设备监控到所述已完成进程响应的进程中存在目标进程,则向所述控制设备发送进程结束请求,在接收到所述控制设备基于所述进程结束请求响应的允许结束的指令时,结束所述目标进程;
其中,所述目标进程的内存占用空间超过所述目标进程的内存可占用空间阈值。
上述本发明实施例提供的服务控制方法、系统、电子设备或计算机可读存储介质,由于仅关闭服务中的目标进程,而无需重启整个服务,又因为仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的服务控制方法的流程图;
图2为本发明另一实施例提供的服务控制方法的流程图;
图3为本发明另一实施例提供的服务控制方法的流程图;
图4为一种进程管理系统;
图5为本发明另一实施例提供的电子设备的结构示意图;
图6为本发明另一实施例提供的电子设备的结构示意图;
图7为本发明另一实施例提供的电子设备的结构示意图;
图8为本发明另一实施例提供的电子设备的结构示意图;
图9为本发明另一实施例提供的服务控制方法中配置界面的示意图;
图10为本发明另一实施例提供的服务控制系统的结构示意图;
图11为发明另一实施例提供的服务控制系统的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例提供的附图,对本发明实施例提供的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明提供的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明一实施例提供的服务控制方法的流程图,如图1所示,该服务控制方法包括:
101、监控服务中已完成进程响应的进程。
具体的,获取服务中已完成进程响应的进程,并将服务中已完成进程响应的进程的内存占用空间与该进程的内存可占用空间阈值进行对比,若该进程的内存占用空间大于该进程的内存可占用空间阈值,则将该进程标定位目标进程。
102、当监控到已完成进程相应的进程中存在目标进程时,结束该目标进程。
在实际应用中,一个服务往往包括多个进程,将该服务配置在电子设备中,是指将这些进程分配该电子设备进行处理。为了提高该服务的处理效率,还可以将这些服务分别分配给多个不同的电子设备同时进行处理。可选的,根据这些电子设备的硬件配置的不同,分配给不同电子设备的进程的数量和进程的内存可占用空间阈值也不相同。若检测到服务中存在目标进程,则触发该目标进程所在电子设备结束该目标进程。
需要说明的是,本实施例提供的服务控制方法,通过监控服务的进程的内存占用空间,并结束该服务中的目标进程,该目标进程的内存占用空间超过所述目标进程的内存可占用空间阈值,实现防止内存泄露的目的,与现有技术的直接重启整个服务相比,仅关闭该服务中目标进程,而无需重启整个服务,故不会产生重启服务导致的数据传输丢失、用户请求被异常中断的问题,同时,本实施例提供的服务控制方法仅监控服务中已完成进程响应的进程,不会结束正在处理用户请求的进程,故不会产生结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。
在本实施例中,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。
请参阅图2,图2为本发明另一实施例提供的服务控制方法的流程图,该服务控制方法包括:
201、获取电子设备的硬件配置信息、该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。
具体的,该电子设备为配置有服务的电子设备,服务进程是指该服务的进程。电子设备的硬件配置包括该电子设备的物理内存大小。
可选的,该电子设备的硬件配置还包括该电子设备的中央处理器的核数,根据该电子设备的物理内存的大小设置该电子设备的内存权重系数,根据该电子设备的中央处理器的核数设置该电子设备的允许该电子设备并行运行的服务进程的上限数。
在实际应用中,服务包括多个服务进程,可以将这些服务进程配置给多个的电子设备进行处理。分别获取这些电子设备的硬件配置,并根据这些电子设备的物理内存大小分别为这些电子设备设置不同的内存权重系数,根据这些电子设备的中央处理器的核数分别为这些电子设备设置不同的允许该电子设备并行运行的服务进程的上限数。
为了区分这些电子设备,还可以为这些电子设备各分配一个地址,并将获取到的电子设备的硬件配置和为电子设备设置的内存权重系数及允许电子设备并行运行的服务进程的上限数存入该电子设备的地址下的基础配置表中。
202、根据阈值计算公式计算该电子设备的服务进程的内存可占用空间阈值。
具体的,该阈值计算公式为:p=α×m/n,该阈值计算公式中,p为该电子设备的服务进程的内存可占用空间阈值,α为该电子设备的内存权重系数,n为允许该电子设备并行运行的服务进程的上限数,m为该电子设备的物理内存大小。
在实际应用中,将服务中的服务进程配置给多个电子设备进行处理时,通过读取与电子设备对应的地址下的基础配置表,获取电子设备的物理内存大小、为电子设备设置的内存权重系数和为电子设备设置的允许电子设备并行运行的服务进程的上限数,分别计算这些电子设备的服务进程内存可占用空间阈值。
203、监控服务中已完成响应的进程。
具体的,获取已完成进程响应的服务进程的内存占用空间,并将已完成进程响应的服务进程的内存占用空间与该服务进程的内存占用空间阈值进行对比,若该服务进程的内存占用空间大于该服务进程的内存占用空间阈值,则将该服务进程标定为目标进程。
204、检测电子设备的可工作服务进程数是否小于预设的可工作服务进程数下限数,若该电子设备的可工作服务进程数小于可工作服务进程数下限数,则在该电子设备中创建新的服务进程,直至该电子设备中可工作服务进程的数量等于允许该电子设备并行运行的服务进程的上限数。
具体的,可工作服务进程数为电子设备中正在运行的服务进程的数量。
需要说明的是,将电子设备的服务进程大量关闭会导致该电子设备的可工作服务进程数过少,若该电子设备的可工作服务进程数小于预设的可工作服务进程数下限数,会导致配置给该电子设备的服务的运行不稳定,当该电子设备的可工作服务进程数为零时,该电子设备停止运行该进程,导致数据传输丢失、用户请求被异常中断。故检测到电子设备的可工作服务进程数小于预设的可工作服务进程数下限数时,触发该电子设备创建新的服务进程,可以避免配置给该电子设备的服务的运行不稳定、数据传输丢失和用户请求被异常中断的问题。
205、当监控到已完成进程响应的进程中存在目标进程时,结束该目标进程。
在本实施例中,第一方面,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。第二方面,由于通过阈值计算公式计算得到该电子设备的服务进程的内存可占用空间阈值,故无需根据人工经验为电子设备设置该电子设备的服务进程的内存可占用空间阈值。第三方面,由于在结束目标进程之前还检测电子设备的可工作服务进程数是否少于预设的可工作服务进程数下限数,避免了由于电子设备的可工作服务进程数小于预设的可工作服务进程数下限数,导致的配置给该电子设备的服务的运行不稳定的问题。
请参阅图3,图3为本发明另一实施例提供的服务控制方法的流程图,如图所示,该服务控制方法包括:
301、获取电子设备的硬件配置信息、该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。
302、根据阈值计算公式计算该电子设备的服务进程的内存可占用空间阈值。
303、监控服务中已完成响应的进程。
304、检测电子设备的可工作服务进程数是否小于预设的可工作服务进程数下限数,若该电子设备的可工作服务进程数小于可工作服务进程数下限数,则触在该电子设备中创建新的服务进程,直至该电子设备中可工作服务进程的数量等于允许该电子设备并行运行的服务进程的上限数。
具体的,该可工作服务进程数为电子设备中正在运行的服务进程的数量,该服务进程为服务的进程。
305、将目标进程从电子设备的可工作服务进程队列中移除,并储存该目标进程的内存泄露信息。
具体的,内存泄露信息包括:电子设备的地址、目标进程的进程号、该目标进程首次完成进程任务的时间、该目标进程末次完成进程任务的时间、该目标进程占用内存的净增量和该目标进程完成进程任务的总次数。内存泄漏信息用于为评估分配给所述电子设备的所述服务的内存泄露情况提供依据。
306、当监控到已完成进程响应的进程中存在目标进程时,结束该目标进程。
具体的,若服务中存在n个以上的目标进程,则针对各个目标进程随机生成各个目标进程的延时时间,并触发电子设备基于各个目标进程的延时时间,在延时相应的延时时间后结束相应的目标进程。其中,延时时间是在预设的范围内随机选取得到的,n不小于2。
需要说明的是,若服务中存在n个以上的目标进程,同时触发电子设备将这些目标进程同时结束,则会导致服务中的总进程数发生突变,进而导致服务的运行不稳定,使目标进程在随机的延时时间后再关闭,可以实现目标进程的异步结束,避免了由于服务中的总进程数发生突变导致的服务的运行不稳定的问题。
需要说明的是,本实施例可与图2所示的实施例相结合,上述步骤301至步骤303具体可参考图1和图2所示实施例的相关步骤,此处不再赘述。
在本实施例中,服务控制方法还包括:在执行步骤302至步骤306的同时,每隔预设的时间,检测电子设备的可工作服务进程数是否少于允许该电子设备并行运行的服务进程的上限数,若该电子设备的可工作服务进程数少于该上限数,则在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数。
在实际应用中,电子设备结束目标进程会导致该电子设备的可工作服务进程数减少,从而影响配置给该电子设备的服务的运行速度。每隔预设的时间,获取电子设备的可工作服务进程数,若有电子设备的可工作服务进程数少于允许该电子设备并行运行的服务进程的上限数,则说明该电子设备的服务进程中存在目标进程,且该电子设备结束了该目标进程,于是在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数,故可以保证配置给该电子设备的服务的运行速度。
为了更清楚地说明本发明实施例提供的服务控制方法,下面以将该服务控制方法应用于进程管理系统为例进行说明,并非对该服务控制方法进行任何限定。
请参阅图4,图4为一种进程管理系统,如图4所示,该进程管理系统包括:第一电子设备11a、第二电子设备11b、电三电子设备11c、第四电子设备11d、调度中心12和数据库13。
在第一电子设备11a、第二电子设备11b、第三电子设备11c以及第四电子设备11d中配置有服务,该服务包括多个进程,将该服务的进程称为服务进程,将该服务进程分别分配给该第一电子设备11a、第二电子设备11b、第三电子设备11c以及第四电子设备11d进行处理。
为了区分上述不同的电子设备,分别为第一电子设备11a、第二电子设备11b、第三电子设备11c和第四电子设备11d各分配一个地址。
数据库13中存储有基础配置列表,在该基础配置列表中上述四个电子设备的地址,以及每个地址指向的电子设备的硬件配置信息、用户设置的该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。该硬件配置信息包括电子设备的物理内存大小。
调度中心12从数据库13中读取该基础配置列表,并将基础配置列表中的硬件配置信息、用户设置的该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数传输至对应的电子设备。
各电子设备根据接收到的硬件配置信息、用户设置的该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数传输至对应的电子设备,并基于阈值计算公式:p=α×m/n计算各电子设备的内存可占用空间阈值。
其中,在该阈值计算公式中,p为电子设备的服务进程的内存可占用空间阈值,α为内存权重系数,m为电子设备的物理内存大小,n为工作进程数上限。
然后各电子设备监控服务中已完成进程响应的进程,即各电子设备获取该电子设备中已完成当前用户请求的服务进程的内存占用空间,并将该服务进程的内存占用空间与该电子设备的服务进程的内存可占用空间阈值比较,若该服务进程的内存占用空间大于内存可占用空间阈值,则标定该服务进程为目标进程。
若电子设备采用linux2.6.24内核版本以上的系统,则可以通过读取并解析vmrss字段获取该进程的内存占用情况。对于调度中心未采用linux2.6.24内核版本以上的系统的电子设备13,则可以在预设的文件夹里为每个进程设置内存记录文件,根据服务进程的新建与关闭新建和删除对应的内存记录文件,并将进程的内存占用数据存入该内存记录文件中。为了更好区分服务的进程,为每个进程分配一个进程号,各进程的内存记录文件与各进程的进程号一一对应。检测获取的进程的内存占用空间是否超过为该进程分配的内存可占用空间阈值,若有进程的内存占用空间超过为该进程分配的内存可占用空间阈值,则标定该进程为目标进程。
标定目标进程后,存在目标进程的电子设备检测该电子设备的可工作服务进程数是否小于预设的可工作服务进程数下限数,若该电子设备的可工作服务进程数小于该下限数,则在该电子设备中创建新的服务进程,直至该电子设备中的可工作服务进程的数量等于允许该电子设备并行运行的服务进程的上限数。
需要说明的是,当电子设备的服务进程低于预设的可工作服务进程数下限数时,该电子设备会停止处理该服务分配给该电子设备分配的进程任务,为了避免在电子设备结束目标进程时导致该电子设备的可工作服务进程低于该预设的可工作服务进程数下限数,在该电子设备结束目标进程之前,还要检测该电子设备的可工作服务进程数,若该电子设备的可工作服务进程数少于预设的可工作服务进程数下限数,则触发该电子设备新建服务进程,直至该电子设备的可工作服务进程数等于允许该电子设备并行运行的服务进程的上限数。
在实际应用过程中,电子设备通过fork(复制)命令复制父服务进程得到子服务进程,进而实现新的服务进程的创建。需要注意的是通过fork复制父服务进程得到子服务进程时,若子进程先于父进程结束,则该子进程并为被真正删除,而是留下一个称作僵尸进程的数据结构,为了避免产生僵尸进程,在触发电子设备结束子进程时,将子进程进入休眠状态,直至触发电子设备结束该子进程的父进程,再异步结束该父进程的子进程。
然后,电子设备将目标进程从该电子设备的可工作服务进程队列中移除,并储存该目标进程的内存泄露信息。该内存泄露信息包括:该电子设备的地址、该目标进程的进程号、该目标进程首次完成进程任务的时间、该目标进程末次完成进程任务的时间、该目标进程占用内存的净增量和该目标进程完成进程任务的总次数。保存的内存泄露信息用于为评估电子设备的内存泄露情况提供依据。
然后电子设备结束目标进程,若服务中仅存在一个目标进程,则对应的电子设备可以直接结束该目标进程。若检测到服务中存在至少两个目标进程,为了防止批量结束目标进程导致的进程处理速度的波动,需要异步结束这些目标进程。
下面以服务中存在三个目标进程,且这三个目标进程分别存在于第一电子设备11a、第二电子设备11b和电三电子设备11c为例,对异步结束多个目标进程的过程进行说明,并非对目标进程的数量及目标进程在电子设备中的分布状况进行任何限定。
不妨将上述三个目标进程的进程依次命名为:进程a、进程b和进程c,进程a存在于第一电子设备11a中,进程b存在于第二电子设备11b中,进程c存在于第三电子设备11c中。第一电子设备11a、第二电子设备11b和第三电子设备11c分别向调度中心12发送结束请求,调度中心12接收到该结束请求后,随机产生三个延时时间并将这三个延时时间分别传输至第一电子设备11a、第二电子设备11b和第三电子设备11c,第一电子设备11a、第二电子设备11b和第三电子设备11c基于各目标进程的延时时间,在延时相应的延时时间后分别结束进程a、进程b和进程c。例如,调度中心随机产生的延时时间分别为5秒、7秒和10秒,并将延时时间5秒传输至第一电子设备11a,将延时时间7秒传输至第二电子设备11b,将延时时间10秒传输至第三电子设备11c。第一电子设备11a在接收到该延时时间后,延时5秒结束进程a;第二电子设备11b在接收到该延时时间后,延时7秒结束进程b;第三电子设备11c在延时10秒后技术进程c,于是实现了多个目标进程的异步结束,避免了由于批量结束目标进程导致的服务的运行速度的波动。
在各电子设备计算得到各电子设备的内存可占用空间阈值后,每隔预设的时间,检测各电子设备的可工作服务进程数是否少于允许该电子设备并行运行的服务进程的上限数。若电子设备的可工作服务进程数少于该上限数,则在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数。例如,每隔一分钟检测各电子设备的可工作服务进程数,检测到第一电子设备11a的可工作服务进程数为12,允许第一电子设备11a并行运行的可工作进程的上限数为20,则在第一电子设备11a中创建新的服务进程,使第一电子设备11a的可工作服务进程数上升至20。
其中,可工作服务进程数为电子设备中正在运行的服务进程的数量。
在本实施例中,第一方面,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。第二方面,由于通过阈值计算公式计算得到该电子设备的服务进程的内存可占用空间阈值,故无需根据人工经验为电子设备设置该电子设备的服务进程的内存可占用空间阈值。第三方面,由于在结束目标进程之前还检测电子设备的可工作服务进程数是否少于预设的可工作服务进程数下限数,避免了由于电子设备的可工作服务进程数小于预设的可工作服务进程数下限数,导致的配置给该电子设备的服务的运行不稳定的问题。第四方面,由于在服务中存在多个目标进程的情况时,获取针对每个目标进程随机产生一个延迟时间,并基于各个目标进程的延长时间,在延时相应的延时时间后结束相应的目标进程,实现了目标进程的异步关闭,故可以避免由于批量关闭多个目标进程导致的服务的进程数突变,进而避免了由于服务的进程数突变导致的进程的运行不稳定。第五方面,由于在目标进程结束之前获取了目标进程的内存泄露信息,故为可以为对相应服务的内存泄露情况进行评估提供依据。第六方面,由于每隔预设时间,检测电子设备的可工作服务进程数,若电子设备的可工作服务进程数少于允许该电子设备并行运行的服务进程的上限数,则在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数,故可以重启被结束的进程,保证配置给电子设备的服务的运行速度。
请参阅图5,图5为本发明另一实施例提供的电子设备的结构示意图,如图5所示,该电子设备包括:
监控模块410,用于监控服务中已完成进程响应的进程。
处理模块420,用于当监控模块410监控到已完成进程响应的进程中存在目标进程时,结束该目标进程。该目标进程的内存占用空间超过该目标进程的内存可占用空间阈值。
在本实施例中,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。
请参阅图6,图6为本发明另一实施例提供的电子设备的结构示意图,与前述图5所示的电子设备不同的是,在本实施例中:
进一步地,如图6所示,该电子设备还包括获取模块430,用于获取电子设备的硬件配置信息、该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数,其中,该硬件配置信息包括该电子设备的物理内存的大小,该服务进程为服务的进程。
监控模块410包括:计算模块411,用于根据阈值计算公式计算电子设备的服务进程的内存可占用空间阈值,该阈值计算公式为:p=α×m/n,该阈值计算公式中,p为该电子设备的服务进程的内存可占用空间阈值,α为该电子设备的内存权重系数,n为允许该电子设备并行运行的服务进程的上限数,m为该电子设备的物理内存的大小。
可选的,获取模块430还用于获取服务中已完成进程响应的进程的内存占用空间。监控模块410还包括:检测模块412,用于将已完成进程响应的服务进程的内存占用空间与该服务进程的内存占用空间阈值进行对比,若该服务进程的内存占用空间大于该服务进程的内存占用空间阈值,则将该服务进程标定为目标进程。
进一步地,检测模块412,还用于检测电子设备的可工作服务进程数是否小于预设的可工作服务进程数下限数。
处理模块420,还用于若检测模块412检测到电子设备的可工作服务进程数小于可工作服务进程数下限数,则在该电子设备中创建新的服务进程,直至该电子设备中可工作服务进程的数量等于允许该电子设备并行运行的服务进程的上限数。
其中,可工作服务进程数为电子设备中正在运行的服务进程的数量。
在本实施例中,第一方面,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。第二方面,由于通过阈值计算公式计算得到该电子设备的服务进程的内存可占用空间阈值,故无需根据人工经验为电子设备设置该电子设备的服务进程的内存可占用空间阈值。第三方面,由于在结束目标进程之前还检测电子设备的可工作服务进程数是否少于预设的可工作服务进程数下限数,避免了由于电子设备的可工作服务进程数小于预设的可工作服务进程数下限数,导致的配置给该电子设备的服务的运行不稳定的问题。
请参阅图7,图7为本发明另一实施例提供的电子设备的结构示意图,与前述图5与图6所示的电子设备不同的是,在本实施例中:
进一步地,获取模块430,还用于若服务中存在n个以上目标进程,则获取针对各个目标进程随机生成的各个目标进程的延时时间。其中n不小于2。
处理模块410,还用于基于获取模块430获取的各个目标进程的延时时间,在延时相应的延时时间后结束相应的目标进程。
进一步地,处理模块410,还用于将目标进程从电子设备的可工作服务进程队列中移除。
该电子设备还包括存储模块440,用于存储目标进程的内存泄露信息,其中,该内存泄漏信息包括:该电子设备的地址、该目标进程的进程号、该目标进程首次完成进程任务的时间、该目标进程末次完成进程任务的时间、该目标进程占用内存的净增量和该目标进程完成进程任务的总次数。保存的内存泄露信息用于为评估电子设备的内存泄露情况提供依据。
进一步地,检测模块412,还用于检测电子设备的可工作服务进程数是否少于允许该电子设备并行运行的服务进程的上限数。
处理模块410,还用于若电子设备的可工作服务进程数少于允许该电子设备并行运行的服务进程的上限数,则在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数。
在本实施例中,第一方面,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。第二方面,由于通过阈值计算公式计算得到该电子设备的服务进程的内存可占用空间阈值,故无需根据人工经验为电子设备设置该电子设备的服务进程的内存可占用空间阈值。第三方面,由于在结束目标进程之前还检测电子设备的可工作服务进程数是否少于预设的可工作服务进程数下限数,避免了由于电子设备的可工作服务进程数小于预设的可工作服务进程数下限数,导致的配置给该电子设备的服务的运行不稳定的问题。第四方面,由于在服务中存在多个目标进程的情况时,获取针对每个目标进程随机产生一个延迟时间,并基于各个目标进程的延长时间,在延时相应的延时时间后结束相应的目标进程,实现了目标进程的异步关闭,故可以避免由于批量关闭多个目标进程导致的服务的进程数突变,进而避免了由于服务的进程数突变导致的进程的运行不稳定。第五方面,由于在目标进程结束之前获取了目标进程的内存泄露信息,故为可以为对相应服务的内存泄露情况进行评估提供依据。第六方面,由于每隔预设时间,检测电子设备的可工作服务进程数,若电子设备的可工作服务进程数少于允许该电子设备并行运行的服务进程的上限数,则在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数,故可以重启被结束的进程,保证配置给电子设备的服务的运行速度。
请参阅图8,图8为本发明另一实施例提供的电子设备的结构示意图,如图8所示,该电子设备包括:存储器520、处理器510和存储在存储器520上并可在处理器510上运行的计算机程序。处理器510执行存储器520中的程序时,实现如图1至3所示的服务控制方法。
存储器520可以是高速随机存取记忆体(ram,randomaccessmemory)存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器520用于存储一组可执行程序代码,处理器510与存储器520耦合。
进一步地,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的移动终端中,该计算机可读存储介质可以是前述图6所示实施例中的存储器。该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述图1至图3所示实施例中描述的服务控制方法。进一步地,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
请参阅图9,图9为本发明另一实施例提供的服务控制方法中配置界面的示意图。如图9所示,该配置界面包括:用以输入地址信息的第一输入框601、用以输入检测指令的第一控件602。
当接收到检测指令时,根据当前第一输入框601中输入的地址信息,获取该地址信息指向的电子设备的硬件配置信息,该硬件配置信息包括该电子设备的物理内存大小。
可选的,该硬件配置信息还包括:该电子设备的处理器的核数和该电子设备的网卡的大小。
在该配置界面显示该电子设备的硬件配置信息,以便用于基于该电子设备的硬件配置信息配置该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。
其中,该电子设备的内存权重系数和该上限数用以确定该电子设备的内存可占用空间阈值,以便在监控到该电子设备的服务中存在目标进程时,触发该电子设备结束该目标进程。
该服务进程为服务的进程,该目标进程为内存占用空间超过该电子设备的内存可占用空间阈值的进程。
在本实施例中,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。
请参阅图10,图10为本发明另一实施例提供的服务控制系统的结构示意图,如图10所示,该服务控制系统包括:电子设备701和监控设备702。
电子设备701,用于执行服务进程,该服务进程为服务的进程。
电子设备701,还用于监控服务中已完成进程响应的进程,若电子设备701监控到已完成进程响应的进程中存在目标进程,则向监控设备702发送进程结束请求,在接收到监控设备702基于该结束请求响应的允许结束的指令时,电子设备701结束该目标进程。
其中,目标进程的内存占用空间超过该目标进程的内存可占用空间阈值。
在本实施例中,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。
请参阅图11,图11为发明另一实施例提供的服务控制系统的结构示意图,如图11所示,与图10所示的服务控制系统不同的是,在本实施例中:
进一步地,该服务控制系统还包括:数据库703、数据管理设备704和配置终端705。
当电子设备701的数量大于1时,为了区分这些电子设备,配置信息管理设备704,用于为这些电子设备各分配一个地址,配置信息管理设备704,还用于实时各获取电子设备701的硬件配置信息,并将电子设备的地址和各电子设备的硬件配置信息传输至数据库703中。
数据库703,用于将获取到的硬件配置信息存入对应电子设备的地址下的基础配置表中。
配置终端705,用于提供了一种如图9所示显示界面,该配置界面包括:用以输入地址信息的第一输入框601、用以输入检测指令的第一控件602。
当接收到检测指令时,配置终端705,用于根据当前第一输入框601中输入的地址信息,从数据库703的基础配置表中获取该地址信息指向的电子设备的硬件配置信息,该硬件配置信息包括该电子设备的物理内存大小。
可选的,该硬件配置信息还包括:该电子设备的处理器的核数和该电子设备的网卡的大小。
配置终端705,还用于在该配置界面显示该电子设备的硬件配置信息,以便用于基于该电子设备的硬件配置信息配置该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。
配置终端705还用于将用户输入的电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数传输至数据库703。
数据库703,还用于将电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数存入该电子设备的地址下的基础配置表中。
其中,该服务进程为服务的进程,该目标进程为内存占用空间超过该电子设备的内存可占用空间阈值的进程。
电子设备701,还用于从数据库703的该电子设备的地址下的基础配置列表中获取该电子设备的硬件配置信息、该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。
电子设备701,还用于根据由数据库703获取的该电子设备的硬件配置信息、该电子设备的内存权重系数和允许该电子设备并行运行的服务进程的上限数。基于阈值计算公式p=α×m/n计算该电子设备的服务进程的内存可占用阈值。该阈值计算公式中,p为该电子设备的服务进程的内存可占用空间阈值,α为该电子设备的内存权重系数,n为允许该电子设备并行运行的服务进程的上限数,m为该电子设备的物理内存大小。
进一步地,若监控设备702,同时接收到n个结束请求,则监控设备702还用于针对各结束请求随机生成n个延时时间,并将该延时时间和允许结束的指令。其中n不小于2。
电子设备701,还用于根据接收到的延时时间和允许结束的指令,在延时相应的延时时间后结束相应的目标进程。
进一步地,监控设备702,还用于在接收到结束请求时,在向发送结束请求的电子设备发送允许结束指令之前,检测该电子设备的可工作服务进程数是否小于预设的可工作服务进程数下限数;
监控设备702,还用于若该电子设备的可工作服务进程数小于可工作服务进程数下限数,则触发该电子设备创建新的服务进程,直至该电子设备中可工作服务进程的数量等于允许该电子设备并行运行的服务进程的上限数;
其中,该可工作服务进程数为该电子设备中正在运行的该服务进程的数量。
进一步地,监控设备702,还用于在接收到结束请求时,在向发送该结束请求的电子设备发送允许结束指令之前,还触发该电子设备将与该结束请求指向的目标进程从该电子设备的可工服务进程队列中移除,并获取该目标进程的内存泄露信息。
监控设备702还用于将该内存泄露信息转化为具有统一数据形式的标准内存泄露信息后,将该标准内存泄露信息传输至数据库703。
其中,该内存泄露信息包括:电子设备的地址、该目标进程的进程号、该目标进程首次完成进程任务的时间、该目标进程末次完成进程任务的时间、该目标进程占用内存的净增量和该目标进程完成进程任务的总次数。保存的内存泄露信息用于为评估电子设备的内存泄露情况提供依据。
需要说明的是,将内存泄漏信息转化为具有同一数据形式的标准内存泄露信息可以将缓存的标准内存泄露信息一次性写入数据库703中,可以减少对数据库的写入和读取的次数。
进一步地,监控设备702,还用于每个预设的时间,检测各电子设备的可工作服务进程数是否少于允许该电子设备并行运行的服务进程的上限数。
监控设备702,还用于若电子设备的可工作服务进程数少于该上限数,则触发该电子设备创建信息的服务进程,直至该电子设备的可工作服务进程数等于该上限数。
在本实施例中,第一方面,由于仅关闭服务中的目标进程,而无需重启整个服务,又由于仅监控服务中已完成进程响应的进程,故不会产生重启服务或结束正在处理用户请求的进程导致的数据传输丢失、用户请求被异常中断的问题。第二方面,由于通过阈值计算公式计算得到该电子设备的服务进程的内存可占用空间阈值,故无需根据人工经验为电子设备设置该电子设备的服务进程的内存可占用空间阈值。第三方面,由于在结束目标进程之前还检测电子设备的可工作服务进程数是否少于预设的可工作服务进程数下限数,避免了由于电子设备的可工作服务进程数小于预设的可工作服务进程数下限数,导致的配置给该电子设备的服务的运行不稳定的问题。第四方面,由于在服务中存在多个目标进程的情况时,获取针对每个目标进程随机产生一个延迟时间,并基于各个目标进程的延长时间,在延时相应的延时时间后结束相应的目标进程,实现了目标进程的异步关闭,故可以避免由于批量关闭多个目标进程导致的服务的进程数突变,进而避免了由于服务的进程数突变导致的进程的运行不稳定。第五方面,由于在目标进程结束之前获取了目标进程的内存泄露信息,故为可以为对相应服务的内存泄露情况进行评估提供依据。第六方面,由于每隔预设时间,检测电子设备的可工作服务进程数,若电子设备的可工作服务进程数少于允许该电子设备并行运行的服务进程的上限数,则在该电子设备中创建新的服务进程,直至该电子设备的可工作服务进程数等于该上限数,故可以重启被结束的进程,保证配置给电子设备的服务的运行速度。
在本申请所提供的多个实施例中,应该理解到,所揭露的方法、系统和电子设备,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信链接可以是通过一些接口,模块的间接耦合或通信链接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的服务控制方法、系统、电子设备及计算机可读存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。