CN105260241A - 集群系统中进程相互协作的方法 - Google Patents
集群系统中进程相互协作的方法 Download PDFInfo
- Publication number
- CN105260241A CN105260241A CN201510698797.1A CN201510698797A CN105260241A CN 105260241 A CN105260241 A CN 105260241A CN 201510698797 A CN201510698797 A CN 201510698797A CN 105260241 A CN105260241 A CN 105260241A
- Authority
- CN
- China
- Prior art keywords
- subprocess
- boss
- cluster
- signal
- mosix
- 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
Landscapes
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种集群系统中进程相互协作的方法,该方法首先生成两个相同的子进程分别作为主子进程和副子进程,主子进程迁移到集群中去,副子进程保留在服务器节点,然后为主子进程设置运行时间,若在设定的时间内主子进程未完成,则向副子进程发送未完成信号,并且丢弃该主子进程,副子进程复制生成新的子进程作为主子进程迁移至集群中。本发明通过设置集群中子进程的运行时间,使服务器节点进程知道子进程将在何时完成,并限制子进程在一定的时间内完成。
Description
技术领域
本发明涉及基于Linux的集群系统技术,特别是一种集群系统中进程相互协作的方法。
背景技术
目前有很多基于Linux的集群系统,Openmosix便是其一。Openmosix选用单一系统映像模式,支持所有UNIX的接口、机制,具有以下特点:透明性,易用性,动态负载平衡,分布式控制,高度的可伸缩性,抢占式进程迁移,能实现最大的全面的性能,并且支持DFSA(DirectFileSystemAccess)。
Openmosix集群系统的核心功能是集群内的进程迁移,Openmosix以打补丁的方式修改Linux内核,实现了该功能。进程迁移系统有两个部分,一是信息收集算法和资源共享算法,二是进程迁移机制。集群可以依据系统内的负载情况,将进程从负载较高的节点自动迁移到负载较轻的节点上,从而实现系统内负载的动态平衡。
不仅可以由集群自主迁移进程,也可以由集群的管理者手动迁移。手动迁移一个进程时,需要往进程控制块的mosix域whereto字段填写地址,如果不知道目的地址,可随便填写一个地址,则当进程被调度时,集群系统就将根据负载均衡机制迁移该进程到合适的节点。
目前的集群存在一个问题,即服务器进程不知道其生成的子服务器进程何时能完成,只能被动的等待子服务器进程完成之后,将结果传递给自己,然后将结果返回给本次请求的客户端。
发明内容
本发明的目的在于提供一种集群系统中进程相互协作的方法,通过设置集群中子进程的运行时间,使宿主节点进程知道子进程将在何时完成,并限制子进程在一定的时间内完成。
实现本发明目的的技术解决方案为:一种集群系统中进程相互协作的方法,包括如下步骤:
步骤1、集群中服务器进程接收到客户端的请求,生成两个相同的子进程,分别作为主子进程和副子进程,根据负载均衡原理将主子进程迁移到集群中去,副子进程保留在服务器节点不被迁移;
步骤2、设置定时器,为主子进程设置运行时间;
步骤3、若在设定时间内,主子进程未完成,则向服务器节点的副子进程发送未完成的信号,并结束主子进程的运行,执行步骤4,否则将结果返回给客户端;
步骤4、副子进程接收到信号,复制生成一个子进程作为新的主子进程,新的主子进程被迁移至集群中,重复步骤2~步骤4,直至主子进程在设定时间内完成任务。
本发明与现有技术相比,其显著优点为:本发明通过设置集群中子进程的运行时间,使服务器节点进程知道子进程将在何时完成,并限制子进程在一定的时间内完成。
附图说明
图1为本发明的集群系统中进程相互协作的方法流程图。
图2为本发明实施例中集群系统示意图。
图3为本发明实施例中设置主子进程定时器示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细说明。
结合图1,一种集群系统中进程相互协作的方法,包括如下步骤:
步骤1、当集群中服务器进程接收到客户端的请求之后,生成两个相同的子进程,分别为主子进程和副子进程,集群根据负载均衡原理将主子进程迁移到集群中去,副子进程保留在服务器节点不被迁移;服务器进程生成两个相同子进程的具体过程为:
进程控制块增加一个mosix域,命名为mosix.id,id的取值设置为0或1;当服务器进程接收到客户端的请求之后,将会调用两次fork(),生成两个子进程,这两个子进程功能一样,其中一个进程的mosix.id为0,表示该子进程为主子进程,另一进程的mosix.id为1,表示该子进程为副子进程;
步骤2、设置定时器,为主子进程设置运行时间,具体为:
在主子进程中,通过settimer()系统调用,设置一个定时器,当定时时间到达时,内核会给主子进程发送一个SIGALRM,主子进程中绑定的signal()函数接收SIGALRM,并做出相应的处理;所述的signal()函数在服务器生成子进程时绑定在主子进程中,用于接收操作系统内核发送的信号,同时向副子进程发送未完成信号;
步骤3、若在设定时间内,主子进程未完成,则向服务器节点的副子进程发送未完成的信号,并结束主子进程的运行,执行步骤4;否则将结果返回给客户端;
步骤4、副子进程接收到信号,复制生成一个子进程作为新的主子进程,新的主子进程被迁移到集群中去,重复步骤2-步骤4,直至主子进程在设定时间内完成任务;上述新生成的主子进程不会被迁移到上一个主子进程被迁移到的节点。
下面结合具体实施例对本发明做进一步说明。
实施例
如图2所示,在一个简化的集群系统中,节点1作为服务器,接收并处理外界的计算请求,并生成子进程去完成任务,根据负载均衡原理,子进程会被迁移到集群中负载较轻的节点。
修改进程控制块(task_struct)增加一个mosix域,命名为mosix.id,id的取值设置为0或1;当服务器进程接收到客户端的请求之后,将会调用两次创建进程函数fork(),生成两个子进程,这两个子进程功能一样,其中一个进程的mosix.id为0,表示该子进程为主子进程,另一进程的mosix.id为1,表示该子进程为副子进程,并且其mosix.whereto域为0;新生成的副子进程不会被迁移,并且不参与进程调度,其进程状态处于可中断等待状态。
根据集群内负载均衡原理,如果需要迁移新生成的子服务进程,则将主子服务进程迁移到其他的节点,副子进程不参与该迁移。
动态负载平衡机制会每隔一段时间收集集群中各个节点的负载信息,包括该节点上处理器的数量,处理器速度,处理器使用率,以及内存使用率等;根据这些信息,在主子进程中,通过设置定时器函数settimer(),设置一个计时器,当定时时间到达时,内核会给主子进程发送一个SIGALRM,如图3所示;主子进程中绑定的signal()函数接收SIGALRM,并做出相应的处理。
若设定时间截止时主子进程还未完成计算,则子进程出现超时,出现超时后,signal()函数向宿主节点发送未完成的标志信号,停止自身运行,等待父进程回收。
修改集群系统内的系统调用表,增加一个系统调用,参数包括信号signal,主子进程的pid,以及主子进程所在的节点位置,map_id;该新增系统调用的功能,就是向服务器节点的副子进程发送请求,告诉副子进程,在规定的时间内主子进程未完成,已丢弃。
服务器节点的副子进程处于可中断等待状态,当其信号处理函数sig_usr()接收到主子进程的请求后,副子进程状态变为就绪态,参与服务器节点上的进程调度;所述的信号处理函数sig_usr()为服务器生成副子进程时绑定的函数,用于接收主子进程发送的未完成信号;
服务器节点上的副子进程在得到调度后,将生成一个新的进程,该进程为新主子进程,并将新的主子进程的mosix.id域设置为0,whereto域设为1,让集群系统将新的主子进程前往其他节点。副子进程完成这些操作后,进入等待信号量的可中断等待状态,并且始终不会被迁移。
本发明通过设置集群中子进程的运行时间,使服务器节点进程知道子进程将在何时完成,并限制子进程在一定的时间内完成。
Claims (4)
1.一种集群系统中进程相互协作的方法,其特征在于,包括如下步骤:
步骤1、集群中服务器进程接收到客户端的请求,生成两个相同的子进程,分别作为主子进程和副子进程,根据负载均衡原理将主子进程迁移到集群中去,副子进程保留在服务器节点不被迁移;
步骤2、设置定时器,为主子进程设置运行时间;
步骤3、若在设定时间内,主子进程未完成,则向服务器节点的副子进程发送未完成的信号,并结束主子进程的运行,执行步骤4,否则将结果返回给客户端;
步骤4、副子进程接收到信号,复制生成一个子进程作为新的主子进程,新的主子进程被迁移至集群中,重复步骤2~步骤4,直至主子进程在设定时间内完成任务。
2.根据权利要求1所述的集群系统中进程相互协作的方法,其特征在于,步骤1中对于同一个外界请求,服务器进程生成两个相同的子进程,分别作为主子进程和副子进程,具体为:
进程控制块增加一个mosix域,命名为mosix.id,id的取值设置为0或1;当服务器进程接收到客户端的请求之后,将会调用两次fork(),生成两个子进程,这两个子进程功能一样,其中一个进程的mosix.id为0,表示该子进程为主子进程,另一进程的mosix.id为1,表示该子进程为副子进程。
3.根据权利要求1所述的集群系统中进程相互协作的方法,其特征在于,步骤2中设置定时器,为主子进程设置运行时间,具体为:
在主子进程中,通过settimer()系统调用,设置一个定时器,当定时时间到达时,内核会给主子进程发送一个SIGALRM,主子进程中绑定的signal()函数接收SIGALRM,并做出相应的处理;所述的signal()函数在服务器生成子进程时绑定在主子进程中,用于接收操作系统内核发送的信号,同时向副子进程发送未完成信号。
4.根据权利要求1所述的集群系统中进程相互协作的方法,其特征在于,新生成的主子进程不会被迁移到上一个主子进程被迁移到的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510698797.1A CN105260241B (zh) | 2015-10-23 | 2015-10-23 | 集群系统中进程相互协作的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510698797.1A CN105260241B (zh) | 2015-10-23 | 2015-10-23 | 集群系统中进程相互协作的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260241A true CN105260241A (zh) | 2016-01-20 |
CN105260241B CN105260241B (zh) | 2019-04-16 |
Family
ID=55099944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510698797.1A Expired - Fee Related CN105260241B (zh) | 2015-10-23 | 2015-10-23 | 集群系统中进程相互协作的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260241B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868011A (zh) * | 2016-03-29 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种提高软件系统运行效率的方法及装置 |
CN106569797A (zh) * | 2016-10-11 | 2017-04-19 | 东软集团股份有限公司 | 多人协同绘制流程的方法、装置和系统 |
CN107346221A (zh) * | 2016-05-06 | 2017-11-14 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN107678782A (zh) * | 2017-09-14 | 2018-02-09 | 平安科技(深圳)有限公司 | 一种进程保护方法、装置、设备以及计算机可读存储介质 |
WO2021068628A1 (zh) * | 2019-10-11 | 2021-04-15 | 支付宝(杭州)信息技术有限公司 | 一种图像处理方法和系统 |
CN113407355A (zh) * | 2021-08-19 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种集群中进程协作的方法、系统、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270158A (zh) * | 2011-08-10 | 2011-12-07 | 深圳市万兴软件有限公司 | 一种应用程序多进程运行方法及装置 |
US20120254881A1 (en) * | 2011-04-04 | 2012-10-04 | Hitachi, Ltd. | Parallel computer system and program |
CN102999387A (zh) * | 2012-11-09 | 2013-03-27 | 北京奇虎科技有限公司 | 进程运行装置及方法 |
CN103064770A (zh) * | 2013-01-08 | 2013-04-24 | 哈尔滨工程大学 | 双进程冗余瞬时故障容错方法 |
CN103279391A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法 |
CN103838624A (zh) * | 2013-12-16 | 2014-06-04 | 浪潮电子信息产业股份有限公司 | 一种基于Linux消息队列的日志处理方法 |
CN104317605A (zh) * | 2014-11-18 | 2015-01-28 | 东方网力科技股份有限公司 | 一种组件运行方法及装置 |
-
2015
- 2015-10-23 CN CN201510698797.1A patent/CN105260241B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254881A1 (en) * | 2011-04-04 | 2012-10-04 | Hitachi, Ltd. | Parallel computer system and program |
CN102270158A (zh) * | 2011-08-10 | 2011-12-07 | 深圳市万兴软件有限公司 | 一种应用程序多进程运行方法及装置 |
CN102999387A (zh) * | 2012-11-09 | 2013-03-27 | 北京奇虎科技有限公司 | 进程运行装置及方法 |
CN103064770A (zh) * | 2013-01-08 | 2013-04-24 | 哈尔滨工程大学 | 双进程冗余瞬时故障容错方法 |
CN103279391A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法 |
CN103838624A (zh) * | 2013-12-16 | 2014-06-04 | 浪潮电子信息产业股份有限公司 | 一种基于Linux消息队列的日志处理方法 |
CN104317605A (zh) * | 2014-11-18 | 2015-01-28 | 东方网力科技股份有限公司 | 一种组件运行方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868011A (zh) * | 2016-03-29 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种提高软件系统运行效率的方法及装置 |
CN107346221A (zh) * | 2016-05-06 | 2017-11-14 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN107346221B (zh) * | 2016-05-06 | 2022-05-06 | 富士胶片商业创新有限公司 | 信息处理设备和信息处理方法 |
CN106569797A (zh) * | 2016-10-11 | 2017-04-19 | 东软集团股份有限公司 | 多人协同绘制流程的方法、装置和系统 |
CN106569797B (zh) * | 2016-10-11 | 2019-07-05 | 东软集团股份有限公司 | 多人协同绘制流程的方法、装置和系统 |
CN107678782A (zh) * | 2017-09-14 | 2018-02-09 | 平安科技(深圳)有限公司 | 一种进程保护方法、装置、设备以及计算机可读存储介质 |
CN107678782B (zh) * | 2017-09-14 | 2020-03-17 | 平安科技(深圳)有限公司 | 一种进程保护方法、装置、设备以及计算机可读存储介质 |
WO2021068628A1 (zh) * | 2019-10-11 | 2021-04-15 | 支付宝(杭州)信息技术有限公司 | 一种图像处理方法和系统 |
CN113407355A (zh) * | 2021-08-19 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种集群中进程协作的方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105260241B (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260241A (zh) | 集群系统中进程相互协作的方法 | |
US9916183B2 (en) | Scheduling mapreduce jobs in a cluster of dynamically available servers | |
CN111381950B (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN103235835B (zh) | 用于数据库集群的查询实现方法和装置 | |
CN105912399B (zh) | 一种任务处理方法、装置及系统 | |
CN111861412B (zh) | 面向完成时间优化的科学工作流调度方法及系统 | |
US20050188087A1 (en) | Parallel processing system | |
CN109690510A (zh) | 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法 | |
CN103064742A (zh) | 一种hadoop集群的自动部署系统及方法 | |
CN105808341B (zh) | 一种资源调度的方法、装置和系统 | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
CN107291544B (zh) | 任务调度的方法及装置、分布式任务执行系统 | |
JP2002533809A5 (zh) | ||
CN106933669A (zh) | 用于数据处理的装置和方法 | |
CN109992373B (zh) | 资源调度方法、信息管理方法和装置及任务部署系统 | |
CN115454589A (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN103914556A (zh) | 大规模图数据处理方法 | |
CN103873534A (zh) | 一种应用集群迁移方法及装置 | |
CN107316124B (zh) | 大数据环境下大规模事务型作业调度与处理通用系统 | |
CN108111337B (zh) | 分布式系统仲裁主节点的方法及设备 | |
CN103713942A (zh) | 在集群中调度运行分布式计算框架的方法和系统 | |
CN110955504B (zh) | 智能分配渲染任务的方法、服务器、系统及存储介质 | |
CN112948113A (zh) | 一种集群资源管理调度方法、装置、设备及可读存储介质 | |
CN103257896A (zh) | 一种云环境下的Max-D作业调度方法 | |
CN109189581B (zh) | 一种作业调度方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190416 Termination date: 20201023 |