CN102012836A - 一种进程生存控制方法和设备 - Google Patents

一种进程生存控制方法和设备 Download PDF

Info

Publication number
CN102012836A
CN102012836A CN200910092328XA CN200910092328A CN102012836A CN 102012836 A CN102012836 A CN 102012836A CN 200910092328X A CN200910092328X A CN 200910092328XA CN 200910092328 A CN200910092328 A CN 200910092328A CN 102012836 A CN102012836 A CN 102012836A
Authority
CN
China
Prior art keywords
application service
subprocess
master control
control process
setting value
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.)
Granted
Application number
CN200910092328XA
Other languages
English (en)
Other versions
CN102012836B (zh
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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group 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 China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN200910092328XA priority Critical patent/CN102012836B/zh
Publication of CN102012836A publication Critical patent/CN102012836A/zh
Application granted granted Critical
Publication of CN102012836B publication Critical patent/CN102012836B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种进程生存控制方法和设备,由服务器创建的应用服务子进程对自身响应的应用服务的次数进行累加,在响应次数达到设定值时停止响应用户请求的应用服务,由服务器重新创建的新的应用服务子进程替代失效的应用服务子进程,因此,可以消除由于编程错误或运行误差引起的误差累积,确保处于运行状态的应用服务子进程误差较小,从而提高服务端程序的长效稳定性。

Description

一种进程生存控制方法和设备
技术领域
本发明涉及计算机技术,尤其涉及一种进程生存控制方法和设备。
背景技术
网络服务器在网络服务中担任着非常重要的角色,需要承载来自用户终端的海量请求,并向用户终端提供各种需要的数据服务。由于网络服务器中应用进程的运行好坏直接影响用户终端的业务质量,因此,对网络服务器中应用进程的设计要做到稳定、高效和承载业务量较大的目标。
目前常用的网络服务器进程架构有以下两种:
第一种进程架构:
在后台持续运行一个服务器进程,时刻监听用户终端的请求。当有用户终端发起请求时,运行的服务器进程将会创建一个子进程,由创建的子进程响应用户终端的请求,在请求完成后,该子进程退出。
在本进程架构下,子进程的创建需要消耗大量的***资源,而服务器进程需要为每一个用户终端的请求创建一个子进程,在用户终端数量较多时,本进程架构对***资源的消耗非常巨大,无法承载大量用户的并发请求。
第二种进程架构:
为了避免为每一个用户终端的请求创建子进程造成***资源消耗巨大的问题,本进程架构下,由后台持续运行的一个服务器进程在程序初始化时创建一个进程池,当用户终端发起请求后,从进程池中选择一个子进程响应用户终端的请求。
本进程架构相比于第一种进程架构而言,减少了创建子进程的***开销,但是,由于编程缺陷或运行误差,进程池中的子进程在不间断地响应用户终端的请求时可能出现误差累积,造成子进程失效,进而影响对用户终端请求的正确服务。
综上所述,在现有的进程架构下,由于子进程的编程缺陷或运行误差,在不间断运行时可能会导致误差累积,造成子进程失效的问题。
发明内容
本发明实施例提供一种进程生存控制方法和设备,以解决由于子进程的编程缺陷或运行误差,在不间断运行时导致误差累积,造成子进程失效的问题。
一种进程生存控制方法,所述方法包括:
服务器创建一个主控进程和多个应用服务子进程,所述应用服务子进程用于响应用户请求的应用服务;
应用服务子进程对自身响应的应用服务的次数进行累加,当响应次数达到设定值时,通知主控进程,并停止响应用户请求的应用服务;
所述主控进程请求服务器重新创建一个应用服务子进程;
所述服务器响应主控进程的请求,重新创建一个应用服务子进程。
一种进程生存控制设备,所述进程生存控制设备包括:
创建模块,用于触发服务器创建一个主控进程和多个应用服务子进程,所述应用服务子进程用于响应用户请求的应用服务;
通知模块,用于触发应用服务子进程对自身响应的应用服务的次数进行累加,当响应次数达到设定值时,通知主控进程,并停止响应用户请求的应用服务;
请求模块,用于触发所述主控进程请求服务器重新创建一个应用服务子进程。
由于本发明方案中,服务器创建的应用服务子进程对自身响应的应用服务的次数进行累加,在响应次数达到设定值时停止响应用户请求的应用服务,由服务器重新创建的新的应用服务子进程替代失效的应用服务子进程,因此,可以消除由于编程错误或运行误差引起的误差累积,确保处于运行状态的应用服务子进程误差较小,从而提高服务端程序的长效稳定性。
附图说明
图1为本发明实施例一中进程生存控制方法示意图;
图2为本发明实施例二中进程生存控制设备结构示意图。
具体实施方式
为了实现本发明目的,本发明实施例要求创建的各应用服务子进程对自身的运行状态进行自检,在为用户提供的服务次数达到设定值时,认为当前应用服务子进程的误差已经累积至容忍极限,则要求此类应用服务子进程停止运行,由服务器创建的新的应用服务子进程接替其工作,以避免应用服务子进程的误差累积过大,导致应用服务子进程失效的问题。
下面结合说明书附图对本发明实施例进行详细描述。
实施例一:
如图1所示,为本发明实施例一中进程生存控制方法示意图,本方法包括以下步骤:
步骤101:服务器创建一个主控进程和多个应用服务子进程。
在本步骤中,服务器根据***规模以及用户数量创建多个应用服务子进程,每一个应用服务子进程可以响应用户请求的应用服务,为用户提供需要的数据服务。
主控进程需要利用服务器上层操作***的特性,创建包含通信端点标识的共享信息,本实施例中的通信端点标识包括TCP/IP通信端点标识。主控进程向每一个创建的应用服务子进程发送共享信息,接收到所述共享信息的应用服务子进程可以根据其中的通信端点标识与用户建立通信连接,以影响用户请求的应用服务。
步骤102:应用服务子进程对自身响应的应用服务的次数进行累加。
在本实施例中,每一个应用服务子进程中运行一个计数器,应用服务子进程对响应的应用服务的次数进行累加的过程为:
当应用服务子进程接收到用户的请求后,与用户进行连接,响应用户请求的应用服务,并为用户提供相关的数据,在响应结束后断开连接,同时计数器将自动加1。
步骤103:应用服务子进程检测自身响应的应用服务次数是否达到设定值,若未达到,则返回步骤102,继续对用户请求的应用服务进行响应;否则,执行步骤104。
在应用服务子程序每完成一次应用服务的响应后,应用服务子进程将会对自身响应的应用服务次数进行自检。
步骤104:应用服务子进程通知主控进程检测结果,并停止响应用户请求的应用服务。
主控进程实时监测是否接收到应用服务子进程发送的通知消息,在接收到通知消息后,表示应用服务子进程自检出自身响应的应用服务次数已达设定值,即自身的误差累积可能已达容忍极限,需要停止运行。
步骤105:主控进程接收到应用服务子进程发送的通知消息后,将请求服务器重新创建一个应用服务子进程。
服务器将响应主控进程的请求,重新创建一个应用服务子进程。
主控进程在接收到一个应用服务子进程发送的通知消息后,确定该应用服务子进程已不能再继续运行,则请求服务器重新创建一个应用服务子进程,以替代停止运行的应用服务子进程,使处于运行状态的应用服务子进程数量恒定,保证用户的请求能够得到及时的响应。
进一步地,为了最大程度上节约***资源,当一个应用服务子进程停止运行后,主控进程将删除响应次数达到设定值的应用服务子进程,即删除应用服务子进程在创建、运行过程中的相关代码、数据。具体地,可以通过fork函数创建一个应用服务子进程,对应地,通过kill函数删除该应用服务子进程。
通过以上步骤101~步骤105的方案,对应用服务子进程生存期的控制,在应用服务子进程提供一定次数的响应服务后主动退出,由服务器创建新的应用服务子进程,避免了由于编程错误或运行误差引起的误差累积,确保处于运行状态的应用服务子进程误差较小,避免应用服务子进程失效的问题;同时,每个应用服务子进程可以独自与用户建立连接,不需要主程序进行分发,避免了在现有的第二种进程架构下,由于主程序问题导致整个***服务中断的情况;并且,本发明实施例还利用了进程池的作用,不需要服务器为每一个用户请求创建应用服务子进程,减少了***开销。
在步骤102之前,主控进程还根据以下方式确定应用服务子进程可以响应的应用服务次数的最大值,即步骤103中涉及的设定值:
首先,主控进程确定应用服务子进程响应一个应用服务时的运行误差,以及应用服务子进程运行时的最大运行误差;然后,主控进程将所述最大运行误差与响应一个应用服务时的运行误差之商取整得到的数值作为所述设定值。
主控进程将确定的所述设定值置于所述共享信息中发送给应用服务子进程,以便于应用服务子进程根据所述设定值确定自身的运行状态。
本发明实施例中,***中运行的多个应用服务子进程都可以响应用户请求的应用服务,具体地,当有用户请求的应用服务达到时,可以有多种方式确定由哪个应用服务子进程为其提供服务,确定的应用服务子进程称之为可用应用服务子进程,确定可用应用服务子进程的方式包括但不限于以下三种:
第一种方式:应用服务子进程协商方式。
在本方式下,响应次数未达到设定值且处于空闲状态(未响应应用服务)的应用服务子进程之间可以协商确定一个可用应用服务子进程,例如:按照应用服务子进程标识由小到大(或由大到小)的顺序,选择应用服务子进程标识最小(或最大)的作为可用应用服务子进程;或者,按照随机算法随机选择出一个可用应用服务子进程。
第二种方式:主控进程选择方式。
在本方式下,当用户请求应用服务时,由主控进程从响应次数未达到设定值且处于空闲状态的应用服务子进程中选择一个作为可用应用服务子进程。
第三种方式:根据***时间确定。
在本方式下,建立一个***周期内,不同时间段与应用服务子进程的对应关系。例如:将***周期T划分为5个时间段,分别为t1~t5,每一个时间段对应一个应用服务子进程。当一个用户请求的应用服务达到时,根据该应用服务到达时间确定对应的时间段,进而确定对应的可用应用服务子进程。
实施例二:
本发明实施例二还提供一种进程生存控制设备,如图2所示,所述设备包括:创建模块11、通知模块12和请求模块13,其中:创建模块11用于触发服务器创建一个主控进程和多个应用服务子进程,所述应用服务子进程用于响应用户请求的应用服务;通知模块12用于触发应用服务子进程对自身响应的应用服务的次数进行累加,当响应次数达到设定值时,通知主控进程,并停止响应用户请求的应用服务;请求模块13用于触发所述主控进程请求服务器重新创建一个应用服务子进程。
所述进程生存控制设备还包括设定值确定模块14,用于触发主控进程确定应用服务子进程响应一个应用服务时的运行误差,以及应用服务子进程运行时的最大运行误差,以及,触发主控进程将所述最大运行误差与响应一个应用服务时的运行误差之商取整得到的数值作为所述设定值。
所述设定值确定模块14还用于触发所述主控进程将所述设定值置于共享信息中发送给应用服务子进程。
所述进程生存控制设备还包括删除模块15,用于触发主控进程删除响应次数达到设定值的应用服务子进程。
通过本发明实施例提供的方法和设备,将基于TCP/IP协议的服务端程序分离成主控进程和应用服务子进程,主控进程的主要功能是通信初始化和对应用服务子进程数量的监控,实现逻辑简单;多个应用服务子进程同时响应用户的请求,响应速度快;由于每个应用服务子进程只响应有限次数的用户请求,可以有效释放***资源,消除由于编程错误或运行误差引起的误差累积,确保处于运行状态的应用服务子进程误差较小,从而提高了TCP/IP协议的服务端程序的长效稳定性,保证对用户的服务品质;同时,每个应用服务子进程可以独自与用户建立连接,不需要主程序进行分发,避免了在现有的第二种进程架构下,由于主程序问题导致整个***服务中断的情况;并且,本发明实施例还利用了进程池的作用,不需要服务器为每一个用户请求创建应用服务子进程,减少了***开销。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种进程生存控制方法,其特征在于,所述方法包括:
服务器创建一个主控进程和多个应用服务子进程,所述应用服务子进程用于响应用户请求的应用服务;
应用服务子进程对自身响应的应用服务的次数进行累加,当响应次数达到设定值时,通知主控进程,并停止响应用户请求的应用服务;
所述主控进程请求服务器重新创建一个应用服务子进程;
所述服务器响应主控进程的请求,重新创建一个应用服务子进程。
2.如权利要求1所述的方法,其特征在于,所述设定值通过以下步骤确定:
主控进程确定应用服务子进程响应一个应用服务时的运行误差,以及应用服务子进程运行时的最大运行误差;
主控进程将所述最大运行误差与响应一个应用服务时的运行误差之商取整得到的数值作为所述设定值。
3.如权利要求1所述的方法,其特征在于,服务器创建一个主控进程和多个应用服务子进程之后,所述应用服务子进程对自身响应的应用服务的次数进行累加之前,所述方法还包括:
主控进程向各应用服务子进程发送共享信息,指示所述应用服务子进程根据共享信息中的通信端点标识与用户建立通信连接。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
主控进程将所述设定值置于所述共享信息中。
5.如权利要求1所述的方法,其特征在于,应用服务子进程停止响应用户请求的应用服务之后,所述方法还包括:
主控进程删除响应次数达到设定值的应用服务子进程。
6.如权利要求1~5任一所述的方法,其特征在于,所述方法还包括:
当用户向应用服务子进程请求一个应用服务时,由可用应用服务子进程响应请求的所述应用服务,
所述可用应用服务子进程为:响应次数未达到设定值的所有应用服务子进程协商确定的应用服务子进程;或者由主控进程从响应次数未达到设定值的应用服务子进程中确定的应用服务子进程;或者当前***时间所在时间段对应的应用服务子进程。
7.一种进程生存控制设备,其特征在于,所述进程生存控制设备包括:
创建模块,用于触发服务器创建一个主控进程和多个应用服务子进程,所述应用服务子进程用于响应用户请求的应用服务;
通知模块,用于触发应用服务子进程对自身响应的应用服务的次数进行累加,当响应次数达到设定值时,通知主控进程,并停止响应用户请求的应用服务;
请求模块,用于触发所述主控进程请求服务器重新创建一个应用服务子进程。
8.如权利要求7所述的设备,其特征在于,所述进程生存控制设备还包括:
设定值确定模块,用于触发主控进程确定应用服务子进程响应一个应用服务时的运行误差,以及应用服务子进程运行时的最大运行误差,以及,触发主控进程将所述最大运行误差与响应一个应用服务时的运行误差之商取整得到的数值作为所述设定值。
9.如权利要求8所述的设备,其特征在于,
所述设定值确定模块,还用于触发所述主控进程将所述设定值置于共享信息中发送给应用服务子进程。
10.如权利要求8所述的设备,其特征在于,所述进程生存控制设备还包括:
删除模块,用于触发主控进程删除响应次数达到设定值的应用服务子进程。
CN200910092328XA 2009-09-07 2009-09-07 一种进程生存控制方法和设备 Expired - Fee Related CN102012836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910092328XA CN102012836B (zh) 2009-09-07 2009-09-07 一种进程生存控制方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910092328XA CN102012836B (zh) 2009-09-07 2009-09-07 一种进程生存控制方法和设备

Publications (2)

Publication Number Publication Date
CN102012836A true CN102012836A (zh) 2011-04-13
CN102012836B CN102012836B (zh) 2012-07-04

Family

ID=43843012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910092328XA Expired - Fee Related CN102012836B (zh) 2009-09-07 2009-09-07 一种进程生存控制方法和设备

Country Status (1)

Country Link
CN (1) CN102012836B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645939A (zh) * 2013-11-29 2014-03-19 北京奇虎科技有限公司 一种图片抓取的方法和***
WO2015184787A1 (zh) * 2014-06-04 2015-12-10 广州华多网络科技有限公司 网络课堂故障处理方法、装置及***
CN105677456A (zh) * 2015-12-30 2016-06-15 广东欧珀移动通信有限公司 一种进程信息的写方法及用户设备
CN106341691A (zh) * 2016-08-10 2017-01-18 东方网力科技股份有限公司 基于大数据的数据处理方法及装置
CN106919488A (zh) * 2016-07-21 2017-07-04 阿里巴巴集团控股有限公司 应用程序的响应状态的确定方法及装置
CN111176801A (zh) * 2019-07-17 2020-05-19 腾讯科技(深圳)有限公司 一种多进程管理方法、装置、设备及存储介质
CN112486713A (zh) * 2019-09-11 2021-03-12 华为技术有限公司 一种冻屏处理方法及电子设备
CN112948158A (zh) * 2021-02-19 2021-06-11 山东英信计算机技术有限公司 一种文件共享方法、装置、设备及计算机可读存储介质
CN113157452A (zh) * 2021-04-20 2021-07-23 腾讯科技(深圳)有限公司 应用服务请求方法、装置、计算机设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1266590C (zh) * 2002-12-31 2006-07-26 上海科泰世纪科技有限公司 面向构件基于***内核的进程池/线程池管理方法
CN100389404C (zh) * 2006-08-01 2008-05-21 西安西电捷通无线网络通信有限公司 一种计算机应用程序的监控及异常处理方法
CN101321096A (zh) * 2008-07-11 2008-12-10 北京立通无限科技有限公司 基于共享socket的通信处理方法及装置
CN101387952B (zh) * 2008-09-24 2011-12-21 上海大学 单芯片多处理器任务调度管理方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645939A (zh) * 2013-11-29 2014-03-19 北京奇虎科技有限公司 一种图片抓取的方法和***
WO2015184787A1 (zh) * 2014-06-04 2015-12-10 广州华多网络科技有限公司 网络课堂故障处理方法、装置及***
CN105677456A (zh) * 2015-12-30 2016-06-15 广东欧珀移动通信有限公司 一种进程信息的写方法及用户设备
CN106919488A (zh) * 2016-07-21 2017-07-04 阿里巴巴集团控股有限公司 应用程序的响应状态的确定方法及装置
CN106919488B (zh) * 2016-07-21 2020-06-02 阿里巴巴集团控股有限公司 应用程序的响应状态的确定方法及装置
CN106341691A (zh) * 2016-08-10 2017-01-18 东方网力科技股份有限公司 基于大数据的数据处理方法及装置
CN106341691B (zh) * 2016-08-10 2019-10-22 东方网力科技股份有限公司 基于大数据的数据处理方法及装置
CN111176801A (zh) * 2019-07-17 2020-05-19 腾讯科技(深圳)有限公司 一种多进程管理方法、装置、设备及存储介质
CN111176801B (zh) * 2019-07-17 2024-04-12 腾讯科技(深圳)有限公司 一种多进程管理方法、装置、设备及存储介质
CN112486713A (zh) * 2019-09-11 2021-03-12 华为技术有限公司 一种冻屏处理方法及电子设备
CN112948158A (zh) * 2021-02-19 2021-06-11 山东英信计算机技术有限公司 一种文件共享方法、装置、设备及计算机可读存储介质
CN113157452A (zh) * 2021-04-20 2021-07-23 腾讯科技(深圳)有限公司 应用服务请求方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN102012836B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102012836B (zh) 一种进程生存控制方法和设备
CN107018175B (zh) 移动云计算平台的调度方法和装置
US9532359B2 (en) Resource allocation method and device
JP6538869B2 (ja) ネットワーク管理
JP5301032B2 (ja) アクセスポイントを制御する方法、装置、及びシステム
EP3528440A1 (en) Path selection method and system, network acceleration node, and network acceleration system
Nakai et al. Load balancing for internet distributed services using limited redirection rates
CN103856512A (zh) 云计算的管理服务器、工作和闲置主机以及资源调度方法
CN102469023A (zh) 基于云计算的调度方法、单元及***
CN102480469B (zh) 一种sip服务集群中基于能量均衡的负载调度的方法及装置
US20200015102A1 (en) Network slice instance management method, apparatus, and system
CN110650069A (zh) 一种cdn节点控制方法、装置及***
CN111770157A (zh) 一种业务处理方法、装置及电子设备和存储介质
CN103024699A (zh) 一种短信发送方法和一种信息资源站实体
WO2023115829A1 (zh) 一种边缘计算资源的分配方法、装置、设备及存储介质
CN101355521B (zh) 负载均衡控制方法、通信装置与通信***
CN103957251A (zh) 一种实现服务器负载均衡的方法及***
CN104639415A (zh) 一种虚拟机的迁移方法和软件定义网络sdn控制器
WO2011075899A1 (zh) 实现多web应用请求调度的方法、装置及***
CN105207856A (zh) 一种基于sdn虚拟交换机的负载均衡的***及方法
CN106411574A (zh) 一种管理控制方法和装置
CN109348486A (zh) 一种异构无线网络资源分配方法
CN104038358A (zh) 一种内容调度方法及内容调度装置
CN108667956A (zh) 一种5g***中的ip地址池管理方法
KR20160025926A (ko) 가상 응용서버들로 부하를 분산하는 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20210907

CF01 Termination of patent right due to non-payment of annual fee