CN104899097A - 线程分配数量计算方法以及装置 - Google Patents

线程分配数量计算方法以及装置 Download PDF

Info

Publication number
CN104899097A
CN104899097A CN201510184154.5A CN201510184154A CN104899097A CN 104899097 A CN104899097 A CN 104899097A CN 201510184154 A CN201510184154 A CN 201510184154A CN 104899097 A CN104899097 A CN 104899097A
Authority
CN
China
Prior art keywords
thread
virtual unit
network equipment
unit
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
Application number
CN201510184154.5A
Other languages
English (en)
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.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201510184154.5A priority Critical patent/CN104899097A/zh
Publication of CN104899097A publication Critical patent/CN104899097A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种线程分配数量计算方法以及装置,其中该方法包括:获取所述网络设备为虚拟设备分配的CPU资源配比;根据所述网络设备为虚拟设备分配的CPU资源配比以及所述多核CPU的核数,计算出为所述虚拟设备分配的线程数量;为所述虚拟设备分配与所述线程数量对应数量的线程。本发明实现了为虚拟设备分配合理数量的线程,并进行统一调度。

Description

线程分配数量计算方法以及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种线程分配数量计算方法以及装置。
背景技术
为了保证网络设备的高性能,具有多核CPU的网络设备通常会为每一个核提供一个对应的线程,并进行统一调度,以实现负载均衡。
但是对于虚拟设备而言,由于无法为特定的虚拟设备划定具体的CPU资源,因此难以为虚拟设备分配合理数量的线程,并进行统一调度。
发明内容
针对现有技术的缺陷,本发明提供了一种线程分配数量计算方法以及装置。
本发明提供了一种线程分配数量计算方法,应用于具有多核CPU的网络设备,其中该方法包括:
本发明提供了一种线程分配数量计算方法,应用于具有多核中央处理器CPU的网络设备,所述网络设备上运行有虚拟设备,其中该方法包括:
获取所述网络设备为虚拟设备分配的CPU资源配比;
根据所述网络设备为虚拟设备分配的CPU资源配比以及所述多核CPU的核数,计算出为所述虚拟设备分配的线程数量;
为所述虚拟设备分配与所述线程数量对应数量的线程。
本发明还提供一种线程分配数量计算装置,应用于具有多核中央处理器CPU的网络设备,所述网络设备上运行有虚拟设备,所述装置包括:
获取单元,用于获取所述网络设备为虚拟设备分配的CPU资源配比;
计算单元,用于根据所述网络设备为虚拟设备分配的CPU资源配比以及所述网络设备多核CPU的核数,计算出为所述虚拟设备分配的线程数量;
分配单元,用于为所述虚拟设备分配与所述线程数量对应数量的线程。
本发明提供了一种线程分配数量计算方法以及装置,通过根据获取的为虚拟设备分配的CPU资源配比以及网络设备的CPU的核数,计算出为所述虚拟设备分配的线程数量,进而为虚拟设备分配合理数量的线程。
附图说明
图1是本发明实施例中的组网环境示意图;
图2是本发明实施例中一种线程分配数量计算方法流程示意图;
图3是本发明实施例中一种线程分配数量计算装置的逻辑结构示意图;
图4是本发明实施例中线程分配数量计算装置所在网络设备的硬件架构示意图。
具体实施方式
为使本申请的目的,技术方案及优点更加清楚明白,以下参照附图对本申请方案做进一步的详细说明。
图1为本发明线程分配数量计算方法所应用的组网环境示意图,该组网中包括具有多核CPU的网络设备,该网络设备上运行有多个虚拟设备,例如虚拟设备1以及虚拟设备2,网络设备还具有多个端口(例如Port1、Port2)。
请参考图2,为本发明提供的线程分配数量计算方法的处理流程示意图,该线程分配数量计算方法可应用于具有多核CPU的网络设备,该网络设备上还运行有虚拟设备,其中,该线程分配数量计算方法包括以下步骤:
步骤201,获取所述网络设备为虚拟设备分配的CPU资源配比;
实际应用中,具有多核CPU的网络设备在运行虚拟设备时,可以由管理员根据需要,将网络设备的整体CPU资源划分出一定比例的CPU资源分配给虚拟设备,以保证虚拟设备的正常运行。
在计算为虚拟设备分配的线程数量之前,可以获取管理员为虚拟设备所分配的CPU资源配比,即:为虚拟设备分配的CPU资源占网络设备的整体CPU资源的比例,例如X%。
步骤202,根据所述网络设备为虚拟设备分配的CPU资源配比以及所述网络设备CPU的核数,计算出为所述虚拟设备分配的线程数量;
具体地,可以根据网络设备多核CPU的核数确定出网络设备CPU的每个核的资源配比,该每个核的资源配比可以是网络设备多核CPU的每个核的CPU资源所占网络设备的整体CPU资源的比例。通常情况下,网络设备CPU的每个核的资源配比相同。例如,若多核CPU具有N个核,那么CPU的每个核的资源配比则为1/N。
接着,根据获取的管理员为虚拟设备所分配的CPU资源配比,以及网络设备的各个CPU的资源配比,计算出为虚拟设备分配的CPU资源在多核CPU的每个核的资源占比。即:将为虚拟设备所分配的CPU资源配比X%除以CPU的每个核的资源配比1/N。
本发明实施例中,为了保证为虚拟设备至少分配一个线程,可以将计算出为虚拟设备分配的CPU资源在多核CPU的每个核的资源占比后加1,以得到的计算结果为线程分配数量不小于1。那么计算该线程分配数量的公式为:
最后,将所述计算结果中的整数作为线程数量。
例如,进行线程分配数量计算后得到的计算结果为1.5,可以将整数1作为分配的线程数量。当然,也可以以其他的方法取整数,例如四舍五入等方法,本发明在此不做限制。
步骤203,为所述虚拟设备分配与所述线程数量对应数量的线程。
在计算出为虚拟设备分配的线程数量后,可以根据该线程数量为虚拟设备分配对应数量的线程,并且在分配给虚拟设备的线程中添加该虚拟设备的标识,以在后续接收到报文后,可以根据虚拟设备的标识来调度对应的进程处理接收的报文。
其中,该虚拟设备的标识可以是虚拟设备的设备ID等唯一标识。
在网络设备接收到报文后,首先获取报文的入接口信息,即:网络设备上接收该报文的接口的接口信息以及报文中携带的Vlan信息。
之后,根据该入接口信息在预设的入接口与虚拟设备对应关系表项中查找与该入接口信息对应的虚拟设备,并将该对应的虚拟设备作为处理该报文的虚拟设备。
确定处理该报文的虚拟设备的CPU使用率是否达到网络设备为该虚拟设备分配的CPU资源配比,若达到,说明该虚拟设备无能力处理该报文,可以将该报文丢弃;若虚拟设备的CPU使用率未达到网络设备为其分配的CPU资源配比,说明该虚拟设备可处理该报文,那么可以从为虚拟设备分配的至少一个线程中确定出一个线程,并调用确定出的一个线程处理该报文。
在一个例子中,网络设备可以根据为线程分配的虚拟设备ID,查找到为该虚拟设备分配的线程,然后从查找到的线程中确定出一个线程,并调用该线程处理该报文。
在优选的实施方式中,本发明还可以为各线程分配一个对应的缓冲区,用于在线程待处理的报文数量较多时,将待处理的报文存放至缓冲区中,并按照队列顺序依次处理报文。
然而,在报文处理数量过多时,线程对应的缓冲区可能因被待处理的报文占满而存在无可用容量的情况。
因此,本发明在确定出处理报文的虚拟设备后,还可以进一步判断为虚拟设备分配的线程分别对应的缓冲区的已用容量是否达到预设阈值。
该预设阈值通常为缓冲区的最大容量值,当然也可以是用户根据需要而设置的任意值。
若判断为虚拟设备分配的所有线程所对应的缓冲区的已用容量均达到预设阈值,则丢弃该报文;否则,从缓冲区的已用容量未到达预设阈值的线程中确定出一个线程,并将接收的报文添加至与确定出的一个线程对应的缓冲区中等待处理。
以下结合图1为例对本发明进行举例说明。
假设,网络设备的多核CPU具有4个核,为虚拟设备1分配的CPU资源配比占网络设备的整体CPU资源的30%;为虚拟设备2分配的CPU资源配比占网络设备的整体CPU资源的10%。
在计算为虚拟设备1分配的线程数量时,首先,根据网络设备CPU的核数(4)确定出多核CPU的每个核的资源配比为1/4,并确定出为虚拟设备1分配的CPU资源配比30%。
接着,根据计算线程分配数量的公式计算为虚拟设备1分配的线程数量,即:为虚拟设备1分配的线程数量
在获得计算结果2.2后,将整数2作为为虚拟设备1分配的线程数量,并为虚拟设备1分配2个线程。
在网络设备接收到报文后,若网络设备上接收该报文的接口为Port1,该报文中携带的Vlan信息为Vlan1,那么该报文的入接口信息即为Port1、Vlan1。
若根据入接口信息Port1、Vlan1确定出处理该报文的虚拟设备是虚拟设备1,可以进一步检查虚拟设备1的CPU使用率是否已达到为该虚拟设备1分配的CPU资源配比,即:网络设备的整体CPU资源的30%。
当虚拟设备1的CPU使用率已达到网络设备的整体CPU资源的30%时,丢弃该报文;否则,调用为虚拟设备1分配的2个线程中的任意一个线程来处理该报文,或者,从为虚拟设备1分配的2个线程中确定出一个缓冲区的已用容量未到达预设阈值的线程来处理该报文。
综上所述,本发明提供的线程分配数量计算方法通过根据获取的为虚拟设备分配的CPU资源配比以及网络设备CPU的核数,计算出为所述虚拟设备分配的线程数量,进而实现为虚拟设备分配合理数量的线程,解决了现有技术中无法为虚拟设备分配合理数量的线程,并进行统一调度的难题。
本发明还提供一种线程分配数量计算装置,图3为该线程分配数量计算装置的结构示意图,该装置可以应用在具有多核CPU的网络设备,所述网络设备上运行有虚拟设备,该线程分配数量计算装置可以包括获取单元301、计算单元302以及分配单元303,其中:
获取单元301,用于获取所述网络设备为虚拟设备分配的CPU资源配比;
计算单元302,用于根据所述网络设备为虚拟设备分配的CPU资源配比以及所述网络设备多核CPU的核数,计算出为所述虚拟设备分配的线程数量;
分配单元303,用于为所述虚拟设备分配与所述线程数量对应数量的线程。
进一步地,上述计算单元302具体可以用于根据以下公式计算为所述虚拟设备分配的线程数量:所述虚拟设备分配的线程数量
其中,X%为所述网络设备为虚拟设备分配的CPU资源配比,N为所述多核CPU的核数。
进一步地,上述装置还可以包括确定单元304以及调用单元305,其中,确定单元304可以用于接收到报文后,确定出处理所述报文的虚拟设备;若处理所述报文的虚拟设备的CPU使用率未达到所述为虚拟设备分配的CPU资源配比,从为所述虚拟设备分配的线程中确定出一个线程;调用单元305可以用于调用所述一个线程处理所述报文。
进一步地,上述装置还可以包括标识单元306,用于在分配给所述虚拟设备的线程中添加所述虚拟设备的标识;所述确定单元304具体用于查找添加有所述虚拟设备的标识的线程;从查找到的线程中确定出一个线程。
进一步地,上述确定单元304具体可以用于确定所述为所述虚拟设备分配的线程分别对应的缓冲区的已用容量是否达到预设阈值;从缓冲区的已用容量未到达预设阈值的线程中确定出一个线程。
另外,本发明应用于具有多核CPU的网络设备的线程分配数量计算装置在具体的处理流程中可以与上述线程分配数量计算方法的处理流程一致,在此不再赘述。
上述装置可以通过软件实现,也可以通过硬件实现,本发明线程分配数量计算装置所在组播路由设备的硬件架构示意图均可参考图4所示,其基本硬件环境包括中央处理器CPU、转发芯片、存储器以及其他硬件,其中存储器件中包括机器可读指令,CPU读取并执行机器可读指令执行图3中各单元的功能。
从以上各种方法和装置的实施方式中可以看出,本发明提供的线程分配数量计算方法以及装置通过根据获取的为虚拟设备分配的CPU资源配比以及网络设备CPU的核数,计算出为所述虚拟设备分配的线程数量,进而实现为虚拟设备分配合理数量的线程,并进行统一调度。可有效避免因为虚拟设备分配较多的线程,而导致的资源浪费,或者因为虚拟设备分配线程数量较少而导致报文丢包的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种线程分配数量计算方法,应用于具有多核中央处理器CPU的网络设备,所述网络设备上运行有虚拟设备,其特征在于,所述方法包括:
获取所述网络设备为虚拟设备分配的CPU资源配比;
根据所述网络设备为虚拟设备分配的CPU资源配比以及所述多核CPU的核数,计算出为所述虚拟设备分配的线程数量;
为所述虚拟设备分配与所述线程数量对应数量的线程。
2.如权利要求1所述的方法,其特征在于,所述计算出为所述虚拟设备分配的线程数量具体包括:
其中,X%为所述网络设备为虚拟设备分配的CPU资源配比,N为所述多核CPU的核数。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收到报文后,确定出处理所述报文的虚拟设备;
若处理所述报文的虚拟设备的CPU使用率未达到所述为虚拟设备分配的CPU资源配比,从为所述虚拟设备分配的线程中确定出一个线程;
调用所述一个线程处理所述报文。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
在分配给所述虚拟设备的线程中添加所述虚拟设备的标识;
所述从为所述虚拟设备分配的线程中确定出一个线程具体包括:
查找添加有所述虚拟设备的标识的线程;
从查找到的线程中确定出一个线程。
5.如权利要求3所述的方法,其特征在于,所述从为所述虚拟设备分配的线程中确定出一个线程具体包括:
确定所述为所述虚拟设备分配的线程分别对应的缓冲区的已用容量是否达到预设阈值;
从缓冲区的已用容量未到达预设阈值的线程中确定出一个线程。
6.一种线程分配数量计算装置,应用于具有多核中央处理器CPU的网络设备,所述网络设备上运行有虚拟设备,其特征在于,所述装置包括:
获取单元,用于获取所述网络设备为虚拟设备分配的CPU资源配比;
计算单元,用于根据所述网络设备为虚拟设备分配的CPU资源配比以及所述网络设备多核CPU的核数,计算出为所述虚拟设备分配的线程数量;
分配单元,用于为所述虚拟设备分配与所述线程数量对应数量的线程。
7.如权利要求6所述的装置,其特征在于,所述计算单元具体用于根据以下公式计算为所述虚拟设备分配的线程数量:
其中,X%为所述网络设备为虚拟设备分配的CPU资源配比,N为所述多核CPU的核数。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
确定单元,用于接收到报文后,确定出处理所述报文的虚拟设备;若处理所述报文的虚拟设备的CPU使用率未达到所述为虚拟设备分配的CPU资源配比,从为所述虚拟设备分配的线程中确定出一个线程;
调用单元,用于调用所述一个线程处理所述报文。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
标识单元,用于在分配给所述虚拟设备的线程中添加所述虚拟设备的标识;
所述确定单元具体用于:
查找添加有所述虚拟设备的标识的线程;
从查找到的线程中确定出一个线程。
10.如权利要求8所述的装置,其特征在于,所述确定单元具体用于:
确定所述为所述虚拟设备分配的线程分别对应的缓冲区的已用容量是否达到预设阈值;
从缓冲区的已用容量未到达预设阈值的线程中确定出一个线程。
CN201510184154.5A 2015-04-17 2015-04-17 线程分配数量计算方法以及装置 Pending CN104899097A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510184154.5A CN104899097A (zh) 2015-04-17 2015-04-17 线程分配数量计算方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510184154.5A CN104899097A (zh) 2015-04-17 2015-04-17 线程分配数量计算方法以及装置

