CN109284192B - 参数配置方法及电子设备 - Google Patents
参数配置方法及电子设备 Download PDFInfo
- Publication number
- CN109284192B CN109284192B CN201811145692.3A CN201811145692A CN109284192B CN 109284192 B CN109284192 B CN 109284192B CN 201811145692 A CN201811145692 A CN 201811145692A CN 109284192 B CN109284192 B CN 109284192B
- Authority
- CN
- China
- Prior art keywords
- queue
- physical cpu
- interrupt
- peripheral
- total number
- 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
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/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
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Abstract
本发明实施方式涉及计算机技术领域,公开了一种参数配置方法及电子设备。本发明实施方式中,参数配置方法应用于包含多个物理CPU核的电子设备,该方法包括:获取电子设备可配置的物理CPU核的总数目;根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系;其中,每一物理CPU核至少对应有一个中断队列,且至多对应有两个中断队列。这样,将对应关系传输至多队列外设,令多队列外设的驱动程序根据对应关系进行初始化加载,能够尽可能地进行了中断队列的合理分配,避免了多个中断队列绑定到同一个物理CPU核上的情况,为提升电子设备的计算能力的利用率提供了基础。
Description
技术领域
本发明实施方式涉及计算机技术领域,特别涉及参数配置方法及电子设备。
背景技术
随着计算处理、通信等互联网业务需求日益增长,很多电子设备为了实现高性能,都配备有多核处理器,同时,越来越多的电子设备开启了CPU超线程技术,以实现逻辑CPU核数相对于物理CPU核数翻倍,以期增加单机的计算能力。
目前,为了满足日益增长的高速网络处理需求,电子设备通常都会配备千兆、万兆甚至更高性能的网络适配器(俗称“网卡”)。但是,本发明的发明人发现:
高性能器件的单纯叠加并不一定能带来整机性能的线性提升,大部分情况下电子设备内各个部件间彼此相互关联、相互作用,均会影响机器的最终性能表现。例如,电子设备采用开启了CPU超线程技术的多核处理器,若此时电子设备内设有多队列网卡,且多队列网卡采用先进的多队列多中断分发技术,则电子设备的多核处理器和网卡间会搭建起并发的通信模式,将中断分发到不同CPU上处理,这可以减少中断处理的干扰和等待,极大地提高了机器网络处理的能力。但是,网卡驱动在初始化加载时,往往直接使用默认配置的中断队列数,而忽视了与机器的多核处理器架构(如非统一内存访问架构和超线程技术)相配合,从而容易出现中断队列数过多或过少的情况,过多则有可能引起此类中断的相互干扰,过少则无法充分利用电子设备各部件的计算能力。并且,如若物理CPU核和逻辑CPU核混淆,则会出现网卡的多个中断可能被绑定到同一个物理CPU核上(例如,中断分别绑定到两个逻辑核上,但此逻辑核归属于同一物理核),也即破坏了多核处理器和多队列网卡间的并发的通信模式,该同一物理CPU核处理的中断事件会过多,从而出现延迟增加,处理性能下降的情况,进而导致网卡的丢包率增加较高、网络性能网卡带宽下降。
发明内容
本发明实施方式的目的在于提供一种参数配置方法及电子设备,能够尽可能地进行中断队列的合理分配,并避免了多个中断队列绑定到同一个物理CPU核上的情况,为提升电子设备的计算能力的利用率提供了基础。
为解决上述技术问题,本发明的实施方式提供了一种参数配置方法,应用于包含多个物理CPU核的电子设备,该方法包括:
获取电子设备可配置的物理CPU核的总数目;
根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系;其中,每一物理CPU核至少对应有一个中断队列,且每个物理CPU核最多对应有两个中断队列;
将对应关系传输至多队列外设,令多队列外设的驱动程序根据对应关系进行初始化加载。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的参数配置方法。
本发明实施方式相对于现有技术而言,电子设备能够根据可配置的物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系,以便于多队列外设的驱动程序能够根据该对应关系进行初始化加载。通过这种方式,多队列外设的中断队列能够与电子设备的物理CPU核直接挂钩、绑定,每一物理CPU核至少对应有一个中断队列,且至多对应有两个中断队列,不仅避免了中断队列过少所导致的电子设备计算能力没有被充分利用的情况,而且保证了中断队列与物理CPU核的均衡分配,避免了多个中断队列绑定到同一个物理CPU核上的情况。这样,从中断队列数的角度以及中断队列与物理CPU的绑定关系的角度,来实现中断队列的合理分配,为电子设备的计算能力能够被充分利用提供了基础。
另外,根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系,具体包括:获取多队列外设的默认中断队列数目;若默认中断队列数目大于或等于物理CPU核的总数目,则将物理CPU核的总数目作为多队列外设的中断队列的数目;为每一中断队列分配一物理CPU核,生成对应关系。这样,多队列外设的参数配置能够与物理CPU核数进行配合,以实现资源的合理分配,有效地避免了中断队列过多所导致的各物理CPU核所绑定的中断队列过多的情况,能够进一步地提升电子设备的处理性能。
另外,根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系,具体包括:获取多队列外设的默认中断队列数目;若默认中断队列数目小于物理CPU核的总数目,则获取多队列外设的中断队列的数目设置上限;若数目设置上限大于或等于物理CPU核的总数目,则将物理CPU核的总数目作为多队列外设的中断队列的数目。这样,多队列外设的参数配置能够与物理CPU核数进行配合,以实现资源的合理分配,有效地避免了中断队列过少所导致的各物理CPU核所处理的中断事件过少的情况,有效地保证了电子设备计算能力的利用率较高。
另外,根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系,具体包括:获取多队列外设的默认中断队列数目;若默认中断队列数目大于物理CPU核的总数目,且小于或等于两倍的物理CPU核的总数目,则令每一物理CPU核至少对应有一个中断队列,并令每一物理CPU核至多对应两个中断队列。这样,多队列外设的参数配置能够与物理CPU核数进行配合,以实现资源的合理分配,有效地避免了中断队列过多所导致的各物理CPU核所绑定的中断队列过多的情况,以及,有效地避免了中断队列过少所导致的各物理CPU核所处理的中断事件过少的情况,有效地保证了电子设备计算能力的利用率较高。
另外,若默认中断队列数目大于两倍的物理CPU核的总数目,则将两倍的物理CPU核的总数目作为多队列外设的中断队列的数目;为每一中断队列分配两个物理CPU核,生成对应关系。这样,多队列外设的参数配置能够与物理CPU核数进行配合,以实现资源的合理分配,有效地避免了中断队列过多所导致的各物理CPU核所绑定的中断队列过多的情况,能够进一步地提升电子设备的处理性能。
另外,电子设备为网络服务器;多队列外设为多队列网卡。这样,提供了电子设备以及多队列外设的一种具体实现形式,增加了本发明实施方式的灵活性。并且,对于网络服务器而言,网卡中断是触发频率最高的中断,因此在网络服务器以及多队列网卡上实现上述的参数配置方法,能够降低网卡的丢包率,提高网络服务器的网络服务质量。
附图说明
一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定。
图1是根据本发明第一实施方式中参数配置方法的流程示意图;
图2是根据本发明第三实施方式中参数配置方法的流程示意图;
图3是根据本发明第四实施方式中电子设备的示意图。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种参数配置方法,具体流程如图1所示。本实施方式中的参数配置方法应用于包含多个物理CPU核的电子设备,且该电子设备具有多个外设,如,键盘、磁盘、网卡等。以下对本实施方式中参数配置方法进行具体说明,步骤如下:
步骤101,获取电子设备可配置的物理CPU核的总数目。
具体地说,技术人员可以预先通过开发相应的软件程序读取电子设备中的硬件和软件配置,以获取物理CPU核的总数目。如,技术人员可以在电子设备内运行软件程序读取CPU架构信息,以便于电子设备根据当前CPU架构信息,获取可配置的物理CPU核的总数目。如,电子设备使用linux系统时,该程序命令可以为“#cat/proc/cpuinfo”,即,电子设备读取/proc/cpuinfo文件的内容,获取processor、physical id、core id、cpu cores以及siblings,将这些信息作为获取的CPU架构信息。其中,processor表示逻辑CPU的全局ID,physical id表示物理封装的处理器的ID,core id为每个物理CPU核的ID,cpu cores表示位于相同物理封装的处理器中的内核数量,siblings表示位于相同物理封装的处理器中的逻辑处理器的数量。不难看出,通过上述获取CPU架构信息,能够实现物理CPU核的总数目的获取。
更具体地说,目前的电子设备会开启CPU超线程技术,以实现逻辑CPU核数相对于物理CPU核数翻倍,以期增加单机的计算能力。本实施方式中,为避免物理CPU核和逻辑CPU核混淆,电子设备根据CPU架构信息,获取物理CPU核的总数目时,需要检测是否开启了CPU超线程技术。若电子设备开启了CPU超线程技术,多核处理器的逻辑核数目是物理CPU核数的两倍。则,电子设备在物理CPU核对应的各逻辑CPU核中,选取一逻辑CPU核中作为物理CPU核。如,电子设备的系统中以号码来标记cpu core(一般的是从0开始的正整数)。当系统仅有物理核时,那号码和物理CPU核应该是一一对应的,当系统开启了超线程技术时,一个物理CPU核被虚拟成两个逻辑CPU核,则电子设备可以根据CPU架构信息,获取实属于同一物理CPU核的俩个逻辑CPU核,并将号码较小的数字对应的逻辑CPU核指定为实际物理CPU核。在实际操作时,电子设备也可以随机指定实属于同一物理CPU核的俩个逻辑CPU核的其中之一作为实际物理CPU核,本实施方式并不对此做任何限定。
值得一提的是,目前为提高电子设备的性能,电子设备上还会采取诸如CPU虚拟化、内核旁路等应用,在这种情况下,通常会在电子设备内设置某几个CPU物理核为隔离核,以屏蔽该CPU核上的所有中断,也即,多队列网卡的中断也不能利用到这些隔离核上。本实施方式中,为保证隔离核的正常使用,电子设备还检测物理CPU核是否被作为隔离核,若物理CPU核不被作为隔离核,电子设备才将该物理CPU核作为可配置的物理CPU核。
上述举例所说的电子设备使用Linux系统,通过读取/proc/cpuinfo文件的内容,获取CPU架构信息的方式仅作为示例性说明。
步骤102,根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系。
具体地说,电子设备可以获取多队列外设的中断队列的默认配置数目,以便于根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系。其中该对应关系中,每一物理CPU核至少对应有一个中断队列,且每个物理CPU核最多对应有两个中断队列。
本实施方式中,电子设备执行步骤102的方式可以为:电子设备检测中断队列的默认配置数目是否大于或等于当前设备可用的物理CPU核的总数目,若判断结果为是,则电子设备将物理CPU核总数目作为多队列外设的中断队列的数目,并为每一中断队列分配一物理CPU核,生成对应关系;若判断结果为否,即默认中断队列数目小于物理CPU核的总数目,则电子设备获取多队列外设的中断队列的数目设置上限,并在数目设置上限大于或等于物理CPU核的总数目时,将物理CPU核的总数目作为多队列外设的中断队列的数目,在数目设置上限小于物理CPU核的总数目,则将数目设置上限作为多队列外设的中断队列的数目,以便于为每一中断队列分配一物理CPU核,生成对应关系。以下进行举例说明:
具体地说,将电子设备具备的可配置的物理CPU核的总数目记C,预设外设的中断队列的默认配置数目记为M,且中断队列的数目设置上限记为Mmax。
若M≥C,则更改M=C,并将一个中断队列绑定到一个可配置的物理CPU核,如此,在可配置的情况下削减电子设备的中断队列数,令其在生成对应关系时,实现每一物理CPU核只对应一个中断队列,可避免多个中断队列绑定到一个物理CPU核。如,假设C为4,可配置的物理CPU核分别为core1、core2、core3以及core4;若M为6,默认中断队列分别为queue0、queue1、queue2、queue3、queue4、queue5,则可以去除queue4、queue5,并生成如下表一所示的对应关系:
物理CPU核 | 中断队列 |
core1 | queue0 |
core2 | queue1 |
core3 | queue2 |
core4 | queue3 |
若M<C,且Mmax≥C,则调整M=C,并将一个中断队列绑定到一个可配置的物理CPU核,如此,在可配置的情况下增加电子设备的中断队列数,令其在生成对应关系时以最大化利用CPU的物理核处理性能。如,假设C为4,可配置的物理CPU核分别为core1、core2、core3以及core4;若M为2,默认中断队列分别为queue0、queue1,若Mmax为6,则可以增加中断队列queue2、queue3,并生成如上表一所示的对应关系。
需要注意的是,若M<C,且Mmax<C,则调整M=Mmax,并将一个中断队列绑定到一个可配置的物理CPU核,如此,在可配置的情况下增加电子设备的中断队列数,令其在生成对应关系时以最大化利用CPU的物理核处理性能。如,假设C为6,可配置的物理CPU核分别为core1、core2、core3、core4、core5以及core6;若M为2,默认中断队列分别为queue0、queue1,Mmax为4,则增加中断队列queue2、queue3,以生成如下表二所示的对应关系。
表二
物理CPU核 | 中断队列 |
core1 | queue0 |
core2 | queue1 |
core3 | queue2 |
core4 | queue3 |
core5 | / |
core6 | / |
需要注意的是,在这种情况下,电子设备可以根据各物理CPU核的硬件信息、当前物理CPU核上已经绑定的其他中断的数量等参数,对各物理CPU核进行评判,以便于将中断队列优先分配给优质物理CPU核。
值得一提的是,上述举例阐述的内容中,中断队列数的设置均为2的倍数,其原因在于目前的相关技术中当前CPU核数均为2的倍数,也就是说,上述举例阐述的内容是为了配合目前的相关技术进行举例的,但本实施方式并不受此限制。
步骤103,将对应关系传输至多队列外设,令多队列外设的驱动程序根据对应关系进行初始化加载。
具体地说,电子设备与多队列外设有线或无线通信连接,电子设备通过与该有线或无线通信连接将对应关系传输至多队列外设,以便于多队列外设的驱动程序根据对应关系进行初始化加载,完成多队列外设的中断队列与电子设备各物理CPU核的亲和性绑定。其中,技术人员预先在多队列外设驱动程序的启动部分的源码中,加入了根据对应关系进行初始化加载的功能,该功能一般默认开启,能够实现多队列外设无人工干预的配置操作。
本实施方式相对于现有技术而言,电子设备能够根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系,以便于多队列外设的驱动程序能够根据该对应关系进行初始化加载。通过这种方式,多队列外设的中断队列能够与电子设备的物理CPU核直接挂钩、绑定,每一物理CPU核至少对应有一个中断队列,且至多对应有两个中断队列,不仅避免了中断队列过少所导致的电子设备计算能力没有被充分利用的情况,而且保证了中断队列与物理CPU核的均衡分配,避免了多个中断队列绑定到同一个物理CPU核上的情况。这样,从中断队列数的角度以及中断队列与物理CPU的绑定关系的角度,来实现中断队列的合理分配,为电子设备的计算能力能够被充分利用提供了基础。
需要注意的是,本发明的发明人发现,即使电子设备开启了超线程模式,或配置了CPU核隔离技术(如,CPU虚拟化、内核旁路Kernel-Bypass等应用场景下,通常为了提高性能,都将某几个物理CPU核设置为隔离核,屏蔽了该核上的所有中断),本实施方式依然可以实现多队列外设的中断队列与电子设备的物理CPU核直接挂钩、绑定,能够在不影响电子设备、多队列外设的正常功能的情况下,剔除电子设备内隔离核配置、超线程开启的影响,实现了电子设备的性能提升,因此本实施方式中的参数配置方法应用十分广泛。
并且,本发明的发明人发现,对于网络服务器而言,网卡中断是触发频率最高的中断,而网卡中断涉及到CPU核执行上下文的切换和缓存失效等一系列硬件动作,性能开销较大,因此在电子设备为网络服务器,多队列外设为多队列网卡时,实施上述的参数配置方法,能够降低网卡的丢包率,提高网络服务器的网络服务质量,实现成本较低,而收效显著,实现了网络服务器的硬件平台下,最优化配置多队列网卡驱动,使得网络服务器的性能得到了优化。
本发明的第二实施方式涉及一种参数配置方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系的具体实现形式不同,以下对其具体实现进行说明:
具体地说,电子设备获取多队列外设的默认中断队列数目,若默认中断队列数目大于总数目,且小于或等于两倍的总数目,则令每一物理CPU核至少对应有一个中断队列,并令每一物理CPU核至多对应两个中断队列;若默认中断队列数目大于两倍的总数目,则将两倍的总数目作为多队列外设的中断队列的数目,为每一中断队列分配两个物理CPU核,生成对应关系。
更具体地说,将电子设备具备的可配置的物理CPU核的总数目记C,预设外设的中断队列的默认配置数目记为M,且中断队列的数目设置上限记为Mmax。
若C<M≤2C,则电子设备可以先将中断队列均匀分配至每一物理CPU核,令一个中断队列对应一个物理CPU,多出的中断队列部分再轮流分配,这种情况会出现2个中断队列对应一个物理CPU核的情况,但相对现有技术直接采用默认配置而言,中断队列的分配比较均匀,减少了中断队列数过多或过少的情况,能够保证电子设备的高处理性能。
如,假设C为4,可配置的物理CPU核分别为core1、core2、core3以及core4;若M为6,默认中断队列分别为queue0、queue1、queue2、queue3、queue4、queue5,则生成的对应关系可以如下表三所示:
表三
物理CPU核 | 中断队列 |
core1 | queue0、queue4 |
core2 | queue1、queue5 |
core3 | queue2 |
core4 | queue3 |
若M>2C,则电子设备可以调整M=2C,并将两个中断队列绑定到一个可配置的物理CPU核。如,假设C为2,可配置的物理CPU核分别为core1、core2;若M为4,默认中断队列分别为queue0、queue1、queue2、queue3,则生成的对应关系可以如下表四或下表五所示。也就是说,电子设备可以逐个轮流地为每一物理CPU核分配中断队列(表四),也可以实现计算每一物理CPU核需要对应的中断队列的个数,再逐个为每一物理CPU核分配对应个数的中断队列(表五)。
表四
物理CPU核 | 中断队列 |
core1 | queue0、queue1 |
core2 | queue2、queue3 |
表五
物理CPU核 | 中断队列 |
core1 | queue0、queue2 |
core2 | Queue1、queue3 |
值得一提的是,若M>2C,则电子设备还可以将物理CPU核的总数目作为多队列外设的中断队列的数目,为每一中断队列分配一物理CPU核,生成对应关系。也就是说,电子设备可以调整M=C,并将每个中断队列绑定到一个可配置的物理CPU核。如,假设C为2,可配置的物理CPU核分别为core1、core2;若M为4,默认中断队列分别为queue0、queue1、queue2、queue3,则可以剔除queue2、queue3,并生成如下表六所示的对应关系。
表六
物理CPU核 | 中断队列 |
core1 | queue0 |
core2 | queue2 |
与现有技术相比,本实施方式提供了电子设备生成中断队列与物理CPU核的对应关系的一种具体实现形式,实现了中断队列的分配比较均匀,能够保证电子设备的高处理性能。
本发明的第三实施方式涉及一种参数配置方法,具体流程如图2所示。在本发明第三实施方式中,在电子设备的内核启动或多队列外设的驱动程序启动后,电子设备才获取物理CPU核的总数目,以便于生成中断队列与物理CPU核的对应关系,明确了参数配置方法的实施时机,以下进行具体说明:
步骤201,内核启动或多队列外设的驱动程序启动。
具体地说,内核启动可以理解为电子设备开机或重启,多队列外设的驱动程序启动可以理解为多队列外设开机或重启。
步骤202,获取当前电子设备上可配置的物理CPU核的总数目。
步骤203,根据物理CPU核的总数目,生成预设的多队列外设的中断队列与物理CPU核的对应关系。
步骤204,将对应关系传输至多队列外设,令多队列外设的驱动程序根据对应关系进行初始化加载。
需要说明的是,本实施方式中的步骤202至步骤204与第一实施方式或第二实施方式的实施细节大致相同,为避免重复,本实施方式并不对此进行具体说明。因此,本领域技术人员在实际实施时,可以参考第一实施方式或第二实施方式记载的内容,实现本实施方式中的步骤202至步骤204。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第四实施方式涉及一种电子设备,如图3所示,包括:至少一个多核处理器301;以及,与所述至少一个多核处理器301通信连接的存储器302;以及,与所述至少一个多核处理器301通信连接的多队列外设302;其中,所述存储器存储有可被所述至少一个多核处理器执行的指令,所述指令被所述至少一个多核处理器执行,以使所述至少一个多核处理器能够执行上述的参数配置方法。
其中,存储器302和多核处理器301采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个多核处理器301和存储器302的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经多核处理器301处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给多核处理器301。
多核处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器302可以被用于存储多核处理器301在执行操作时所使用的数据。
与现有技术相比,本实施方式尽可能地进行中断队列的合理分配,并避免了多个中断队列绑定到同一个物理CPU核上的情况,为提升电子设备的计算能力的利用率提供了基础。
本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施方式。
与现有技术相比,本实施方式尽可能地进行中断队列的合理分配,并避免了多个中断队列绑定到同一个物理CPU核上的情况,为提升电子设备的计算能力的利用率提供了基础。
即,本领域技术人员可以理解,实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (11)
1.一种参数配置方法,其特征在于,应用于包含多个物理CPU核的电子设备,所述方法包括:
获取所述电子设备可配置的物理CPU核的总数目、多队列外设的默认中断队列数目和所述多队列外设的中断队列的数目设置上限;
根据所述物理CPU核的总数目与所述默认中断队列数目、所述数目设置上限之间的关系,或者,根据所述物理CPU核的总数目与所述默认中断队列数目之间的关系,选择性丢弃部分中断队列或增加部分中断队列,确定所述多队列外设的中断队列的数目,并根据所述物理CPU核的总数目和所述多队列外设的中断队列的数目生成所述多队列外设的中断队列与所述物理CPU核的对应关系,以使每一所述物理CPU核至少对应有一个所述中断队列,且每个所述物理CPU核最多对应有两个所述中断队列;
将所述对应关系传输至所述多队列外设,令所述多队列外设的驱动程序根据所述对应关系进行初始化加载;其中,所述多队列外设的驱动程序的启动部分的源码中,加入了根据所述对应关系进行初始化加载的功能。
2.根据权利要求1所述参数配置方法,其特征在于,所述根据所述物理CPU核的总数目与所述默认中断队列数目、所述数目设置上限之间的关系,选择性丢弃部分中断队列或增加部分中断队列,确定所述多队列外设的中断队列的数目,并根据所述物理CPU核的总数目和所述多队列外设的中断队列的数目生成所述多队列外设的中断队列与所述物理CPU核的对应关系,具体包括:
若所述默认中断队列数目大于或等于所述物理CPU核的总数目,则将所述物理CPU核的总数目作为所述多队列外设的中断队列的数目,并为每一所述中断队列分配一所述物理CPU核,生成所述对应关系;
若所述默认中断队列数目小于所述物理CPU核的总数目,且所述数目设置上限大于或等于所述物理CPU核的总数目,则将所述物理CPU核的总数目作为所述多队列外设的中断队列的数目,并为每一所述中断队列分配一所述物理CPU核,生成所述对应关系;
若所述默认中断队列数目小于所述物理CPU核的总数目,且所述数目设置上限小于所述物理CPU核的总数目,则将所述数目设置上限作为所述多队列外设的中断队列的数目,并为每一所述中断队列分配一所述物理CPU核,生成所述对应关系。
3.根据权利要求1所述参数配置方法,其特征在于,所述根据所述物理CPU核的总数目与所述默认中断队列数目之间的关系,选择性丢弃部分中断队列或增加部分中断队列,确定所述多队列外设的中断队列的数目,并根据所述物理CPU核的总数目和所述多队列外设的中断队列的数目生成所述多队列外设的中断队列与所述物理CPU核的对应关系,具体包括:
若所述默认中断队列数目大于所述物理CPU核的总数目,且小于或等于两倍的所述物理CPU核的总数目,则令每一所述物理CPU核至少对应有一个所述中断队列,并令每一所述物理CPU核至多对应两个所述中断队列。
4.根据权利要求3所述参数配置方法,其特征在于,还包括:
若所述默认中断队列数目大于两倍的所述物理CPU核的总数目,则将两倍的所述物理CPU核的总数目作为所述多队列外设的中断队列的数目;
为每一所述物理CPU核分配两个所述中断队列,生成所述对应关系。
5.根据权利要求3所述参数配置方法,其特征在于,还包括:
若所述默认中断队列数目大于两倍的所述物理CPU核的总数目,则将所述物理CPU核的总数目作为所述多队列外设的中断队列的数目;
为每一所述物理CPU核分配一个所述中断队列,生成所述对应关系。
6.根据权利要求1所述参数配置方法,其特征在于,所述电子设备为网络服务器;所述多队列外设为多队列网卡。
7.根据权利要求1所述参数配置方法,其特征在于,所述获取所述电子设备可配置的物理CPU核的总数目前,还包括:
所述电子设备的内核启动或所述多队列外设的驱动程序启动。
8.根据权利要求1所述参数配置方法,其特征在于,所述获取所述电子设备可配置的物理CPU核的总数目,具体包括:
获取当前CPU架构信息;
根据所述当前CPU架构信息,获取各所述物理CPU核;
若所述物理CPU核不作为隔离核,则将所述物理CPU核作为所述可配置的物理CPU核;
获取所述可配置的物理CPU核的总数目。
9.根据权利要求8所述参数配置方法,其特征在于,所述根据所述当前CPU架构信息,获取各所述物理CPU核,具体包括:
检测所述电子设备是否开启CPU超线程技术;
若所述电子设备开启CPU超线程技术,则在所述物理CPU核对应的各逻辑CPU核中,指定一逻辑CPU核作为所述物理CPU核。
10.一种电子设备,其特征在于,包括:
至少一个多核处理器;以及,
与所述至少一个多核处理器通信连接的存储器;以及,
与所述至少一个多核处理器通信连接的多队列外设;
其中,所述存储器存储有可被所述至少一个多核处理器执行的指令,所述指令被所述至少一个多核处理器执行,以使所述至少一个多核处理器能够执行如权利要求1至9中任一所述的参数配置方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的参数配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811145692.3A CN109284192B (zh) | 2018-09-29 | 2018-09-29 | 参数配置方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811145692.3A CN109284192B (zh) | 2018-09-29 | 2018-09-29 | 参数配置方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284192A CN109284192A (zh) | 2019-01-29 |
CN109284192B true CN109284192B (zh) | 2021-10-12 |
Family
ID=65182577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811145692.3A Active CN109284192B (zh) | 2018-09-29 | 2018-09-29 | 参数配置方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284192B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109672575B (zh) * | 2019-01-30 | 2022-03-08 | 新华三技术有限公司合肥分公司 | 数据处理方法及电子设备 |
CN111314249B (zh) * | 2020-05-08 | 2021-04-20 | 深圳震有科技股份有限公司 | 一种5g数据转发平面的避免数据包丢失的方法和服务器 |
CN112769905B (zh) * | 2020-12-25 | 2023-03-31 | 麒麟软件有限公司 | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 |
CN115473757A (zh) * | 2022-09-29 | 2022-12-13 | 展讯通信(上海)有限公司 | 智能终端的动态网卡驱动管理系统、方法、装置及设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308469B (zh) * | 2008-07-07 | 2011-08-10 | 成都市华为赛门铁克科技有限公司 | 一种软中断负载均衡的实现方法及设备 |
CN101634974A (zh) * | 2009-08-26 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 一种多中断类型的处理方法、装置和系统 |
CN102523153B (zh) * | 2011-12-08 | 2014-06-04 | 华中科技大学 | 虚拟化环境下的负载均衡方法 |
CN102916905A (zh) * | 2012-10-18 | 2013-02-06 | 曙光信息产业(北京)有限公司 | 一种基于hash算法的万兆网卡多路分流方法及其系统 |
CN102984085A (zh) * | 2012-11-21 | 2013-03-20 | 网神信息技术(北京)股份有限公司 | 映射方法及装置 |
CN103049336A (zh) * | 2013-01-06 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于哈希的网卡软中断负载均衡方法 |
CN103440213B (zh) * | 2013-07-23 | 2016-12-28 | 深圳市共进电子股份有限公司 | 一种应用于具有多cpu和网卡的系统的网卡驱动方法 |
CN105518620B (zh) * | 2014-10-31 | 2019-02-01 | 华为技术有限公司 | 一种网卡配置方法及资源管理中心 |
US10078576B2 (en) * | 2016-03-29 | 2018-09-18 | International Business Machines Corporation | Remotely debugging an operating system |
CN106527653A (zh) * | 2016-10-12 | 2017-03-22 | 东软集团股份有限公司 | 调整cpu频率的方法及装置 |
CN106789152A (zh) * | 2016-11-17 | 2017-05-31 | 东软集团股份有限公司 | 基于多队列网卡的处理器扩展方法及装置 |
CN106789282A (zh) * | 2016-12-28 | 2017-05-31 | 青岛海天炜业过程控制技术股份有限公司 | 一种实现iec60870‑5‑104协议低延迟处理工业防火墙的方法 |
CN107193657A (zh) * | 2017-05-18 | 2017-09-22 | 安徽磐众信息科技有限公司 | 基于solaflare网卡的低延迟服务器 |
-
2018
- 2018-09-29 CN CN201811145692.3A patent/CN109284192B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109284192A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284192B (zh) | 参数配置方法及电子设备 | |
CN111490949B (zh) | 用于转发数据包的方法、网卡、主机设备和计算机系统 | |
US10768960B2 (en) | Method for affinity binding of interrupt of virtual network interface card, and computer device | |
CN106371894B (zh) | 一种配置方法、装置和数据处理服务器 | |
US10496427B2 (en) | Method for managing memory of virtual machine, physical host, PCIE device and configuration method thereof, and migration management device | |
EP3982261A1 (en) | Method and apparatus for processing io | |
CN109726005B (zh) | 用于管理资源的方法、服务器系统和计算机可读介质 | |
EP3242440A1 (en) | Fault tolerant method, apparatus and system for virtual machine | |
US10275558B2 (en) | Technologies for providing FPGA infrastructure-as-a-service computing capabilities | |
EP3779694A1 (en) | Method and apparatus for resource management, electronic device, and storage medium | |
CN111858228B (zh) | 用于存储装置中的加速内核的状态监测的方法及系统 | |
US11169712B2 (en) | Memory system with latency distribution optimization and an operating method thereof | |
US10614542B2 (en) | High granularity level GPU resource allocation method and system | |
US20070150683A1 (en) | Dynamic memory buffer allocation method and system | |
US10877790B2 (en) | Information processing apparatus, control method and storage medium | |
US8230260B2 (en) | Method and system for performing parallel computer tasks | |
WO2023174146A1 (zh) | 卸载卡命名空间管理、输入输出请求处理系统和方法 | |
CN102945214A (zh) | 基于io延迟时间分布优化中断处理任务的方法 | |
WO2022063273A1 (zh) | 一种基于numa属性的资源分配方法及装置 | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN102929819A (zh) | 用于处理计算机系统中的存储设备的中断请求的方法 | |
US9081766B2 (en) | Memory and process sharing via input/output with virtualization | |
CN113439260A (zh) | 针对低时延存储设备的i/o完成轮询 | |
CN112416548B (zh) | 内核调度方法、设备、终端和存储介质 | |
CN109302386B (zh) | 一种服务器压缩解压缩刀片、系统、及压缩解压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |