CN102841815B - 一种numa体系结构自适应的进程分类绑定方法 - Google Patents
一种numa体系结构自适应的进程分类绑定方法 Download PDFInfo
- Publication number
- CN102841815B CN102841815B CN201210242050.1A CN201210242050A CN102841815B CN 102841815 B CN102841815 B CN 102841815B CN 201210242050 A CN201210242050 A CN 201210242050A CN 102841815 B CN102841815 B CN 102841815B
- Authority
- CN
- China
- Prior art keywords
- processor core
- proximities
- subprocess
- processor
- pid
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种NUMA体系结构自适应的进程分类绑定方法,该方法有四大步骤:步骤101.对处理器核的亲近性进行初始化;步骤102.对处理器核亲近性进行探测,并根据探测结果进行归类;步骤103.遍历系统内的进程并识别用户级进程和内核级进程;步骤104.根据进程的识别结果以及处理器亲近性的探测结果进行进程分类绑定。本发明限定了内核级进程和用户级进程的可运行CPU,避免了远地访存的出现,提高了系统的效率;内核级进程和用户级进程实现了物理资源上的隔离,用户级进程的崩溃不会导致内核级进程的崩溃,提高了系统的稳定性和安全性。它在计算机操作系统技术领域里具有较好的实用价值和应用前景。
Description
(一)技术领域
本发明涉及一种NUMA体系结构自适应的进程分类绑定方法,具体涉及一种体系结构探测技术以及基于此技术的进程分类绑定方法,它能够实现操作系统内核对体系结构的探测感知及调度性能的优化,属于计算机操作系统技术领域。
(二)背景技术
当前采用国产龙芯处理器的服务器中,大部分采用NUMA体系结构设计,然而现有的支持龙芯NUMA处理器的操作系统内核在调度过程中没有充分考虑到NUMA体系结构对系统性能的影响,如图1所示,内核在调度决策时在各处理器核之间随机调度进程,导致进程远地访存频繁出现,从而降低了系统的运行效率,另一方面,远地访存的频繁出现也使得系统的稳定性和安全性降低。
如果在操作系统内核中对NUMA体系结构进行探测,在调度过程中充分考虑到NUMA体系结构的影响,如图2所示,将进程的调度控制在与当前进程的物理内存相近的CPU上,则可以避免远地访存的出现,提高系统的效率,同时也可以把内核级进程和用户级进程分类管理,提高系统的安全性和稳定性。综上,本发明对提高龙芯NUMA服务器操作系统的性能和稳定性有很重要的意义。
(三)发明内容
1、目的:
本发明的目的是提供一种NUMA体系结构自适应的进程分类绑定方法,它首先通过对体系结构的探测,获知系统内CPU的分布情况,再根据探测结果对系统内的用户级进程和内核级进程进行分组绑定,限定相应进程的调度域,从而避免远地访存的出现,提高系统的性能和稳定性。
2、技术方案:为达到上述目的,本发明的技术方案如下:
如图3所示,本发明一种NUMA体系结构自适应的进程分类绑定方法,该方法包括以下步骤:
步骤101.对处理器核的亲近性进行初始化;
步骤102.对处理器核亲近性进行探测,并根据探测结果进行归类;
步骤103.遍历系统内的进程并识别用户级进程和内核级进程;
步骤104.根据进程的识别结果以及处理器亲近性的探测结果进行进程分类绑定。
其中,步骤101所述的处理器核的亲近性指的是各处理器核与0号处理器核的亲近关系,处于同一处理器内部的所有处理器核,其亲近性相同。以0号处理器核为基准,各处理器核与0号处理器核的通信时间呈台阶式变化,处于同一台阶的处理器核其亲近性相同。对处理器核的亲近性进行初始化主要是探测处理器核的数目,并默认为所有处理器核与0号处理器核均处于相同等级的亲近性。处理器核数目的探测需要根据内核的初始化信息来确定,如果内核本身在初始化的时候没有提供相应的处理器核信息,则有必要人为指定系统内的处理器核数目。
本发明在硬件条件方面,适用但不限于基于龙芯处理器的NUMA架构服务器。在软件条件方面,适用于基于Linux内核以及基于标准Linux内核裁剪的操作系统。
其中,步骤102所述的对处理器核亲近性进行探测,主要是指的对系统内所有使能的处理器核的远近关系进行探测,通过进程的通信时延差别来归类亲近性处于同一等级的处理器核。处理器核亲近性的探测将为进程的分类绑定提供绑定目标依据,其详细步骤如下:
1)创建及绑定探测子进程
创建与处理器核数目相等的子进程,并将每个子进程各绑定到一个处理器核上。例如将绑定到0号处理器核的子进程记为pid_core0,将绑定到i号处理器核的子进程记为pid_corei。
2)探测子进程间通信及通信延迟计时
以0号处理器核的探测子进程为基准,与其余探测子进程通过管道(pipe)建立通信,并记录通信延迟。例如将将pid_core0与pid_corei的通信延迟记为T0-i,则pid_core0和pid_core1的通信延迟记为T0-1。
再以最后一个处理器核的探测子进程为基准,与其余探测子进程通过管道建立通信并记录通信延迟。例如将pid_core15和pid_corei的通信延迟记为T15-i,则pid_core15和pid_core14的通信延迟记为T15-14。
3)探测子进程通信计时归类
对T0-1到T0-15的数据进行排序,以最小的数为基数,取每个数与基数的差值百分比,并设定一个同节点核间进程通信延迟差值百分比阈值,差值百分比在阈值以内的数据归为同一级通信延迟数据。再在剩下的数据中选取最小的数作为基数,按照上面的方法归类下一级通信延迟数据,以此类推。
再将T15-14到T15-0的数据也进行排序,按照上面的方法进行数据归类处理。
此处的同节点处理器核间进程通信延迟百分比阈值可以动态设定,龙芯上比较合理的百分比阈值在10%--20%之间。
4)处理器核亲近性归类
根据上面的T0-1到T0-15以及T15-14到T15-0的数据分类,分别得到一个相同亲近性级别的处理器核分类,将两种分类进行合并,即可得到处于同一亲近性的处理器核集合。例如a[0],a[1],a[2],a[3]为一个集合,a[4],a[5],a[6],a[7]为一个集合,a[8],a[9],a[10],a[11]为一个集合,a[12],a[13],a[14],a[15]为一个集合。
5)探测子进程注销及返回
将各个探测子进程注销并更新处理器核亲近性集合。
其中,步骤103所述的遍历系统内的进程指的是遍历系统内所有进程的task_struct数据结构。通过task_struct数据结构来识别用户级进程和内核级进程。由于内核级进程关系到系统的初始化、运行中的管理以及关机等功能,其将被绑定在0号处理器核所在的节点。
其中,步骤104所述的进程分类绑定指的是根据用户级进程和内核级进程的识别结果,对进程的task_struct结构体中的cpus_allowed成员进行限定,从而限制其可调度范围。内核级进程限制在0号处理器核以及与0号处理器核处于相同亲近性等级的处理器核上,其余的用户级进程限制在其他的各个处于相同亲近性等级的处理器核集合中。
3、优点及功效:
本发明是一种NUMANUMA体系结构自适应的进程分类绑定方法,它与现有技术相比,其主要优点如下:(1)限定了内核级进程和用户级进程的可运行CPU,避免了远地访存的出现,提高了系统的效率;(2)内核级进程和用户级进程实现了物理资源上的隔离,用户级进程的崩溃不会导致内核级进程的崩溃,提高了系统的稳定性和安全性。
(四)附图说明
图1改进前的NUMA体系结构上的进程调度示意图
图2改进后的NUMA体系结构上的进程调度示意图
图3为本发明的体系结构自适应的进程绑定方法总体流程图
图4为本发明的体系结构自适应探测方法流程图
(五)具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的主要思想是通过进程的通信时延或者访存时延来获取系统内处理器核的分布,进而对处理器核的亲近性进行分类。通过对处理器核的亲近性分类以及对用户级进程和内核级进程的识别,分别将其限制在处于同一亲近性的处理器核集合中,从而避免远地访存的出现,并实现用户级进程和内核级进程在物理资源上的隔离,从而提高系统的性能和稳定性。
见图1、图2、图3及图4,本发明一种NUMA体系结构自适应的进程分类绑定方法,该方法包括以下步骤:
步骤201:探测处理器核数目,初始化处理器核亲近关系数组。
在内核的init进程初始化完成之后,对系统内处理器核的亲近性进行初始化。具体步骤为:探测系统内的处理器核数目,初始化一个与处理器核数目相等长度的数组,数组元素的序号代表相应的处理器核,而数组元素的值代表与0号处理器核的亲近关系权值,具有相同权值的处理器核将被视为同一调度类。
下面以系统内具有16个处理器核为例.则建立一个数组长度为16的数组a[i](i=0--15),其中i代表第i个处理器核,a[i]的值代表第i个处理器核与0号处理器核的亲近关系,a[0]=0.
步骤202-1:创建及绑定探测子进程
创建与处理器核数目相等的子进程,并将每个子进程各绑定到一个处理器核上。例如将绑定到0号处理器核的子进程记为pid_core0,将绑定到i号处理器核的子进程记为pid_corei。
步骤202-2:探测子进程间通信及通信延迟计时
以0号处理器核的探测子进程为基准,与其余探测子进程通过管道(pipe)建立通信,并记录通信延迟。例如将将pid_core0与pid_corei的通信延迟记为T0-i,则pid_core0和pid_core1的通信延迟记为T0-1。
再以最后一个处理器核的探测子进程为基准,与其余探测子进程通过管道建立通信并记录通信延迟。例如将pid_core15和pid_corei的通信延迟记为T15-i,则pid_core15和pid_core14的通信延迟记为T15-14。
步骤202-3:探测子进程通信计时归类
对T0-1到T0-15的数据进行排序,以最小的数为基数,取每个数与基数的差值百分比,并设定一个同节点核间进程通信延迟差值百分比阈值,差值百分比在阈值以内的数据归为同一级通信延迟数据。再在剩下的数据中选取最小的数作为基数,按照上面的方法归类下一级通信延迟数据,以此类推。
再将T15-14到T15-0的数据也进行排序,按照上面的方法进行数据归类处理。
此处的同节点处理器核间进程通信延迟百分比阈值可以动态设定,龙芯上比较合理的百分比阈值在10%--20%之间。
步骤202-4:处理器核亲近性归类
根据上面的T0-1到T0-15以及T15-14到T15-0的数据分类,分别得到一个相同亲近性级别的处理器核分类,将两种分类进行合并,即可得到处于同一亲近性的处理器核集合。例如a[0],a[1],a[2],a[3]为一个集合,a[4],a[5],a[6],a[7]为一个集合,a[8],a[9],a[10],a[11]为一个集合,a[12],a[13],a[14],a[15]为一个集合。
步骤202-5:探测子进程注销及返回
将各个探测子进程注销并更新处理器核亲近性集合。
步骤203:系统内进程遍历及识别
可以通过类似于list_for_each_entry(p,&task->tasks,tasks)或者for_each_process(task)等宏实现系统进程的遍历。通过判断task->mm成员是否为空可以对内核级进程和用户及进程进行区分,内核级进程的task->mm成员为空。
步骤204:进程的分类绑定
将识别出的内核进程通过类似于set_affinity的函数将其绑定在0号处理器核所在的集合中。而将识别出的用户级进程绑定到其他的某个处理器核集合中,可以设定一个标志位来记录上一次用户级进程分配的处理器核集合,并在下一次对用户级进程绑定时分配另一个处理器核集合并更新相应的标志位,从而避免某一个处理器核集合内的用户级进程过多。
本实例中体系结构的感知是通过创建探测子进程并通过管道通信延迟来判断处理器的分布,实际中也可以通过创建探测子进程对系统内存进行访问,通过此访存延迟来判断处理器的分布情况。采用此发明可以有效地避免NUMA结构上的远地访存出现,也可以实现用户级进程和内核级进程在物理资源上的隔离,充分提高系统效率,提升系统稳定性。
最后所应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.一种NUMA体系结构自适应的进程分类绑定方法,其特征在于:该方法包括以下步骤:
步骤101.对处理器核的亲近性进行初始化;
步骤102.对处理器核亲近性进行探测,并根据探测结果进行归类;
步骤103.遍历系统内的进程并识别用户级进程和内核级进程;
步骤104.根据进程的识别结果以及处理器亲近性的探测结果进行进程分类绑定;
其中,步骤101所述的处理器核的亲近性指的是各处理器核与0号处理器核的亲近关系,处于同一处理器内部的所有处理器核,其亲近性相同;以0号处理器核为基准,各处理器核与0号处理器核的通信时间呈台阶式变化,处于同一台阶的处理器核其亲近性相同;对处理器核的亲近性进行初始化是探测处理器核的数目,并默认为所有处理器核与0号处理器核均处于相同等级的亲近性;处理器核数目的探测需要根据内核的初始化信息来确定,如果内核本身在初始化的时候没有提供相应的处理器核信息,则人为指定系统内的处理器核数目;
其中,步骤102所述的对处理器核亲近性进行探测,是指对系统内所有使能的处理器核的远近关系进行探测,通过进程的通信时延差别来归类亲近性处于同一等级的处理器核;处理器核亲近性的探测将为进程的分类绑定提供绑定目标依据,其详细步骤如下:
1)创建及绑定探测子进程
创建与处理器核数目相等的子进程,并将每个子进程各绑定到一个处理器核上;将绑定到0号处理器核的子进程记为pid_core0,将绑定到i号处理器核的子进程记为pid_corei;
2)探测子进程间通信及通信延迟计时
以0号处理器核的探测子进程为基准,与其余探测子进程通过管道(pipe)建立通信,并记录通信延迟;将pid_core0与pid_corei的通信延迟记为T0-i,则pid_core0和pid_core1的通信延迟记为T0-1;
再以最后一个处理器核的探测子进程为基准,与其余探测子进程通过管道建立通信并记录通信延迟;将pid_core15和pid_corei的通信延迟记为T15-i,则pid_core15和pid_core14的通信延迟记为T15-14;
3)探测子进程通信计时归类
对T0-1到T0-15的数据进行排序,以最小的数为基数,取每个数与基数的差值百分比,并设定一个同节点核间进程通信延迟差值百分比阈值,差值百分比在阈值以内的数据归为同一级通信延迟数据;再在剩下的数据中选取最小的数作为基数,按照上面的方法归类下一级通信延迟数据,以此类推;再将T15-14到T15-0的数据也进行排序,按照上面的方法进行数据归类处理,此处的同节点处理器核间进程通信延迟百分比阈值动态设定,龙芯上较合理的百分比阈值在10%--20%之间;
4)处理器核亲近性归类
根据上面的T0-1到T0-15以及T15-14到T15-0的数据分类,分别得到一个相同亲近性级别的处理器核分类,将两种分类进行合并,即得到处于同一亲近性的处理器核集合;a[0],a[1],a[2],a[3]为一个集合,a[4],a[5],a[6],a[7]为一个集合,a[8],a[9],a[10],a[11]为一个集合,a[12],a[13],a[14],a[15]为一个集合;
5)探测子进程注销及返回
将各个探测子进程注销并更新处理器核亲近性集合。
2.根据权利要求1所述的一种NUMA体系结构自适应的进程分类绑定方法,其特征在于:步骤103所述的遍历系统内的进程指的是遍历系统内所有进程的task_struct数据结构,通过task_struct数据结构来识别用户级进程和内核级进程;由于内核级进程关系到系统的初始化、运行中的管理以及关机功能,其将被绑定在0号处理器核所在的节点。
3.根据权利要求1所述的一种NUMA体系结构自适应的进程分类绑定方法,其特征在于:步骤104所述的进程分类绑定指的是根据用户级进程和内核级进程的识别结果,对进程的task_struct结构体中的cpus_allowed成员进行限定,从而限制其可调度范围;内核级进程限制在0号处理器核以及与0号处理器核处于相同亲近性等级的处理器核上,其余的用户级进程限制在其他的各个处于相同亲近性等级的处理器核集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210242050.1A CN102841815B (zh) | 2012-07-12 | 2012-07-12 | 一种numa体系结构自适应的进程分类绑定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210242050.1A CN102841815B (zh) | 2012-07-12 | 2012-07-12 | 一种numa体系结构自适应的进程分类绑定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102841815A CN102841815A (zh) | 2012-12-26 |
CN102841815B true CN102841815B (zh) | 2014-07-09 |
Family
ID=47369212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210242050.1A Active CN102841815B (zh) | 2012-07-12 | 2012-07-12 | 一种numa体系结构自适应的进程分类绑定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102841815B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050091B (zh) * | 2012-12-28 | 2017-06-20 | 华耀(中国)科技有限公司 | 基于非一致性内存访问系统的网络设备及其设置方法 |
CN104503831B (zh) * | 2014-12-22 | 2017-10-13 | 北京奇虎科技有限公司 | 设备优化方法及装置 |
CN104536822B (zh) * | 2014-12-31 | 2018-03-23 | 中科创达软件股份有限公司 | 一种进程调度优化方法、进程执行方法及相关装置 |
CN106569898A (zh) * | 2016-11-22 | 2017-04-19 | 珠海市魅族科技有限公司 | 一种资源分配的方法以及移动终端 |
CN107748706A (zh) * | 2017-10-27 | 2018-03-02 | 郑州云海信息技术有限公司 | 一种绑定方法及装置 |
CN111274004B (zh) * | 2020-02-27 | 2023-06-20 | 深圳市腾讯信息技术有限公司 | 进程实例管理方法、装置及计算机存储介质 |
CN114281516A (zh) * | 2020-09-27 | 2022-04-05 | 华为云计算技术有限公司 | 一种基于numa属性的资源分配方法及装置 |
CN112256395B (zh) * | 2020-10-23 | 2023-01-31 | 海光信息技术股份有限公司 | 安全内存分配、虚拟cpu调度方法及相关装置 |
CN115586967B (zh) * | 2022-10-10 | 2023-04-18 | 河南省人民医院 | 一种成人呼吸监测设备及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1469246A (zh) * | 2002-06-20 | 2004-01-21 | �Ҵ���˾ | 对多处理器系统进行负荷平衡的装置和方法 |
CN101349974A (zh) * | 2007-07-16 | 2009-01-21 | 中兴通讯股份有限公司 | 一种分布式系统中提高多核cpu处理能力的方法 |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
-
2012
- 2012-07-12 CN CN201210242050.1A patent/CN102841815B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1469246A (zh) * | 2002-06-20 | 2004-01-21 | �Ҵ���˾ | 对多处理器系统进行负荷平衡的装置和方法 |
CN101349974A (zh) * | 2007-07-16 | 2009-01-21 | 中兴通讯股份有限公司 | 一种分布式系统中提高多核cpu处理能力的方法 |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102841815A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841815B (zh) | 一种numa体系结构自适应的进程分类绑定方法 | |
US20200358710A1 (en) | Container-based mobile code offloading support system in cloud environment and offloading method thereof | |
CN103677654B (zh) | 一种存储数据的方法及电子设备 | |
CN101799773B (zh) | 并行计算的内存访问方法 | |
US9465734B1 (en) | Coalition based memory management | |
CN101971146B (zh) | 改进作为管理程序来宾而运行的虚拟机中内存使用情况的系统和方法 | |
CN102231121B (zh) | 基于内存映射的大数据文件快速并行提取方法 | |
CN103810048A (zh) | 一种面向资源利用最优的线程数量自动调整方法及装置 | |
CN103023801B (zh) | 一种基于流量特征分析的网络中间节点缓存优化方法 | |
CN110347498B (zh) | 一种容器和虚拟机混合云环境下的负载动态迁移方法 | |
CN103077197A (zh) | 一种数据存储方法装置 | |
US20140282540A1 (en) | Performant host selection for virtualization centers | |
CN111381928B (zh) | 一种虚拟机迁移方法、云计算管理平台和存储介质 | |
CN110417903A (zh) | 一种基于云计算的信息处理方法和系统 | |
CN113342477A (zh) | 一种容器组部署方法、装置、设备及存储介质 | |
CN103812895A (zh) | 调度方法、管理节点以及云计算集群 | |
CN102339233A (zh) | 云计算集中管理平台 | |
Wang et al. | A task scheduling strategy in edge-cloud collaborative scenario based on deadline | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
CN116069240A (zh) | 存储器池管理 | |
US8984246B2 (en) | Method, system and computer program product for reading a decision tree | |
CN107329836B (zh) | 多系统的内存管理方法、管理装置以及移动终端 | |
CN105389196A (zh) | 利用虚拟化技术进行地震资料处理的方法 | |
CN104050189B (zh) | 页面共享处理方法及装置 | |
Liu et al. | An efficient job scheduling for MapReduce clusters |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210208 Address after: Room 203-204, building Y2, 112 liangxiu Road, Pudong New Area, Shanghai, 201203 Patentee after: SHANGHAI ZHIRUI ELECTRONIC TECHNOLOGY Co.,Ltd. Address before: 100191 No. 37, Haidian District, Beijing, Xueyuan Road Patentee before: BEIHANG University |
|
TR01 | Transfer of patent right |