Publications (1)

Publication Number Publication Date
CN104899097A true CN104899097A (zh) 2015-09-09

Family

ID=54031774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510184154.5A Pending CN104899097A (zh) 2015-04-17 2015-04-17 线程分配数量计算方法以及装置

Country Status (1)

Country Link
CN (1) CN104899097A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399117A (zh) * 2018-02-28 2018-08-14 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN110704489A (zh) * 2019-09-29 2020-01-17 苏州浪潮智能科技有限公司 一种数据库的查询方法、装置、设备及计算机存储介质
CN111049914A (zh) * 2019-12-18 2020-04-21 珠海格力电器股份有限公司 负载均衡方法、装置和计算机系统
CN112463396A (zh) * 2021-02-03 2021-03-09 树根互联技术有限公司 压力测试数据的并行传输方法、压力测试工具及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN103559443A (zh) * 2013-11-01 2014-02-05 北京奇虎科技有限公司 多核设备的病毒扫描方法和装置
CN103823712A (zh) * 2014-03-17 2014-05-28 杭州华三通信技术有限公司 一种多cpu虚拟机系统的数据流处理方法和装置
CN104461735A (zh) * 2014-11-28 2015-03-25 杭州华为数字技术有限公司 一种虚拟化场景下分配cpu资源的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN103559443A (zh) * 2013-11-01 2014-02-05 北京奇虎科技有限公司 多核设备的病毒扫描方法和装置
CN103823712A (zh) * 2014-03-17 2014-05-28 杭州华三通信技术有限公司 一种多cpu虚拟机系统的数据流处理方法和装置
CN104461735A (zh) * 2014-11-28 2015-03-25 杭州华为数字技术有限公司 一种虚拟化场景下分配cpu资源的方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399117A (zh) * 2018-02-28 2018-08-14 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN108399117B (zh) * 2018-02-28 2022-02-01 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN110704489A (zh) * 2019-09-29 2020-01-17 苏州浪潮智能科技有限公司 一种数据库的查询方法、装置、设备及计算机存储介质
CN111049914A (zh) * 2019-12-18 2020-04-21 珠海格力电器股份有限公司 负载均衡方法、装置和计算机系统
CN112463396A (zh) * 2021-02-03 2021-03-09 树根互联技术有限公司 压力测试数据的并行传输方法、压力测试工具及电子设备
CN112463396B (zh) * 2021-02-03 2021-05-07 树根互联技术有限公司 压力测试数据的并行传输方法、压力测试工具及电子设备

