CN106201691A - 一种网络io密集型任务的调度方法及装置 - Google Patents
一种网络io密集型任务的调度方法及装置 Download PDFInfo
- Publication number
- CN106201691A CN106201691A CN201610543356.9A CN201610543356A CN106201691A CN 106201691 A CN106201691 A CN 106201691A CN 201610543356 A CN201610543356 A CN 201610543356A CN 106201691 A CN106201691 A CN 106201691A
- Authority
- CN
- China
- Prior art keywords
- network
- task
- node
- card equipment
- cpu
- 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.)
- Pending
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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种网络IO密集型任务的调度方法及装置,其中,该方法包括:查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。其中,网络IO密集型任务为IO使用率高于预设值且需通过网卡设备实现网络连接的任务,因此,将这类任务分配至与网卡设备连接的节点包含的CPU上,避免了其被分配至不与网卡设备连接的节点上,从而还需要通过与网卡设备连接的节点实现任务的处理,也就避免了任务在不同节点之间的迁移,从而降低了系统性能损失,减少了系统的整体运行压力。
Description
技术领域
本发明涉及操作系统性能优化技术领域,更具体地说,涉及一种网络IO密集型任务的调度方法及装置。
背景技术
NUMA(Non Uniform Memory Access Architecture,非统一内存访问架构)架构是目前中大型操作系统中所广泛采用的一种解决方案,主要是针对多处理器的操作系统。
在NUMA架构中包含有多个节点,每个节点包含一定数量的CPU;而对于操作系统上层应用而言,IO(输入输出)任务运行在哪一个节点上要服从系统的统一调度策略。但是发明人发现,现有技术中上述的统一调度策略往往需要在不同节点之间进行任务的迁移,如现有机器1和机器2,机器1中包含有3个结点,但是仅有一个节点与网卡设备连接;当机器1的IO任务需要与机器2实现网络通信时(即该IO任务为网络IO任务),处理该IO任务的节点需要通过网卡设备实现与机器2的网络通信,因此,只有与网卡设备连接的节点可以直接通过网卡设备实现与机器2的网络通信,而其他两个节点则需要将IO任务转移至与网卡设备连接的节点,以通过该节点连接的网卡设备实现与机器2的网络通信。而在不同节点之间进行任务的迁移会造成系统性能损失,以及增加系统的整体运行压力。
综上所述,现有技术中实现对于网络IO任务的调度的技术方案存在系统性能损失较严重,且系统整体运行压力较大的问题。
发明内容
本发明的目的是提供一种网络IO密集型任务的调度方法及装置,以解决现有技术中实现对于网络IO任务的调度的技术方案存在的系统性能损失较严重,且系统整体运行压力较大的问题。
为了实现上述目的,本发明提供如下技术方案:
一种网络IO密集型任务的调度方法,包括:
查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;
将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。
优选的,还包括:
将与所述网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上。
优选的,将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上,包括:
将与网卡设备连接的节点包含的CPU设置为与所述网络IO密集型任务亲和的CPU。
优选的,确定与网卡设备连接的节点,包括:
查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,确定出所述网卡设备以及与所述网卡设备连接的节点。
优选的,查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,包括:
利用lscpi命令查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备。
一种网络IO密集型任务的调度装置,包括:
任务筛选模块,用于查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;
任务分配模块,用于将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。
优选的,还包括:
数据迁移模块,用于将与所述网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上。
优选的,任务分配模块包括:
任务分配单元,用于将与网卡设备连接的节点包含的CPU设置为与所述网络IO密集型任务亲和的CPU。
优选的,还包括:
节点确定模块,用于查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,确定出所述网卡设备以及与所述网卡设备连接的节点。
优选的,节点确定模块包括:
节点确定单元,用于利用lscpi命令查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备。
本发明提供的一种网络IO密集型任务的调度方法及装置,其中,该方法包括:查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。通过本申请公开的上述技术方案,首先确定出当前操作系统中存在的网络IO密集型任务,进而将该任务分配至与网卡设备连接的节点包含的CPU上,由该CPU实现对该任务的处理。其中,网络IO密集型任务为IO使用率高于预设值且需通过网卡设备实现网络连接的任务,因此,将这类任务分配至与网卡设备连接的节点包含的CPU上,避免了其被分配至不与网卡设备连接的节点上,从而还需要通过与网卡设备连接的节点实现任务的处理,也就避免了任务在不同节点之间的迁移,从而降低了系统性能损失,减少了系统的整体运行压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种网络IO密集型任务的调度方法的流程图;
图2为本发明实施例提供的一种网络IO密集型任务的调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种网络IO密集型任务的调度方法的流程图,可以包括以下步骤:
S11:查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务。
需要说明的是,本发明实施例中涉及的操作系统可以为Linux操作系统,预设值可以根据实际需要进行确定,对当前操作系统中的所有任务的IO使用情况进行统计,其中,IO使用率高于预设值的任务为IO使用率较高的任务,即为IO密集型任务,而需利用网络连接实现的IO密集型任务即为网络IO密集型任务。
具体来说,可以通过操作系统提供的IO监测命令实现所有任务IO使用情况的监测,进而确定出IO密集型任务,而这些任务主要包括通过对磁盘进行操作实现的任务及需利用网络连接实现的任务,其中,需利用网络连接实现的任务即需要与其他设备之间进行网络通信的任务;然后利用lsof系统工具对所有IO密集型任务进行分类和筛选,查找出其中需利用网络连接实现的任务,即为网络IO密集型任务,并将这些任务进行记录,以在该任务出现时,均对其进行步骤S12的处理。
S12:将网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。
将上述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上,具体可以是平均分配至该结点的各个CPU上,也可以根据实际需要确定其他分配原则,从而由于网卡设备连接的节点包含的CPU实现对网络IO密集型任务的处理。
通过本申请公开的上述技术方案,首先确定出当前操作系统中存在的网络IO密集型任务,进而将该任务分配至与网卡设备连接的节点包含的CPU上,由该CPU实现对该任务的处理。其中,网络IO密集型任务为IO使用率高于预设值且需通过网卡设备实现网络连接的任务,因此,将这类任务分配至与网卡设备连接的节点包含的CPU上,避免了其被分配至不与网卡设备连接的节点上,从而还需要通过与网卡设备连接的节点实现任务的处理,也就避免了任务在不同节点之间的迁移,从而降低了系统性能损失,减少了系统的整体运行压力。
本发明实施例提供的一种网络IO密集型任务的调度方法,还可以包括:
将与网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上。
需要说明的是,将网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上,由此,在处理网络IO密集型任务并且需要获取对应数据时可以直接利用迁移过来的数据,无需再由其他节点获取对应数据,由此,进一步减少了系统性能损耗。
另外,将网络IO密集型任务分配至与网卡设备连接的节点并将与网络IO密集型任务对应的数据迁移至与网卡设备连接的节点后,还可以对网络IO密集型任务及其对应的数据,即其使用的内存进行绑定,从而需要使用对应数据时在物理上缩短了数据传输距离,减少了网络IO密集型任务和对应数据在不同节点之间的迁移,减少了系统性能损耗,提升了系统性能。
本发明实施例提供的一种网络IO密集型任务的调度方法,将网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上,可以包括:
将与网卡设备连接的节点包含的CPU设置为与网络IO密集型任务亲和的CPU。
将与网卡设备连接的节点包含的CPU设置为与网络IO密集型任务亲和的CPU后,网络IO密集型任务会自动被分配至与其亲和的CPU上实现;简单地说,CPU的亲和性就是任务要在某个给定的CPU上尽量长时间地运行而不被迁移到其他CPU上的倾向性。因此,利用CPU的亲和性,使用调度器使网络IO密集型任务尽可能的在同一个节点上运行,由此,有效减少了跨节点的数据传输。具体来说,可以利用taskset命令设定这些任务的CPU亲和性,以使这些任务能够运行在网卡设备所连接的节点的CPU上。
本发明实施例提供的一种网络IO密集型任务的调度方法,确定与网卡设备连接的节点,可以包括:
查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,确定出网卡设备以及与网卡设备连接的节点。
需要说明的是,监测当前操作系统对应的物理设备分布情况,进而确定出PCI总线及连接至PCI总线的硬件设备,确定出硬件设备中包含的网卡设备及与网卡设备连接的节点,具体可以是确定出节点在操作系统中的编号,以方便对节点进行定位。
具体来说,查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,可以包括:
利用lscpi命令查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备。
当然,还可以根据实际需要及当前操作系统的不同进行其他设置,均在本发明的保护范围之内。
与上述实施例相对应,本发明实施例还提供了一种网络IO密集型任务的调度装置,如图2所示,包括:
任务筛选模块11,用于查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;
任务分配模块12,用于将网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。
本发明实施例提供的一种网络IO密集型任务的调度装置,还可以包括:
数据迁移模块,用于将与网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上。
本发明实施例提供的一种网络IO密集型任务的调度装置,任务分配模块可以包括:
任务分配单元,用于将与网卡设备连接的节点包含的CPU设置为与网络IO密集型任务亲和的CPU。
本发明实施例提供的一种网络IO密集型任务的调度装置,还可以包括:
节点确定模块,用于查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,确定出网卡设备以及与网卡设备连接的节点。
本发明实施例提供的一种网络IO密集型任务的调度装置,节点确定模块可以包括:
节点确定单元,用于利用lscpi命令查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备。
本发明实施例提供的一种网络IO密集型任务的调度装置中相关部分的说明请参见本发明实施例提供的一种网络IO密集型任务的调度方法中对应部分的详细说明,在此不再赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种网络IO密集型任务的调度方法,其特征在于,包括:
查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;
将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。
2.根据权利要求1所述的方法,其特征在于,还包括:
将与所述网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上。
3.根据权利要求2所述的方法,其特征在于,将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上,包括:
将与网卡设备连接的节点包含的CPU设置为与所述网络IO密集型任务亲和的CPU。
4.根据权利要求2所述的方法,其特征在于,确定与网卡设备连接的节点,包括:
查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,确定出所述网卡设备以及与所述网卡设备连接的节点。
5.根据权利要求4所述的方法,其特征在于,查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,包括:
利用lscpi命令查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备。
6.一种网络IO密集型任务的调度装置,其特征在于,包括:
任务筛选模块,用于查找当前操作系统中IO使用率高于预设值的任务,并从中筛选出需利用网络连接实现的网络IO密集型任务;
任务分配模块,用于将所述网络IO密集型任务分配至与网卡设备连接的节点包含的CPU上。
7.根据权利要求6所述的装置,其特征在于,还包括:
数据迁移模块,用于将与所述网络IO密集型任务对应的数据迁移至与网卡设备连接的节点包含的内存上。
8.根据权利要求7所述的装置,其特征在于,任务分配模块包括:
任务分配单元,用于将与网卡设备连接的节点包含的CPU设置为与所述网络IO密集型任务亲和的CPU。
9.根据权利要求7所述的装置,其特征在于,还包括:
节点确定模块,用于查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备,确定出所述网卡设备以及与所述网卡设备连接的节点。
10.根据权利要求9所述的装置,其特征在于,节点确定模块包括:
节点确定单元,用于利用lscpi命令查看当前操作系统中的PCI总线以及连接至该PCI总线的硬件设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543356.9A CN106201691A (zh) | 2016-07-11 | 2016-07-11 | 一种网络io密集型任务的调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543356.9A CN106201691A (zh) | 2016-07-11 | 2016-07-11 | 一种网络io密集型任务的调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106201691A true CN106201691A (zh) | 2016-12-07 |
Family
ID=57477697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610543356.9A Pending CN106201691A (zh) | 2016-07-11 | 2016-07-11 | 一种网络io密集型任务的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201691A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038061A (zh) * | 2017-04-14 | 2017-08-11 | 上海交通大学 | 一种基于numa和硬件辅助技术的高效网络io处理方法 |
US20170235607A1 (en) * | 2016-02-12 | 2017-08-17 | Samsung Electronics Co., Ltd. | Method for operating semiconductor device and semiconductor system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604260A (zh) * | 2009-07-08 | 2009-12-16 | 深圳先进技术研究院 | 超级计算机系统及其构建和任务调度方法 |
CN102945198A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种表征高性能计算应用特征的方法 |
CN103019856A (zh) * | 2012-11-23 | 2013-04-03 | 上海寰创通信科技股份有限公司 | 一种多核处理器的非对称调度方法 |
CN103279392A (zh) * | 2013-06-14 | 2013-09-04 | 浙江大学 | 一种云计算环境下虚拟机上运行的负载分类方法 |
CN103365729A (zh) * | 2013-07-19 | 2013-10-23 | 哈尔滨工业大学深圳研究生院 | 一种基于任务类型的动态MapReduce 调度方法及系统 |
CN103942097A (zh) * | 2014-04-10 | 2014-07-23 | 华为技术有限公司 | 一种数据处理方法、装置及具备相应装置的计算机 |
CN104699520A (zh) * | 2013-12-04 | 2015-06-10 | 北京天地超云科技有限公司 | 一种基于虚拟机迁移调度的节能方法 |
-
2016
- 2016-07-11 CN CN201610543356.9A patent/CN106201691A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604260A (zh) * | 2009-07-08 | 2009-12-16 | 深圳先进技术研究院 | 超级计算机系统及其构建和任务调度方法 |
CN102945198A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种表征高性能计算应用特征的方法 |
CN103019856A (zh) * | 2012-11-23 | 2013-04-03 | 上海寰创通信科技股份有限公司 | 一种多核处理器的非对称调度方法 |
CN103279392A (zh) * | 2013-06-14 | 2013-09-04 | 浙江大学 | 一种云计算环境下虚拟机上运行的负载分类方法 |
CN103365729A (zh) * | 2013-07-19 | 2013-10-23 | 哈尔滨工业大学深圳研究生院 | 一种基于任务类型的动态MapReduce 调度方法及系统 |
CN104699520A (zh) * | 2013-12-04 | 2015-06-10 | 北京天地超云科技有限公司 | 一种基于虚拟机迁移调度的节能方法 |
CN103942097A (zh) * | 2014-04-10 | 2014-07-23 | 华为技术有限公司 | 一种数据处理方法、装置及具备相应装置的计算机 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170235607A1 (en) * | 2016-02-12 | 2017-08-17 | Samsung Electronics Co., Ltd. | Method for operating semiconductor device and semiconductor system |
CN107038061A (zh) * | 2017-04-14 | 2017-08-11 | 上海交通大学 | 一种基于numa和硬件辅助技术的高效网络io处理方法 |
CN107038061B (zh) * | 2017-04-14 | 2019-07-05 | 上海交通大学 | 一种基于numa和硬件辅助技术的高效网络io处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106489251A (zh) | 应用拓扑关系发现的方法、装置和系统 | |
CN103856548B (zh) | 动态资源调度方法和动态资源调度器 | |
CN105808328A (zh) | 任务调度的方法、装置和系统 | |
CN102855218A (zh) | 数据处理系统、方法及装置 | |
CN101779189A (zh) | 并行计算机中的主动电力管理 | |
CN105704188A (zh) | 应用与服务的部署方法和装置 | |
WO2021141875A1 (en) | Automated local scaling of compute instances | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
CN109933315A (zh) | 一种图形化的业务处理系统和方法 | |
CN106909597A (zh) | 一种数据库迁移方法和装置 | |
WO2017000645A1 (zh) | 一种分配宿主机资源的方法和装置 | |
CN108231132B (zh) | 一种nand闪存验证装置和验证系统 | |
CN108683567B (zh) | 一种基于mcs和服务器的交换机端口故障测试方法及系统 | |
CN106201691A (zh) | 一种网络io密集型任务的调度方法及装置 | |
CN108363611A (zh) | 虚拟机的安全管理方法、装置及全方位虚拟化系统 | |
CN116860527A (zh) | 在Kubernetes环境下使用本地存储的容器的迁移方法 | |
CN105824374A (zh) | 一种双子星型服务器架构 | |
CN107219407B (zh) | 一种电感在线检测方法及装置 | |
CN112671567B (zh) | 一种基于服务化接口的5g核心网拓扑发现方法及装置 | |
CN105573204A (zh) | 一种多处理器的数字音频矩阵控制设备及方法 | |
CN105450481B (zh) | 片上网络的布局优化方法及装置 | |
CN105376095A (zh) | 一种访问ip均衡方法及装置 | |
CN113791942B (zh) | 用于自动分发测试任务的方法和装置 | |
CN103034535B (zh) | 用于ie浏览器的进程复用方法和ie浏览器 | |
US8495033B2 (en) | Data processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |
|
RJ01 | Rejection of invention patent application after publication |