CN106371894A - 一种配置方法、装置和数据处理服务器 - Google Patents
一种配置方法、装置和数据处理服务器 Download PDFInfo
- Publication number
- CN106371894A CN106371894A CN201610797408.5A CN201610797408A CN106371894A CN 106371894 A CN106371894 A CN 106371894A CN 201610797408 A CN201610797408 A CN 201610797408A CN 106371894 A CN106371894 A CN 106371894A
- Authority
- CN
- China
- Prior art keywords
- processor core
- thread
- data processing
- operating system
- worker thread
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
本发明申请提供了一种配置方法,所述方法应用于包括K个处理器核的数据处理服务器,包括:配置用于管理线程的处理器核的数量为N;配置用于工作线程的处理器核的数量为L;其中,L小于K且L为大于0的整数;为数据处理进程创建管理线程;从所述K个处理器核中选择N个处理器核,将所述数据处理进程的管理线程与所述N个处理器核进行绑定;为所述数据处理进程创建L个工作线程;从所述K个处理器核中选择未绑定的L个处理器核,将所述数据处理进程的L个工作线程与所述L个处理器核进行一对一的绑定。相应的,本申请实施例还公开了配置装置和数据处理服务器。实施本发明,能减少数据处理的时延。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种配置方法、装置和数据处理服务器。
背景技术
随着互联网业务和技术的发展,带来了数据的爆炸式增长,从而催生了大数据处理产业,大数据处理一般满足4个特点:规模性、多样性、高速性和价值性。然而,在移动互联网和物联网浪潮下,数据规模与生成速度更是前所未有地加快,对大数据处理提出了更高的要求,出现了快数据处理。快数据处理的在时延和并发量上有着苛刻的要求,例如:在金融领域中,时延的微小抖动都可能使得防欺诈检测超时,从而使得欺诈交易通过,造成经济损失。
当前业界已有部分快数据实时处理平台通过部署多核处理器和大内存的方式来解决时延问题,但CPU(Central Processing Unit,中央处理单元,简称CPU)有效利用率不足,并发量的增大也会对时延指标造成较大影响,并没有高效发挥服务器多核和大内存优势,也没有很好解决并发量影响时延指标的问题。
发明内容
本发明实施例公开了一种配置方法、装置和数据处理服务器,能够减少数据处理的时延。
第一方面,本申请提供了一种配置方法,数据处理服务器用于进行对数据实时处理,数据处理服务器具有K个处理器核,K为大于1的整数。操作系统配置用于管理线程独占的处理器核的数量为N,N小于K且N为大于0的整数;操作系统配置用于工作线程独占的处理器核的数量为L,L小于K且L为大于0的整数。操作系统在启动后,可创建数据处理进程,数据处理进程为执行数据处理任务的程序的实体。数据处理进程在创建后,操作系统可创建一个或多个管理线程。操作系统从K个处理器核中选择未绑定的N个处理器核,将数据处理进程的管理线程与选择的N个处理器进行绑定,管理线程与N个处理器核绑定后会独占运行在N个处理器核,其他线程不允许运行在N个处理器核上;绑定的方法可以是:管理线程在创建后,操作系统为管理线程分配一个线程id,K个处理器核中每个处理器核预先分配有一个序号,例如从0开始编号,操作系统获取创建的管理线程的线程id,以及获取选择的N个处理器核的序号,将管理线程的线程id与N个处理器核的序号进行绑定。操作系统创建数据处理进程的L个工作线程,操作系统从K个处理器核中选择未绑定的L个处理器核,将L个工作线程与L个处理器核进行绑定,1个工作线程与1个处理核进行绑定,每个工作线程独占运行在绑定的一个处理器核上。其中,管理线程用于执行管理和调度功能,以及与外部设备进行数据交互;例如:业务数据或执行代码的接收、发送、调度工作线程装在执行代码或对业务数据进行处理。工作线程用于执行数据处理任务,根据执行代码对业务数据进行处理,L个工作线程可并行的执行。
上述实施例,通过对数据处理进程的管理线程和工作线程的处理核的数量进行配置,在创建管理线程后管理线程绑定在预设数量的处理器核上,使管理线程独占运行在指定的处理器核上;在创建工作线程后将工作线程绑定在相等数量的处理器核上,每个工作线程独占一个处理器核。这样可避免多个工作线程争抢CPU时间片而引起的任务等待,使单个处理器核被单个工作线程占用,不需要和其他工作线程共享CPU时间片,有效的减少了数据处理的时延。
结合第一方面,在第一种可能的实施方式中,配置用于管理线程的处理器核的数量为N之前,还包括:操作系统配置用于操作系统的处理器核的数量为M,M小于K且M为大于0的整数,然后从K个处理器核中选择M个未绑定的处理器核,使操作系统运行在选择的M个处理器核上。其中,操作系统与M个处理器核的绑定方法包括两种方法:1、操作系统在配置用于操作系统的处理器核的数量为M之后,将包括数量信息M的配置文件存储在非易失性存储器中,例如:存储在机械磁盘或固态硬盘中,然后执行重启操作,在重启后触发BIOS读取配置文件,根据配置文件中的数量信息M从K个处理器核中选择M个处理器核,将M个处理器核上运行操作系统。2、操作系统当前运行在一个或多个处理器核上,操作系统在配置用于操作系统的处理器核的数量M后,从K个处理器核中选择M个处理器核,操作系统从当前运行的一个或多个处理器核迁移到选择的M个处理器核。需要说明的是,除了操作系统需要与M个处理器核进行绑定,进程空间中运行的除数据处理进程的其他进程均需要对M个处理器核进行绑定。上述实施例,操作系统独占运行在选择的M个处理器核上,避免操作系统去抢占工作线程的CPU时间片而造成数据处理任务的等待,进一步减少数据处理的时延。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,VMM(Virtual Machine Monitor,虚拟机监控器,简称VMM)从数据处理服务器的物理资源池中选取K个处理器核,将K个处理器核分配给虚拟机,虚拟机中生成K个虚拟的处理器核,VMM将K个处理器核与K个虚拟机的处理器核进行一对一的映射,包括K个虚拟的处理器核的虚拟机运行操作系统。
上述实施例,通过在数据处理服务器上部署虚拟机的方式进行数据处理,能提高数据处理服务器中物理资源的利用率。
结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,操作系统获取中断请求的中断号和选择的N个处理器核的序号,将N个处理器核的序号与中断请求的中断号进行关联后生成中断映射信息。在进行上述的中断绑定后,中断请求的处理过程为:操作系统接收中断请求,获取中断请求的中断号,根据中断映射信息查询与中断请求关联的N个处理器核,操作系统通知N个处理器核处理中断请求。这样外部设备发出的所有的中断请求都由N个处理器核进行处理,工作线程不需要处理任何中断请求,避免中断请求抢占工作线程的CPU时间片,进一步减少数据处理的时延。
结合第一方面的第二种可能的实施方式,在第四种可能的实施方式中,还包括:操作系统根据预设的调度类型配置信息将L个工作线程的调度类型配置为实时调度类型。通过将工作线程的调度类型设置为实时调度类型,可以使工作线程一直运行在对应的处理器核上,避免数据处理任务的中断,减少处理时延。
结合第一方面至第一方面的第三种可能的实施方式中的任意一种,在第五种可能的实施方式中,操作系统根据预设的优先级配置信息将L个工作线程的优先级设置为最高优先级。避免更高优先级的线程抢占工作线程的处理器核,使工作线程一直运行在对应的处理器核上,减少工作线程的处理时延。
结合第一方面,在第七种可能的实施方式中,还包括:
管理线程接收客户端发送的新的执行代码或业务指令,将新的执行代码或业务指令放入无锁队列,L个工作线程采用无锁竞争的方式从无锁队列中取出一个执行代码或业务数据进行处理,管理线程与工作线程之间通过无锁队列的方式进行通信,避免各个工作线程的资源竞争,减少工作线程执行数据处理任务的等待时间。
结合第一方面,在第八种可能的实施方式中,还包括:操作系统根据预设的内存映射信息为L个工作线程中每个工作线程分配一个私有内存空间,私有内存空间用于存放工作线程的私有数据,通过无共享结构避免工作线程对内存空间的抢占,减少处理时间。
结合第一方面的第八种可能的实施方式,在第九种可能的实施方式中,还包括:操作系统接收工作线程发送的内存访问请求;其中,内存访问请求携带内存地址,工作线程为L个工作线程中的任意一个,操作系统判断内存地址是否位于工作线程关联的私有内存空间,若为是,操作系统将内存访问请求发送给关联的私有内存空间进行处理;若为否,操作系统将内存访问请发送给共享内存空间进行处理。
结合第一方面的第八或第九种可能的实施方式,在第十种可能的实施方式中,创建数据处理进程之前,还包括:操作系统配置内存映射信息;其中,内存映射信息表示数据处理进程的所有工作线程各自分配一个私有内存空间。
本申请第二方面提供了一种配置装置,包括:配置模块和处理模块;
配置模块用于配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;其中,N小于K且N为大于0的整数,L小于K且L为大于0的整数;处理模块用于为数据处理进程创建管理线程,以及从K个处理器核中选择N个处理器核,将数据处理进程的管理线程与N个处理器核进行绑定;为数据处理进程创建L个工作线程,以及从K个处理器核中选择未绑定的L个处理器核,将数据处理进程的L个工作线程与L个处理器核进行一对一的绑定。
上述实施例,通过对数据处理进程的管理线程和工作线程的处理核的数量进行配置,在创建管理线程后管理线程绑定在预设数量的处理器核上,使管理线程独占运行在指定的处理器核上;在创建工作线程后将工作线程绑定在相等数量的处理器核上,每个工作线程独占一个处理器核。这样可避免多个工作线程争抢CPU时间片而引起的任务等待,使单个处理器核被单个工作线程占用,不需要和其他工作线程共享CPU时间片,有效的减少了数据处理的时延。
结合第二方面,在第一种可能的实施方式中,配置模块还用于配置用于操作系统的处理器核的数量为M;其中,M小于K且M为大于0的整数;
处理模块还用于从K个处理器核中选择M个处理器核,在M个处理器核上运行操作系统。上述实施例,操作系统独占运行在选择的M个处理器核上,避免操作系统去抢占工作线程的CPU时间片而造成数据处理任务的等待,进一步减少数据处理的时延。
结合第二方面,在第一种可能的实现方式中,操作系统运行在虚拟机中,虚拟机包括K个虚拟机的处理器核,K个虚拟的处理器核与K个处理器核为一一映射关系。上述实施例,通过部署虚拟机的方式进行数据处理,能提高物理资源的利用率。
结合第二方面至第二方面的第二种可能的实施方式中的任意一种,在第三种可能的实施方式中,配置模块还用于将N个处理器核与中断请求进行关联后生成中断映射信息;处理模块还用于接收中断请求;根据中断映射信息查询与中断请求关联的N个处理器核;通知N个处理器核处理中断请求。通过将工作线程的调度类型设置为实时调度类型,可以使工作线程一直运行在对应的处理器核上,避免数据处理任务的中断,减少处理时延。
结合第二方面,在第四种可能的实现方式中,处理模块还用于根据预设的调度类型配置信息将L个工作线程调度类型设置为实时调度类型。可以使工作线程一直运行在对应的处理器核上,避免数据处理任务的中断,减少处理时延。
结合第二方面至第二方面的第四种可能的实现方式中的任意一种,在第五种可能的实现方式中,处理模块还用于根据预设的优先级配置信息将L个工作线程的优先级设置为最高优先级。避免更高优先级的线程抢占工作线程的处理器核,使工作线程一直运行在对应的处理器核上,减少工作线程的处理时延。
本申请第三方面提供了一种数据处理服务器,包括:K个处理器核和存储器;其中,K个处理器调用存储器中的代码,用于执行以下操作:配置用于管理线程的处理器核的数量为M;其中,M小于K且M为大于0的整数;从K个处理器核中选择M个未绑定的处理器核;M个处理器核调用存储器中的代码,用于执行以下操作:运行操作系统。
结合第三方面,在第一种可能的实现方式中,M个处理器核还用于执行:
配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;其中,N小于K且N为大于0的整数,L小于K且L为大于0的整数;
操作系统独占运行在M个处理器之后,M个处理器核还用于执行:
为数据处理进程创建管理线程,以及从K个处理器核中选择N个未绑定的处理器核,将管理线程与N个处理器核进行绑定;
创建L个工作线程,以及从K个处理器核中选择未绑定的L个处理器核,将L个工作线程与L个处理器核进行一对一的绑定;
管理线程运行在N个处理器核上之后,N个处理器核调用存储器中的代码,用于执行以下操作:运行管理线程;
L个工作线程运行在L个处理器核上之后,L个处理器核调用存储器中的代码,用于执行以下操作:运行各自绑定的一个工作线程。
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,数据处理服务器中部署有虚拟机,操作系统安装在虚拟机中,虚拟机包括K个虚拟的处理器核,K个虚拟的处理器核与K个处理器核为一一映射关系。
结合第三方面至第三方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,M个处理器核还用于执行:将N个处理器核与中断请求进行关联后生成中断映射信息;
N个处理器核还用于执行:
接收待处理的中断请求;
根据中断映射信息处理待处理的中断请求。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,M个处理器核还用于执行:
根据预设的调度类型配置信息将L个工作线程调度类型设置为实时调度类型。
结合第三方面至第三方面的第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,M个处理器核还用于执行:
根据预设的优先级配置信息将L个工作线程的优先级设置为最高优先级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理系统的结构示意图;
图2是本发明实施例提供的一种数据处理服务器的结构示意图;
图3是本发明实施例提供的又一种数据处理服务器的结构示意图;
图4是本发明实施例提供的又一种数据处理服务器的结构示意图;
图5是本发明实施例提供的一种配置方法的流程示意图;
图6是本发明实施例提供的又一种配置方法的流程示意图;
图7是本发明实施例提供的一种配置装置的结构示意图;
图8是本发明实施例提供的又一种数据处理服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参见图1,图1为本发明实施例提供的一种数据处理系统的网络结构图,在本发明实施例中,数据处理系统包括客户端集群10和数据处理服务器集群11,客户端集群10包括多个客户端:客户端101、客户端102、……、客户端10n,数据服务集群11包括多个数据处理服务器:数据处理服务器111、数据处理服务器112、数据处理服务器113、……数据处理服务器11n。客户端集群10客户端需要执行数据处理的任务时,客户端集群可根据负载均衡算法将数据处理任务平均分配到数据处理服务器集群11中的数据处理服务器。例如:n个客户端中的某个客户端生成待处理数据,该客户端采用哈希算法对待处理数据进行哈希运行得到一个哈希值,将得到哈希值与m进行求余,m为数据处理服务器集群10中数据处理服务器的数量,数据处理服务器集群10中每个数据处理服务器预先设置有序号,将上述求余得到的余数作为目标数据处理服务器的序号,该客户端将待处理数据发送给目标数据处理服务器进行相应的数据处理。数据处理服务器中运行有数据处理进程、操作系统以及除数据处理进程的其他进程,数据处理进程包括管理线程和工作线程。数据处理服务器包括处理器核资源池,处理器核资源池包括多个处理器核,数据处理服务器在进行数据处理之前进行了相关的配置和绑定,配置和绑定的过程包括:配置用于操作系统的处理器核的数量、配置用于数据处理进程的管理线程的处理器核的数量和配置用于数据处理进程的工作线程的处理器核的数量;根据预设数量从处理器核资源池中选择未绑定的处理器核,将选择的处理器核与操作系统进行绑定,操作系统独占运行在选择的处理器核上;操作系统创建数据处理进程,操作系统创建数据处理进程的管理线程,操作系统根据预设数量从处理器核资源池中选择未绑定的处理器核,将选择的处理器核与管理线程进行绑定,使管理线程独占运行在选择的处理器核上;操作系统根据预设数量创建工作线程,操作系统根据预设数量从处理器核资源池中选择未绑定的处理器核,将选择的处理器核与创建的工作线程进行绑定,每个工作线程绑定一个处理器核。
在本申请中,数据处理服务器包括三种架构,分别为裸机架构、虚拟机架构和容器架构。
参见图2,图2为裸机架构的数据处理服务器,数据处理服务器2包括处理器核资源池22,处理器核资源池22包括K个处理器核,数据处理器服务器2配置用于操作系统的处理器核的数量为M,配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L,其中,配置的方法可以是:操作系统在启动后执行上述的配置过程。配置完成后,对于操作系统与处理器核的绑定可以是:操作系统可从K个处理器核中选择未绑定的M个处理器核,操作系统将当前运行的一个或多个处理器核迁移到选择的M个处理器核上;或者,操作系统在配置完成后,执行重启操作,在重启的过程中,BIOS读取非易失性存储器中存储的配置文件,配置文件包括用于操作系统的处理器核的数量,BIOS从K个处理器核中选择M个处理器核,在选择的M个处理器核上运行操作系统。当操作系统独占运行在M个处理器核上后,操作系统创建数据处理进程20,操作系统根据数量N创建管理线程200,创建的管理线程200的数量可以为一个或多个,图2中以1个为例。操作系统从K个处理器核中选择未绑定的N个处理器核,将N个处理器核与创建的管理线程200进行绑定,管理线程200独占运行在N个处理器核上。操作系统根据数量L创建L个工作线程,从K个处理器核中选择未绑定的L个处理器核,将L个处理器核与L个工作线程进行绑定,每个工作线程独占运行在一个处理器核上。
可选的,数据处理服务器2还包括内存资源池23,内存资源池23中包括多个内存,操作系统21从内存资源池中选取一个内存空间,将选择的内存空间与操作系统进行绑定,同时,操作系统为管理线程和每个工作线程均分配有一段独立的内存区间,操作系统、管理线程和各个工作线程的内存空间相互独立。
参见图3,图3为虚拟机架构的数据处理服务器,数据处理服务器3包括处理器核资源池33,处理器核资源池33包括多个处理器核。数据处理服务器3中部署有一个或多个虚拟机,图3中以3个虚拟机为例。VMM(Virtual Machine Monitor,虚拟机监视器,简称VMM)在创建虚拟机时为虚拟机分配一定的硬件资源,硬件资源包括CPU资源、内存资源和IO资源等,VMM为虚拟机提供访问数据处理服务器的硬件资源的能力。其中,VMM为虚拟机分配CPU资源时必须满足:每个虚拟机的虚拟的处理器核映射1个物理的处理器核。每个虚拟机中运行数据处理进程、操作系统和其他进程,数据处理进程包括管理线程和工作线程。下面就虚拟机30对本申请的配置方法进行说明:VMM从虚拟机资源池中选择K个处理器核分配给虚拟机30,VMM对分配的K个处理器核进行虚拟化,使虚拟机30中每个虚拟的处理器核映射一个物理的处理器核,对于虚拟机30而言所拥有的处理器核为物理的处理器核,下面不区分物理的处理器核和虚拟的处理器核,统称为处理器核。操作系统302配置用于操作系统的处理器核的数量M,配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;操作系统302从K个处理器核中选择未绑定的M个处理器核,操作系统302从当前运行的一个或多个处理器核上迁移到选择的M个处理器核上;操作系统302根据数量N创建管理线程,例如管理线程的数量等于N,操作系统302从K个处理器核中选择未绑定的N个处理器核,将创建的管理线程与N个处理器核进行绑定;管理操作系统302从K个处理器核中选择未绑定的L个处理器核,将L个处理器核与L个工作线程进行绑定,每个工作线程绑定1一个处理器核。可选的,数据处理服务器3还包括:内存资源池44,内存资源池中包括一个或多个内存,对于每个虚拟机而言,虚拟机中包括的操作系统、管理线程和各个工作线程均分配有1个独立的内存空间。
参见图4,图4为容器架构的数据处理服务器,数据处理服务器4包括处理器核资源池,处理器核资源池包括K个处理器核。数据处理服务器4中部署有一个或多个容器,每个容器中运行一个数据处理进程,这样通过容器的隔离可以一个数据处理服务器上运行多个数据处理进程。操作系统和其他进程运行在数据处理服务器上。数据处理进程包括管理线程和工作线程。每个容器中,管理线程独占运行在预设数量的处理器核上,工作线程运行在预设数量的处理器核上,每个工作线程独占运行在1个处理器核上。下面就容器40的配置过程进行说明:操作系统42配置用于操作系统的处理器核的数量M,配置用于管理线程的数量N和配置用于工作线程的数量L,操作系统从K个处理器核中选择未绑定的M个处理器核,操作系统从当前运行的一个或多个处理器核迁移到M个处理器核上,操作系统在容器40内创建1个数据处理进程,操作系统根据数量N创建管理线程,操作系统从K个处理器核中选择未绑定的N个处理器核,将N个处理器核与管理线程进行绑定,管理线程独占运行在N个处理器核上;操作系统根据数量L创建L个工作线程,操作系统从K个处理器核中选择未绑定的L个处理器核,数据处理进程将L个处理器核与L个工作线程进行绑定,每个工作线程独占运行在1个处理器核上。可选的,数据处理服务器4还包括内存资源池44,内存资源池44包括一个或多个内存,对于每个容器,管理线程和各个工作线程均分配一个独立的内存空间,操作系统和其他进程也分配有一个独立的内存空间。
上述实施例,通过对数据处理进程的管理线程和工作线程的处理核的数量进行配置,在创建管理线程时将管理线程绑定在预设数量的处理器核上,使管理线程独占运行在上述的处理器核上;以及在创建工作线程时将工作线程绑定在相等数量的处理器核上,使每个工作线程独占一个处理器核。这样可避免多个工作线程争抢CPU时间片而引起的任务等待,使单个处理器核被单个工作线程占用,不需要和其他工作线程共享CPU时间片,有效的减少了数据处理的时延。
请参见图5,图5是本发明实施例提供的一种配置方法的流程示意图,该方法包括但不限于如下步骤。
S501、配置用于管理线程的处理器核的数量为N。
具体地,管理线程用于管理工作线程、调度工作线程、与外部设备进行数据交互;工作线程用于执行数据处理任务。数据处理进程包括管理线程和工作线程,操作系统和数据处理进程均运行在数据处理服务器上。数据处理服务器可包括1个处理器核资源池,处理器核资源池中处理器核的数量为K,其中,操作系统可维护一个状态信息表,状态信息表中存储记录每个处理器核的状态的表项,处理器核的状态分为绑定状态和未绑定状态,绑定状态表示被线程或进程独占绑定,其他进程或线程不能使用处理器核,反之,未绑定状态表示该处理器核可以被任意或线程占用;处理器核资源池中任意一个处理器核的状态发生变更时,操作系统更新该处理器核在状态记录表中的表项。操作系统可以再启动之后配置用于管理线程的处理器核的数量为N,N小于K且N和K均为正整数。
S502、配置用于工作线程的处理器核的数据为L。
具体地,操作系统配置用于工作线程独占的处理器核的数量为L,L小于K且L为正整数。
S503、为数据处理进程创建管理线程。
具体地,操作系统根据预设数量N为数据处理进程创建一个或多个管理线程,其中,在需要创建多个管理线程的情况下,操作系统在创建首个管理线程后,可以由首个管理线程创建剩余的管理线程。优选的,创建的管理线程的数量可以等于N,这样使每个管理线程占用1个处理器核,提高处理器核的利用率。
S504、从K个处理器核中选择N个处理器核,将数据处理进程的管理线程与N个处理器核进行绑定。
具体的,操作系统从K个处理器核中选择未绑定的N个处理器核,将S503中创建的所有管理线程与N个处理器核进行独占绑定,绑定的方法可以是:操作系统获取创建的管理线程的线程id和选择的N个处理器核的序号,将创建的管理线程的线程id和N个处理器核的序号进行绑定,绑定后管理线程在N个处理器核上独占运行。
S505、为数据处理进程创建L个工作线程。
具体的,管理线程在N个处理器核上运行后,操作系统根据S502设置的数量L创建相等数量的L个工作线程。
S506、从K个处理器核中选择L个未绑定的处理器核,将数据处理进程的L个工作线程与L个处理器核进行一对一的绑定。
具体的,操作系统从K个处理器核中选择L个未绑定的处理器核,将创建的L个工作线程与L个处理器核进行绑定,绑定的方法可以是:操作系统获取创建的L个工作线程的线程id和选择的L个处理器核的序号,将L个工作线程的线程id与L个处理器核的序号进行一对一的绑定,每个工作线程独占运行在1个处理器核上。
在图1所描述的方法中,数据处理进程的管理线程独占运行在绑定的处理器核上,每个工作线程独立运行在绑定的处理器核上,工作线程不需要和其他线程争抢CPU时间片,减少数据处理的时延。
请参见图6,图6是本发明实施例提供的又一种配置方法的流程示意图,该方法包括但不限于如下步骤。
S601、配置用于操作系统的处理器核的数量为M。
具体地,数据处理服务器包括K个处理器核,K个处理器核中每个处理器核为物理的处理器核,操作系统可维护一个状态记录表,状态记录表中存放每个处理器核的状态的表项,处理器核的状态包括绑定状态和未绑定状态,当K个处理器核中某个处理器核的状态发生变更时,操作系统在状态记录表中更新该处理器核的表项。数据处理进程包括管理线程和工作线程,管理线程用于管理和调度工作线程,以及与外部设备进行数据或指令的交互;工作线程用于执行数据处理任务。操作系统配置用于操作系统的处理器核的数量M,M小于K且M为整数。例如:K=100,数据处理服务器配置用于操作系统的处理器核的数量为4。
S602、配置用于管理线程的处理器核的数量为N。
具体地,数据处理服务器配置用于管理线程的处理器核的数量为N。例如,操作系统配置用于管理线程的处理器核的数据为4。
S603、配置用于工作线程的处理器核的数量为L。
具体地,操作系统配置用于工作线程的处理器核的数量为L,例如:操作系统配置用于工作线程的处理器核的数量为10。
S604、从K个处理器核中选择M个处理器核,在M个处理器核上运行操作系统。
其中,在一种可能的实施方式中,操作系统在启动后,操作系统当前运行在一个或多个处理器核上,当操作系统需要进行处理器核的绑定时,操作系统从K个处理器核中选择M个处理器核,操作系统从当前运行的1个或多个处理器核上迁移到选择的M个处理器核上。
在另一种可能的实施方式中,操作系统配置用于操作系统的处理器核的数量M后生成配置文件,配置文件存储于非易失性存储器(例如:机械硬盘、固态硬盘)中,配置完成后,操作系统执行重启操作,在重启的过程中,BIOS读取预先存储的配置文件,根据配置文件中的数量M,从K个处理器核中选择M个处理器核,在启动过程中K个处理器核的状态均为未绑定状态,将选择的M个处理器核与操作系统进行绑定,在选择的M个处理器核上运行操作系统。其中,操作系统在启动状态时也可以看成一个进程。
需要说明的是,除了操作系统,进程空间中除数据处理进程的其他进程都需要与选择的N个处理器核进行绑定,避免其他进程抢占工作线程的CPU时间片。
举例说明,在linux操作系统中,操作系统使用int sched_setaffinity(pid_tpid,unsigned int cpusetsize,cpu_set_t*mask)的系统调用可以将某个进程或线程绑定到一个或多个特定的处理器核上。该函数中第1个参数pid_t pid表示需要设置或获取绑定信息的线程id或进程id,如果为第一个参数为0,表示对当前调用的线程进行设置;第2个参数cpusetsize一般设置为sizeof(cpu_set_t),用于表示第3个参数指向的内存结构对象的大小;第3个参数mask指向类型为cpu_set_t对象的指针,用以设置或获取指定线程或进程绑定的处理器核列表。
举例说明,在linux操作系统中,使用taskset命令可以将某个进程绑定到一个或多个特定的CPU核上。命令格式如“taskset-pc 3 21184”,“21184”表示进程id或进程ID,“3”表示处理器核的序号,该条命令表示为id为21184的进程独占运行在第4个处理器核上(首个处理器核的序号为0)。
举例说明,在Docker容器架构的数据处理服务器中,使用“--cpuset-cpus=process id”命令可以将某个进程绑定到一个或多个特定的处理器核上。“cpuset”表示绑定的处理器核,如0-3或以逗号分割如0,3,4(0是首个处理器核的序号);process id表示进程的id。
举例说明,在linux操作系统中,init进程是所有进程的祖先,可设置init进程的affinity来实现设置所有进程的affinity的目地,然后把指定进程绑定到目处理器核上。例如:在/etc/rc.sysinit中增加“/bin/bind 1 1”,可以绑定init进程至处理器核0。
S605、从K个处理器核中选择N个处理器核,将数据处理进程的管理线程与N个处理器核进行绑定。
具体地,操作系统创建数据处理进程的管理线程,从K个处理器核中选择未绑定的N个处理器核,将选择的N个处理器核与管理线程进行绑定。线程和处理器核的绑定可参照S604的例子,此处不再赘述。
S606、为数据处理进程创建L个工作线程。
具体地,操作系统根据预先配置的数量L为数据处理进程创建L个工作线程。
S607、从K个处理器核中选择未绑定的L个处理器核,将数据处理进程的L个工作线程与L个处理器核进行绑定。
具体的,操作系统从K个处理器核中选择未绑定的L个处理器核,将数据处理进程的L个工作线程与L个处理器核进行绑定,每个工作线程唯一绑定一个处理器核。工作线程与处理器核的绑定可操作S604的描述,此处不再赘述。
S608、操作系统将N个处理器核与中断请求进行关联后生成中断映射信息。
具体的,操作系统获取系统上的中断号,不同的中断请求对应不同的中断号,操作系统将获取到的中断号与N个处理器核进行绑定,生成中断映射信息。中断请求与N个处理器核进行绑定后,后续操作系统接收到的中断请求全部由N个处理器核处理,工作线程不处理任何中断请求,避免工作线程在执行数据处理任务时被打断,减少处理时延。
举例说明,在linux操作系统中操作系统执行cat/proc/interrupts的命令,查看中断请求的中断号。操作系统通过修改/proc/irq/{irq_number}/smp_affinity配置文件,设置中断请求和处理器核的绑定关系。
例如:echo 3>/proc/irq/20/smp_affinity表示分配序号为3的处理器核给中断号为20的中断请求。
S609、接收中断请求。
S610、根据中断映射信息查询与中断请求关联的N个处理器核。
S611、通知N个处理器核处理中断请求。
具体的,操作系统接收到中断请求后,根据预设的中断映射信息查询中断请求关联的N个处理器核,操作系统通知N个处理器核处理该中断请求,通过特定的处理器核来处理中断请求,工作线程绑定的处理器核不需要进行任何中断处理,避免数据处理任务的中断,减少处理时延。
S612、根据预设的调度类型配置信息将L个工作线程的调度类型设置为实时调度类型。
举例说明:在linux操作系统中,使用pthread_attr_setschedpolicy的系统调用设置线程的调度类型,操作系统可以将L个工作线程均设置为sched_fifo先到先服务的实时调度类型。一旦某个工作线程占用某个处理器核则一直运行数据处理任务,直到有更高优先级的任务到达或自己放弃。
S613、根据预设的优先级配置信息将L个工作线程的优先级设置为最高优先级。
具体的,操作系统根据预设的优先级配置信息将L个工作线程的优先级设置为最高优先级,避免工作线程运行比数据处理任务更高优先级的任务,减少数据处理任务的时延。
举例说明,在linux系统中,操作系统使用pthread_attr_setschedparam系统调用设置工作线程的优先级。
可选的,管理线程接收到新的执行代码后,将新的执行代码写入无锁队列,并通过无锁方式通知L个工作线程,工作线程在执行每个操作处理前后每个操作完成后,检测无锁队列的通知状态,发现需要重新加载新的执行代码后,工作线程加载新的执行代码运行数据处理任务。
其中,操作系统主要是通过CAS或FAA等原子操作和Retry-Loop等技术实现无锁队列,或者共享变来实现管理线程和工作线程之间的消息传递。
所述管理线程接收新的执行代码或业务数据;
所述管理线程将所述新的执行代码或业务数据放入无锁队列;
所述L个工作线程中任意一个工作线程为空闲状态时,空闲状态的工作线程从所述无锁队列中取出一个执行代码或业务数据进行数据处理。
可选的,还包括:
操作系统根据预设的内存映射信息为所述L个工作线程中每个工作线程分配一个私有内存空间。
例如,在linux操作系统中,操作系统使用TLS(Thread Local Storage,线程本地存储)来实现将内存空间与一个正在执行的指定线程关联起来。
可选的,数据处理服务器中部署虚拟机的情况下,K个处理器核分配给某个虚拟机,虚拟机包括K个虚拟的处理器核,K个处理器核与K个虚拟的处理器核为一一映射关系,操作系统安装与虚拟机中。通过虚拟机的部署方案,能提高资源的利用率。
可选的,还包括:
所述操作系统接收工作线程发送的内存访问请求;其中,所述内存访问请求携带内存地址,所述工作线程为所述L个工作线程中的任意一个;
所述操作系统判断所述内存地址是否位于所述工作线程关联的私有内存空间;
若为是,所述操作系统将所述内存访问请求发送给所述关联的私有内存空间进行处理;
若为否,所述操作系统将所述内存访问请发送给共享内存空间进行处理。
可选的,所述创建数据处理进程之前,还包括:
操作系统配置所述内存映射信息;其中,所述内存映射信息表示所述数据处理进程创建的所有工作线程各自分配一个私有内存空间。
上述实施例,通过设置无共享架构,每个工作线程具有一个私有内存空间,避免多个工作线程在存放私有数据时抢占内存空间,减少工作线程执行数据处理任务的时延。
在图2所描述的方法中,通过处理器核的绑定、内存绑定、中断绑定以及工作线程优先级和调度类型的设置,使工作线程能使用专有的硬件资源来执行数据处理任务,减少处理时延。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,相应地,下面提供了本发明实施例的装置。
请参见图7,图7是本发明实施例提供的一种配置装置的结构示意图,该配置装置可以包括配置模块701和处理模块702,其中,配置装置7可以通过专用集成电路(英文:Application-Specific Integrated Circuit,缩写:ASIC)实现,或可编程逻辑器件(英文:Programmable Logic Device,缩写:PLD)实现。上述PLD可以是复杂可编程逻辑器件(英文:Complex Programmable Logic Device,缩写:CPLD),FPGA,通用阵列逻辑(英文:GenericArray Logic,缩写:GAL)或其任意组合。该配置装置7用于实现图5所示的配置方法。通过软件实现图5所示的配置方法时,配置装置7及其各个模块也可以为软件模块。各个模块的详细描述如下。
配置模块701,用于配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;其中,N小于K且N为大于0的整数,L小于K且L为大于0的整数。
处理模块702,用于为数据处理进程创建管理线程,以及从所述K个处理器核中选择N个处理器核,将所述数据处理进程的管理线程与所述N个处理器核进行绑定;为所述数据处理进程创建L个工作线程,以及从所述K个处理器核中选择未绑定的L个处理器核,将所述数据处理进程的L个工作线程与所述L个处理器核进行一对一的绑定。
可选的,配置模块701还用于配置用于操作系统的处理器核的数量为M;其中,M小于K且M为大于0的整数;
处理模块702还用于从所述K个处理器核中选择M个处理器核,在所述M个处理器核上运行所述操作系统。
可选的,配置模块701还用于将所述N个处理器核与中断请求进行关联后生成中断映射信息;
处理模块702还用于接收中断请求;根据所述中断映射信息查询与所述中断请求关联的所述N个处理器核;通知所述N个处理器核处理所述中断请求。
可选的,所述操作系统运行在虚拟机中,所述虚拟机包括K个虚拟的处理器核,所述K个虚拟的处理器核与所述K个处理器核为一一映射关系。
可选的,处理模块702还用于根据预设的调度类型配置信息将所述L个工作线程调度类型设置为实时调度类型。
可选的,处理模块702还用于根据预设的优先级配置信息将所述L个工作线程的优先级设置为最高优先级。
上述实施例,配置模块通过处理器核的绑定、内存绑定、中断绑定以及工作线程优先级和调度类型的设置,使工作线程能使用专有的硬件资源来执行数据处理任务,减少处理时延。
需要说明的是,在本发明实施例中,各个模块的具体实现还可以对应参照图5和图6所示的方法实施例的相应描述。
参见图8,为本发明实施例提供的一种数据处理服务器的结构示意图,在本发明实施例中,数据处理服务器8包括处理器801、存储器802和通信接口803。通信接口803用于与外部设备进行数据或指令的交互。数据处理服务器8中的处理器801的数量可以是一个或多个,处理器801包括K个处理器核。本发明的一些实施例中,处理器801、存储器802和通信接口803可通过总线系统或其他方式连接,处理器801、存储器802和通信接口803之间可通过有线方式连接,也可以通过无线传输等其他手段实现通信。数据处理服务器8可以用于执行图5所示的方法。关于本实施例涉及的术语的含义以及举例,可以参考图5对应的实施例。此处不再赘述。
其中,存储器802中存储程序代码。处理器801中的K个处理器核用于调用存储器802中存储的程序代码,用于执行以下操作:
配置用于操作系统的处理器核的数量为M;其中,M小于K且M为大于0的整数;
从所述K个处理器核中选择M个未绑定的处理器核;
所述M个处理器核调用所述存储器中的代码,用于执行以下操作:
运行所述操作系统。
可选的,所述M个处理器核还用于执行:
配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;其中,N小于K且N为大于0的整数,L小于K且L为大于0的整数;
所述M个处理器核还用于执行:
为数据处理进程创建管理线程,以及从所述K个处理器核中选择N个未绑定的处理器核,将所述管理线程与所述N个处理器核进行绑定;
创建L个工作线程,以及从所述K个处理器核中选择未绑定的L个处理器核,将所述L个工作线程与所述L个处理器核进行一对一的绑定;
所述N个处理器核调用所述存储器中的代码,用于执行以下操作:
运行所述管理线程;
所述L个处理器核调用所述存储器中的代码,用于执行以下操作:
运行各自绑定的一个工作线程。
可选的,所述M个处理器核还用于执行:
将所述N个处理器核与中断请求进行关联后生成中断映射信息;
所述N个处理器核还用于执行:
接收待处理的中断请求;
根据所述中断映射信息处理所述待处理的中断请求。
可选的,所述操作系统运行在虚拟机中,所述虚拟机包括K个虚拟的处理器核,所述K个虚拟的处理器核与所述K个处理器核为一一映射关系。
可选的,所述M个处理器核还用于执行:
根据预设的调度类型配置信息将所述L个工作线程调度类型设置为实时调度类型。
可选的,所述M个处理器核还用于执行:
根据预设的优先级配置信息将所述L个工作线程的优先级设置为最高优先级。
综上所述,通过实施本发明实施例,数据处理进程的管理线程独占运行在绑定的处理器核上,每个工作线程独立运行在绑定的处理器核上,工作线程不需要和其他线程争抢CPU时间片,减少数据处理的时延。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅揭露了本发明中较佳实施例,不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (18)
1.一种配置方法,其特征在于,所述方法应用于包括K个处理器核的数据处理服务器,包括:
配置用于管理线程的处理器核的数量为N;其中,N小于K且N为大于0的整数;
配置用于工作线程的处理器核的数量为L;其中,L小于K且L为大于0的整数;
为数据处理进程创建管理线程;
从所述K个处理器核中选择N个处理器核,将所述数据处理进程的管理线程与所述N个处理器核进行绑定;
为所述数据处理进程创建L个工作线程;
从所述K个处理器核中选择未绑定的L个处理器核,将所述数据处理进程的L个工作线程与所述L个处理器核进行一对一的绑定。
2.如权利要求1所述的方法,其特征在于,所述配置用于管理线程的处理器核的数量为N之前,还包括:
配置用于操作系统的处理器核的数量为M;其中,M小于K且M为大于0的整数;
从所述K个处理器核中选择M个处理器核,在所述M个处理器核上运行所述操作系统。
3.如权利要求1或2所述的方法,其特征在于,所述操作系统运行在虚拟机中,所述虚拟机包括K个虚拟的处理器核,所述K个虚拟机的处理器核与所述K个处理器核为一一映射关系。
4.如权利要求1-3任意一项所述的方法,还包括:
将所述N个处理器核与中断请求进行关联后生成中断映射信息;
接收中断请求;
根据所述中断映射信息查询与所述中断请求关联的所述N个处理器核;
通知所述N个处理器核处理所述中断请求。
5.如权利要求1所述的方法,其特征在于,还包括:
根据预设的调度类型配置信息将所述L个工作线程的调度类型设置为实时调度类型。
6.如权利要求1-5任意一项所述的方法,其特征在于,还包括:
根据预设的优先级配置信息将所述L个工作线程的优先级设置为最高优先级。
7.一种配置装置,其特征在于,包括:配置模块和处理模块;
所述配置模块,用于配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;其中,N小于K且N为大于0的整数,L小于K且L为大于0的整数;
所述处理模块,用于为数据处理进程创建管理线程,以及从所述K个处理器核中选择N个处理器核,将所述数据处理进程的管理线程与所述N个处理器核进行绑定;为所述数据处理进程创建L个工作线程,以及从所述K个处理器核中选择未绑定的L个处理器核,将所述数据处理进程的L个工作线程与所述L个处理器核进行一对一的绑定。
8.如权利要求7所述的配置装置,其特征在于,所述配置模块还用于配置用于操作系统的处理器核的数量为M;其中,M小于K且M为大于0的整数;
所述处理模块还用于从所述K个处理器核中选择M个处理器核,在所述M个处理器核上运行所述操作系统。
9.如权利要求7或8所述的方法,其特征在于,所述操作系统运行在虚拟机中,所述虚拟机包括K个虚拟的处理器核,所述K个虚拟的处理器核与所述K个处理器核为一一映射关系。
10.如权利要求6-9任意一项所述的装置,所述配置模块还用于将所述N个处理器核与中断请求进行关联后生成中断映射信息;
所述处理模块还用于接收中断请求;根据所述中断映射信息查询与所述中断请求关联的所述N个处理器核;通知所述N个处理器核处理所述中断请求。
11.如权利要求7所述的装置,其特征在于,所述处理模块还用于根据预设的调度类型配置信息将所述L个工作线程调度类型设置为实时调度类型。
12.如权利要求7-11任意一项所述的装置,其特征在于,所述处理模块还用于根据预设的优先级配置信息将所述L个工作线程的优先级设置为最高优先级。
13.一种数据处理服务器,其特征在于,包括:K个处理器核和存储器;其中,所述K个处理器调用所述存储器中的代码,用于执行以下操作:
配置用于操作系统的处理器核的数量为M;其中,M小于K且M为大于0的整数;
从所述K个处理器核中选择M个未绑定的处理器核;
所述M个处理器核调用所述存储器中的代码,用于执行以下操作:
运行所述操作系统。
14.如权利要求13所述的数据处理服务器,其特征在于,所述M个处理器核还用于执行:
配置用于管理线程的处理器核的数量为N,配置用于工作线程的处理器核的数量为L;其中,N小于K且N为大于0的整数,L小于K且L为大于0的整数;
所述M个处理器核还用于执行:
为数据处理进程创建管理线程,以及从所述K个处理器核中选择N个未绑定的处理器核,将所述管理线程与所述N个处理器核进行绑定;
创建L个工作线程,以及从所述K个处理器核中选择未绑定的L个处理器核,将所述L个工作线程与所述L个处理器核进行一对一的绑定;
所述N个处理器核调用所述存储器中的代码,用于执行以下操作:
运行所述管理线程;
所述L个处理器核调用所述存储器中的代码,用于执行以下操作:
运行各自绑定的一个工作线程。
15.如权利要求13或14所述的数据处理服务器,其特征在于,所述操作系统运行在虚拟机中,所述虚拟机包括K个虚拟的处理器核,所述K个虚拟的处理器核与所述K个处理器核为一一映射关系。
16.如权利要求13-15任意一项所述的数据处理服务器,所述M个处理器核还用于执行:
将所述N个处理器核与中断请求进行关联后生成中断映射信息;
所述N个处理器核还用于执行:
接收待处理的中断请求;
根据所述中断映射信息处理所述待处理的中断请求。
17.如权利要求13所述的数据处理服务器,其特征在于,所述M个处理器核还用于执行:
根据预设的调度类型配置信息将所述L个工作线程调度类型设置为实时调度类型。
18.如权利要求13-17任意一项所述的数据处理服务器,其特征在于,所述M个处理器核还用于执行:
根据预设的优先级配置信息将所述L个工作线程的优先级设置为最高优先级。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010061360.8A CN111274015A (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
CN201610797408.5A CN106371894B (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
PCT/CN2017/092517 WO2018040750A1 (zh) | 2016-08-31 | 2017-07-11 | 一种配置方法、装置和数据处理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610797408.5A CN106371894B (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010061360.8A Division CN111274015A (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106371894A true CN106371894A (zh) | 2017-02-01 |
CN106371894B CN106371894B (zh) | 2020-02-14 |
Family
ID=57899211
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010061360.8A Pending CN111274015A (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
CN201610797408.5A Active CN106371894B (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010061360.8A Pending CN111274015A (zh) | 2016-08-31 | 2016-08-31 | 一种配置方法、装置和数据处理服务器 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN111274015A (zh) |
WO (1) | WO2018040750A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479976A (zh) * | 2017-08-14 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种多程序实例同时运行下cpu资源分配方法及装置 |
WO2018040750A1 (zh) * | 2016-08-31 | 2018-03-08 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
CN107832151A (zh) * | 2017-11-10 | 2018-03-23 | 东软集团股份有限公司 | 一种cpu资源分配方法、装置及设备 |
CN108804211A (zh) * | 2018-04-27 | 2018-11-13 | 西安华为技术有限公司 | 线程调度方法、装置、电子设备及存储介质 |
CN109871275A (zh) * | 2017-12-01 | 2019-06-11 | 晨星半导体股份有限公司 | 多处理器系统及其处理器管理方法 |
CN110362402A (zh) * | 2019-06-25 | 2019-10-22 | 苏州浪潮智能科技有限公司 | 一种负载均衡方法、装置、设备及可读存储介质 |
CN110442423A (zh) * | 2019-07-09 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种利用控制组实现虚拟机预留cpu的方法和设备 |
CN112039963A (zh) * | 2020-08-21 | 2020-12-04 | 广州虎牙科技有限公司 | 一种处理器的绑定方法、装置、计算机设备和存储介质 |
CN109144681B (zh) * | 2017-06-27 | 2021-01-22 | 大唐移动通信设备有限公司 | 一种控制方法及装置 |
CN113301087A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN116431365A (zh) * | 2023-06-07 | 2023-07-14 | 北京集度科技有限公司 | 基于车载服务导向架构的监控系统、方法、车辆 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825528B (zh) * | 2019-11-11 | 2022-02-01 | 聚好看科技股份有限公司 | 资源管理方法、装置及设备 |
CN111831390B (zh) * | 2020-01-08 | 2024-04-16 | 北京嘀嘀无限科技发展有限公司 | 服务器的资源管理方法、装置及服务器 |
CN114296865B (zh) * | 2021-12-15 | 2024-03-26 | 中汽创智科技有限公司 | 一种虚拟机线程的调度方法、装置、电子设备及存储介质 |
CN115695334B (zh) * | 2022-10-11 | 2023-06-02 | 广州市玄武无线科技股份有限公司 | 一种多服务节点的线程分配控制方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634953A (zh) * | 2008-07-22 | 2010-01-27 | 国际商业机器公司 | 搜索空间计算方法和装置及自适应线程调度方法和系统 |
US20120117075A1 (en) * | 2010-11-04 | 2012-05-10 | Electron Database Corporation | Systems and methods for grouped request execution |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN103365718A (zh) * | 2013-06-28 | 2013-10-23 | 贵阳朗玛信息技术股份有限公司 | 一种线程调度方法、线程调度装置及多核处理器系统 |
CN103617071A (zh) * | 2013-12-02 | 2014-03-05 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN103838552A (zh) * | 2014-03-18 | 2014-06-04 | 北京邮电大学 | 4g宽带通信系统多核并行流水线信号的处理系统和方法 |
CN104050036A (zh) * | 2014-05-29 | 2014-09-17 | 汉柏科技有限公司 | 多核处理器网络设备的控制系统及方法 |
CN105700949A (zh) * | 2014-11-24 | 2016-06-22 | 中兴通讯股份有限公司 | 一种多核处理器下的数据处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103513932B (zh) * | 2012-06-28 | 2016-04-13 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法及装置 |
US9152467B2 (en) * | 2013-01-18 | 2015-10-06 | Nec Laboratories America, Inc. | Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors |
CN104750543B (zh) * | 2013-12-26 | 2018-06-15 | 杭州华为数字技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
CN111274015A (zh) * | 2016-08-31 | 2020-06-12 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
-
2016
- 2016-08-31 CN CN202010061360.8A patent/CN111274015A/zh active Pending
- 2016-08-31 CN CN201610797408.5A patent/CN106371894B/zh active Active
-
2017
- 2017-07-11 WO PCT/CN2017/092517 patent/WO2018040750A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634953A (zh) * | 2008-07-22 | 2010-01-27 | 国际商业机器公司 | 搜索空间计算方法和装置及自适应线程调度方法和系统 |
US20120117075A1 (en) * | 2010-11-04 | 2012-05-10 | Electron Database Corporation | Systems and methods for grouped request execution |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN103365718A (zh) * | 2013-06-28 | 2013-10-23 | 贵阳朗玛信息技术股份有限公司 | 一种线程调度方法、线程调度装置及多核处理器系统 |
CN103617071A (zh) * | 2013-12-02 | 2014-03-05 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN103838552A (zh) * | 2014-03-18 | 2014-06-04 | 北京邮电大学 | 4g宽带通信系统多核并行流水线信号的处理系统和方法 |
CN104050036A (zh) * | 2014-05-29 | 2014-09-17 | 汉柏科技有限公司 | 多核处理器网络设备的控制系统及方法 |
CN105700949A (zh) * | 2014-11-24 | 2016-06-22 | 中兴通讯股份有限公司 | 一种多核处理器下的数据处理方法及装置 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018040750A1 (zh) * | 2016-08-31 | 2018-03-08 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
CN109144681B (zh) * | 2017-06-27 | 2021-01-22 | 大唐移动通信设备有限公司 | 一种控制方法及装置 |
CN107479976A (zh) * | 2017-08-14 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种多程序实例同时运行下cpu资源分配方法及装置 |
CN107832151A (zh) * | 2017-11-10 | 2018-03-23 | 东软集团股份有限公司 | 一种cpu资源分配方法、装置及设备 |
CN107832151B (zh) * | 2017-11-10 | 2020-09-25 | 东软集团股份有限公司 | 一种cpu资源分配方法、装置及设备 |
CN109871275A (zh) * | 2017-12-01 | 2019-06-11 | 晨星半导体股份有限公司 | 多处理器系统及其处理器管理方法 |
CN108804211A (zh) * | 2018-04-27 | 2018-11-13 | 西安华为技术有限公司 | 线程调度方法、装置、电子设备及存储介质 |
CN110362402A (zh) * | 2019-06-25 | 2019-10-22 | 苏州浪潮智能科技有限公司 | 一种负载均衡方法、装置、设备及可读存储介质 |
CN110362402B (zh) * | 2019-06-25 | 2021-08-10 | 苏州浪潮智能科技有限公司 | 一种负载均衡方法、装置、设备及可读存储介质 |
CN110442423B (zh) * | 2019-07-09 | 2022-04-26 | 苏州浪潮智能科技有限公司 | 一种利用控制组实现虚拟机预留cpu的方法和设备 |
CN110442423A (zh) * | 2019-07-09 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种利用控制组实现虚拟机预留cpu的方法和设备 |
CN113301087A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN113301087B (zh) * | 2020-07-21 | 2024-04-02 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置、计算设备和介质 |
CN112039963A (zh) * | 2020-08-21 | 2020-12-04 | 广州虎牙科技有限公司 | 一种处理器的绑定方法、装置、计算机设备和存储介质 |
CN112039963B (zh) * | 2020-08-21 | 2023-04-07 | 广州虎牙科技有限公司 | 一种处理器的绑定方法、装置、计算机设备和存储介质 |
CN116431365A (zh) * | 2023-06-07 | 2023-07-14 | 北京集度科技有限公司 | 基于车载服务导向架构的监控系统、方法、车辆 |
Also Published As
Publication number | Publication date |
---|---|
CN111274015A (zh) | 2020-06-12 |
WO2018040750A1 (zh) | 2018-03-08 |
CN106371894B (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106371894A (zh) | 一种配置方法、装置和数据处理服务器 | |
JP6381734B2 (ja) | グラフィックス計算プロセススケジューリング | |
US7299320B2 (en) | Message based inter-process for high volume data | |
US7650601B2 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
CN104714846B (zh) | 资源处理方法、操作系统及设备 | |
US8505014B2 (en) | Process attachable virtual machines | |
US8276155B2 (en) | Method, system, and storage medium for managing computer processing functions | |
WO2019139693A1 (en) | Distributed partitioned map reduce using a data fabric | |
CN108804211A (zh) | 线程调度方法、装置、电子设备及存储介质 | |
JP6086868B2 (ja) | ユーザモードからのグラフィックス処理ディスパッチ | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
CN105579961A (zh) | 数据处理系统 | |
CN103262002A (zh) | 优化系统调用请求通信 | |
CN110120940A (zh) | 一种面向Docker容器的文件系统资源隔离方法 | |
CN103608776A (zh) | 异构型处理设备上的动态工作划分 | |
US7770177B2 (en) | System for memory reclamation based on thread entry and release request times | |
CN109240825A (zh) | 弹性任务调度方法、装置、设备及计算机可读存储介质 | |
CN103262035B (zh) | 组合式cpu/gpu体系结构系统中的装置发现和拓扑报告 | |
CN105975327A (zh) | 在虚拟环境下减小虚拟机的抢占的方法和计算机系统 | |
US20090300638A1 (en) | Memory allocators corresponding to processor resources | |
US8095659B2 (en) | Service interface | |
CN109271236A (zh) | 一种业务调度的方法、装置、计算机存储介质及终端 | |
CN106445631A (zh) | 一种布署虚拟机的方法、系统以及物理服务器 | |
JPH10111858A (ja) | グラフィクス・パイプラインを並列化する方法及び装置 | |
WO2009148739A2 (en) | Regaining control of a processing resource that executes an external execution context |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220209 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |