CN102012836A - 一种进程生存控制方法和设备 - Google Patents
一种进程生存控制方法和设备 Download PDFInfo
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Debugging And Monitoring (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所述的设备,其特征在于,所述进程生存控制设备还包括:
删除模块,用于触发主控进程删除响应次数达到设定值的应用服务子进程。
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)
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)
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 | 上海大学 | 单芯片多处理器任务调度管理方法 |
-
2009
- 2009-09-07 CN CN200910092328XA patent/CN102012836B/zh not_active Expired - Fee Related
Cited By (12)
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 | |
CN102469023B (zh) | 基于云计算的调度方法、单元及系统 | |
JP6538869B2 (ja) | ネットワーク管理 | |
JP5301032B2 (ja) | アクセスポイントを制御する方法、装置、及びシステム | |
US20190182351A1 (en) | Route selection method and system, network acceleration node, and network acceleration system | |
US10993127B2 (en) | Network slice instance management method, apparatus, and system | |
CN102480469B (zh) | 一种sip服务集群中基于能量均衡的负载调度的方法及装置 | |
CN111770157A (zh) | 一种业务处理方法、装置及电子设备和存储介质 | |
CN110650069A (zh) | 一种cdn节点控制方法、装置及系统 | |
WO2023115829A1 (zh) | 一种边缘计算资源的分配方法、装置、设备及存储介质 | |
CN103024699A (zh) | 一种短信发送方法和一种信息资源站实体 | |
CN101355521B (zh) | 负载均衡控制方法、通信装置与通信系统 | |
CN104639415A (zh) | 一种虚拟机的迁移方法和软件定义网络sdn控制器 | |
CN103957251A (zh) | 一种实现服务器负载均衡的方法及系统 | |
CN103414739B (zh) | 采用自动漂移的云服务器自动监控系统及方法 | |
WO2011075899A1 (zh) | 实现多web应用请求调度的方法、装置及系统 | |
CN105207856A (zh) | 一种基于sdn虚拟交换机的负载均衡的系统及方法 | |
CN104038358A (zh) | 一种内容调度方法及内容调度装置 | |
CN108667956A (zh) | 一种5g系统中的ip地址池管理方法 | |
CN111314408B (zh) | 一种基于通信层多数据项缓存任务的本地边缘计算和物联管理方法 | |
KR20160025926A (ko) | 가상 응용서버들로 부하를 분산하는 장치 및 방법 | |
CN111918382A (zh) | 无线同步群控方法及装置 | |
KR20210150558A (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 |