CN105260241B - 集群系统中进程相互协作的方法 - Google Patents

集群系统中进程相互协作的方法 Download PDF

Info

Publication number
CN105260241B
CN105260241B CN201510698797.1A CN201510698797A CN105260241B CN 105260241 B CN105260241 B CN 105260241B CN 201510698797 A CN201510698797 A CN 201510698797A CN 105260241 B CN105260241 B CN 105260241B
Authority
CN
China
Prior art keywords
subprocess
boss
signal
node
cluster
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.)
Expired - Fee Related
Application number
CN201510698797.1A
Other languages
English (en)
Other versions
CN105260241A (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.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
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 Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN201510698797.1A priority Critical patent/CN105260241B/zh
Publication of CN105260241A publication Critical patent/CN105260241A/zh
Application granted granted Critical
Publication of CN105260241B publication Critical patent/CN105260241B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种集群系统中进程相互协作的方法,该方法首先生成两个相同的子进程分别作为主子进程和副子进程,主子进程迁移到集群中去,副子进程保留在服务器节点,然后为主子进程设置运行时间,若在设定的时间内主子进程未完成,则向副子进程发送未完成信号,并且丢弃该主子进程,副子进程复制生成新的子进程作为主子进程迁移至集群中。本发明通过设置集群中子进程的运行时间,使服务器节点进程知道子进程将在何时完成,并限制子进程在一定的时间内完成。

Description

集群系统中进程相互协作的方法
技术领域
本发明涉及基于Linux的集群系统技术,特别是一种集群系统中进程相互协作的方法。
背景技术
目前有很多基于Linux的集群系统,Openmosix便是其一。Openmosix选用单一系统映像模式,支持所有UNIX的接口、机制,具有以下特点:透明性,易用性,动态负载平衡,分布式控制,高度的可伸缩性,抢占式进程迁移,能实现最大的全面的性能,并且支持DFSA(Direct File System Access)。
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()函数在服务器生成子进程时绑定在主子进程中,用于接收操作系统内核发送的信号,同时向副子进程发送未完成信号,具体为:若设定时间截止时主子进程还未完成计算,则子进程出现超时,出现超时后,signal()函数向宿主节点发送未完成的标志信号,停止自身运行,等待父进程回收;修改集群系统内的系统调用表,增加一个系统调用,参数包括信号signal,主子进程的pid,以及主子进程所在的节点位置,map_id;新增系统调用的功能,就是向服务器节点的副子进程发送请求,告诉副子进程,在规定的时间内主子进程未完成,已丢弃;服务器节点的副子进程处于可中断等待状态,当其信号处理函数sig_usr()接收到主子进程的请求后,副子进程状态变为就绪态,参与服务器节点上的进程调度;所述的信号处理函数sig_usr()为服务器生成副子进程时绑定的函数,用于接收主子进程发送的未完成信号。
4.根据权利要求1所述的集群系统中进程相互协作的方法,其特征在于,新生成的主子进程不会被迁移到上一个主子进程被迁移到的节点。
CN201510698797.1A 2015-10-23 2015-10-23 集群系统中进程相互协作的方法 Expired - Fee Related CN105260241B (zh)

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 CN105260241A (zh) 2016-01-20
CN105260241B true 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)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868011A (zh) * 2016-03-29 2016-08-17 上海斐讯数据通信技术有限公司 一种提高软件系统运行效率的方法及装置
JP6090511B1 (ja) * 2016-05-06 2017-03-08 富士ゼロックス株式会社 端末装置及びプログラム
CN106569797B (zh) * 2016-10-11 2019-07-05 东软集团股份有限公司 多人协同绘制流程的方法、装置和系统
CN107678782B (zh) * 2017-09-14 2020-03-17 平安科技(深圳)有限公司 一种进程保护方法、装置、设备以及计算机可读存储介质
CN110717484B (zh) * 2019-10-11 2021-07-27 支付宝(杭州)信息技术有限公司 一种图像处理方法和系统
CN113407355A (zh) * 2021-08-19 2021-09-17 苏州浪潮智能科技有限公司 一种集群中进程协作的方法、系统、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 东方网力科技股份有限公司 一种组件运行方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5568048B2 (ja) * 2011-04-04 2014-08-06 株式会社日立製作所 並列計算機システム、およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 东方网力科技股份有限公司 一种组件运行方法及装置

Also Published As

Publication number Publication date
CN105260241A (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN105260241B (zh) 集群系统中进程相互协作的方法
US9378032B2 (en) Information processing method, information processing apparatus, recording medium, and system
EP3866439A1 (en) Application program management method and system
WO2016119412A1 (zh) 一种云平台上的资源伸缩方法和一种云平台
CN106293893B (zh) 作业调度方法、装置及分布式系统
CN102868573B (zh) Web服务负载云测试方法和装置
CN109343931B (zh) 一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法
CN102222042A (zh) 基于云计算的软件自动化测试方法
CN107168777B (zh) 分布式系统中资源的调度方法以及装置
CN111104227B (zh) 一种K8s平台的资源控制方法、装置及相关组件
WO2024021489A1 (zh) 一种任务调度方法、装置及Kubernetes调度器
CN103873534A (zh) 一种应用集群迁移方法及装置
CN111026553A (zh) 离线混部作业的资源调度方法及服务器系统
CN104702664B (zh) 控制任务服务器的方法及系统
CN113282402B (zh) 一种面向复杂资源约束的测试任务调度方法
CN104408110B (zh) 数据请求的方法、装置及系统
CN104199739A (zh) 一种基于负载均衡的推测式Hadoop调度方法
CN109491788A (zh) 一种虚拟化平台负载均衡实现方法及装置
WO2023098614A1 (zh) 一种云实例的扩缩容方法及其相关设备
CN111190691A (zh) 适用于虚拟机的自动迁移方法、系统、装置及存储介质
CN109739634A (zh) 一种原子任务执行方法及装置
CN107025134B (zh) 数据库服务系统及兼容多种数据库的方法
JP6191695B2 (ja) 仮想リソース制御システムおよび仮想リソース制御方法
WO2019029721A1 (zh) 任务的调度方法、装置、设备及存储介质
CN112948113A (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

Granted publication date: 20190416

Termination date: 20201023

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