Similar Documents

Publication Publication Date Title
RU2643626C1 (ru) Способ распределения принимаемых пакетов, селектор очереди, устройство обработки пакетов и носитель информации
CN103051564B (zh) 资源动态调配的方法和装置
CN101610209B (zh) 一种多核并行的网络业务流处理方法及设备
CN104899097A (zh) 线程分配数量计算方法以及装置
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN104253850A (zh) 一种任务分布式调度方法和系统
CN106209402A (zh) 一种虚拟网络功能的伸缩方法和设备
CN105159779B (zh) 提高多核cpu数据处理性能的方法和系统
CN110187960A (zh) 一种分布式资源调度方法及装置
CN105491150A (zh) 基于时间序列的负载均衡处理方法及系统
CN104954155B (zh) 具有多个业务板的网络设备以及多业务板分担方法
CN110062027A (zh) 负载均衡方法、中心服务器及终端设备
CN103595654A (zh) 基于多核CPU的HQoS实现方法、装置及网络设备
CN106059940A (zh) 一种流量控制方法及装置
CN102945185A (zh) 任务调度方法及装置
CN108282526A (zh) 双集群间服务器动态分配方法及系统
CN104301241B (zh) 一种soa动态负载分发方法与系统
CN104156271B (zh) 一种协同计算集群负载均衡的方法及系统
CN108123891A (zh) Sdn网络中使用分布式域控制器实现的动态负载均衡方法
CN105589749A (zh) 云计算环境下的网络ip资源分配方法及装置
CN101594642A (zh) 用于通信网元设备的资源分配方法及装置
CN104009904B (zh) 面向云平台大数据处理的虚拟网络构建方法及系统
CN102448120A (zh) 多路径负荷分担方法及装置
CN106793093B (zh) 一种业务处理方法及装置
CN106612296A (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
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20150909

RJ01 Rejection of invention patent application after publication