一种提升存储系统性能的方法、装置、设备、产品与流程

文档序号:23669222发布日期:2021-01-15 14:09阅读:97来源:国知局
一种提升存储系统性能的方法、装置、设备、产品与流程

本发明涉及存储系统性能提升技术领域,具体涉及一种提升存储系统性能的方法、装置、设备、产品。



背景技术:

服务器虚拟化,可以把物理资源转换为逻辑上可以管理的虚拟资源,将多个逻辑服务器整合到一台物理服务器中,实现同时运行多个虚拟环境的目的,同时可以降低服务器的成本,更容易、更安全的对服务器进行管理。

qemu-kvm是当前服务器虚拟化常用的方案,尤其是openstack构建私有云场景。kvm在内核空间,提供cpu和内存的虚拟化,qemu在用户空间,对硬件i/o进行虚拟化。当vm操作系统的i/o被kvm拦截后,就会交给qemu处理。qemu对接分布式存储系统时,一般采用直接调用librbd客户端的方式访问后端存储。

为了提升并行任务处理能力,物理服务器一般采用smp或者numa的多核cpu,使得多个线程可以同时在cpu的多个逻辑核上并行运行。操作系统会采用调度算法,并考虑多个核之间的负载均衡,将线程分配到合适的逻辑核上运行。如果某个逻辑核的负载太高,会将该逻辑核负责的线程迁移到其他逻辑核上执行,最终的结果所有进程的线程将会大体均匀分布在cpu的所有核心上。如果目标逻辑核和当前逻辑核不在同一个numa节点,或者跨多个物理cpu,线程迁移的代价会很高,降低系统性能。

对于物理服务器来说,一台vm对应一个qemu进程,一个qemu进程会创建多个并行的线程处理i/o任务,即对存储后端进行读写访问。当前qemu调用librbd客户端创建i/o线程后,线程调度完全依赖物理服务器操作系统的调度策略,当物理服务器上同时存在多个qemu进程或者其他进程时,由于vm的i/o具有突发性,librbd的线程会在cpu的多个核心之间进行迁移,使线程逻辑核迁移的代价较高,降低存储系统的i/o性能。



技术实现要素:

针对当物理服务器上同时存在多个qemu进程或者其他进程时,由于vm的i/o具有突发性,librbd的线程会在cpu的多个核心之间进行迁移,使线程逻辑核迁移的代价较高,降低存储系统的i/o性能的问题,本发明提供一种提升存储系统性能的方法、装置、设备、产品。

本发明的技术方案是:

第一方面,本发明技术方案提供一种提升存储系统性能的方法,包括如下步骤:

查询物理服务器cpu的配置;

根据cpu的配置选取绑定的逻辑核;

创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定;

调度线程时,将线程分配到绑定的cpu逻辑核上。减小线程在多个逻辑核之间迁移的代价,提升存储系统的性能。

进一步的,创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定的步骤包括:

将选中的逻辑核写入配置文件中;

创建线程,并且创建线程时解析配置文件,读取配置文件中绑核开关和绑核参数;

将创建的线程的硬亲和性设置为配置的逻辑核实现逻辑核的绑定。创建的线程绑定到指定的cpu逻辑核上。

进一步的,查询物理服务器cpu的配置的步骤包括:

获取numa节点数、每个节点的cpu数量即物理核的数量、每个cpu的逻辑核的数量。

进一步的,根据cpu的配置选取绑定的逻辑核的步骤包括:

根据cpu的配置进行判断;

若有多个numa节点,绑定的逻辑核所在cpu在同一个numa节点;

若有多个物理核,判断是否开启超线程,若否,绑定相邻的逻辑核;若是,绑定的逻辑核分布在同一个物理核上。操作系统调度线程时按照绑核策略将线程分配到指定cpu逻辑核上,减少线程迁移的开销,提升存储系统的性能。

第二方面,本发明技术方案提供一种提升存储系统性能的装置,包括查询模块、选取模块、绑定模块和处理模块;

查询模块,用于查询物理服务器cpu的配置;

选取模块,用于根据cpu的配置选取绑定的逻辑核;

绑定模块,用于创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定;

处理模块,用于调度线程时,将线程分配到绑定的cpu逻辑核上。

进一步的,绑定模块包括写入单元、解析读取单元和绑定单元;

写入单元,用于将选中的逻辑核写入配置文件中;

解析读取单元,用于创建线程,并且创建线程时解析配置文件,读取配置文件中绑核开关和绑核参数;

绑定单元,用于将创建的线程的硬亲和性设置为配置的逻辑核实现逻辑核的绑定。

进一步的,查询模块包括节点数获取单元、物理核数获取单元和逻辑核数获取单元;

节点数获取单元,用于获取numa节点数;

物理核数获取单元,用于获取每个节点的cpu数量即物理核的数量;

逻辑核数获取单元,用于获取每个cpu的逻辑核的数量。

进一步的,选取模块包括判断单元和选取单元;

判断单元,用于根据cpu的配置进行判断;还用于若有多个物理核,判断是否开启超线程;

选取单元,用于若判断单元判断有多个numa节点,选取绑定的逻辑核所在cpu在同一个numa节点;还用于若判断单元判断没有开启超线程时,选取绑定相邻的逻辑核;若判断单元判断开启超线程时,先去绑定的逻辑核分布在同一个物理核上。

第三方面,本发明技术方案还提供一种电子设备,包括存储器和处理器,存储器和处理器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的提升存储系统性能的方法。

第四方面,本发明技术方案还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如第一方面所述的提升存储系统性能的方法。

从以上技术方案可以看出,本发明具有以下优点:创建的线程绑定到指定的cpu逻辑核上,操作系统调度线程时按照绑核策略将线程分配到指定cpu逻辑核上,减少线程迁移的开销,提升存储系统的性能。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的装置的示意性框图。

图3为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。下面对本发明中出现的关键术语进行解释。

如图1所示,本发明技术方案提供一种提升存储系统性能的方法,包括如下步骤:

s1:查询物理服务器cpu的配置;

s2:根据cpu的配置选取绑定的逻辑核;

s3:创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定;

s4:调度线程时,将线程分配到绑定的cpu逻辑核上。

在有些实施例中,步骤s3中,创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定的步骤包括:

s31:将选中的逻辑核写入配置文件中;

s32:创建线程,并且创建线程时解析配置文件,读取配置文件中绑核开关和绑核参数;

s33:将创建的线程的硬亲和性设置为配置的逻辑核实现逻辑核的绑定。创建的线程绑定到指定的cpu逻辑核上。将步骤s2中选中的逻辑核,写入librbd的配置文件。具体如下:

bind_mask_flag=true(false)

bind_mask0=0xf000~63逻辑核

64bit无符号数,1bit表示1个逻辑核id,例:10进制3840=16进制0xf00=2进制111100000000,第8~11bit为1,表示绑定到第8~11逻辑核上

bind_mask1=0x064~127逻辑核

bind_mask2=0x0128~191逻辑核

bind_mask3=0x0192~255逻辑核

需要说明的是,步骤s1中,查询物理服务器cpu的配置的步骤包括:

获取numa节点数、每个节点的cpu数量即物理核的数量、每个cpu的逻辑核的数量。

在有些实施例中,步骤s2中根据cpu的配置选取绑定的逻辑核的步骤包括:

s21:根据cpu的配置进行判断;

s22:若有多个numa节点,绑定的逻辑核所在cpu在同一个numa节点;

s23:若有多个物理核,判断是否开启超线程,若否,执行步骤s24,若是,执行步骤s25;

s24:绑定相邻的逻辑核;

s25:绑定的逻辑核分布在同一个物理核上。操作系统调度线程时按照绑核策略将线程分配到指定cpu逻辑核上,减少线程迁移的开销,提升存储系统的性能。在这里需要说明的是,选择librbd绑定的逻辑核。如果有多个numa节点,绑定的逻辑核所在cpu在同一个numa节点。如果有多个物理核,并且没有开启超线程,没有开启超级线程是一个物理核即一个逻辑核,绑定相邻的逻辑核。如果物理核开启了超线程,绑定的逻辑核分布在同一个物理核上。需要说明的是,开启了超线程一个物理核对应两个逻辑核。

步骤s4中,需要说明的是,qemu调用librbd创建i/o线程时,librbd解析配置文件,读取绑核开关和绑核参数,将创建的线程的硬亲和性设置为配置的逻辑核。减小线程在多个逻辑核之间迁移的代价,提升存储系统的性能。

如图2所示,本发明技术方案提供一种提升存储系统性能的装置,包括查询模块、选取模块、绑定模块和处理模块;

查询模块,用于查询物理服务器cpu的配置;

选取模块,用于根据cpu的配置选取绑定的逻辑核;

绑定模块,用于创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定;

处理模块,用于调度线程时,将线程分配到绑定的cpu逻辑核上。

在有些实施例中,绑定模块包括写入单元、解析读取单元和绑定单元;

写入单元,用于将选中的逻辑核写入配置文件中;

解析读取单元,用于创建线程,并且创建线程时解析配置文件,读取配置文件中绑核开关和绑核参数;

绑定单元,用于将创建的线程的硬亲和性设置为配置的逻辑核实现逻辑核的绑定。

在有些实施例中,查询模块包括节点数获取单元、物理核数获取单元和逻辑核数获取单元;

节点数获取单元,用于获取numa节点数;

物理核数获取单元,用于获取每个节点的cpu数量即物理核的数量;

逻辑核数获取单元,用于获取每个cpu的逻辑核的数量。

在有些实施例中,选取模块包括判断单元和选取单元;

判断单元,用于根据cpu的配置进行判断;还用于若有多个物理核,判断是否开启超线程;

选取单元,用于若判断单元判断有多个numa节点,选取绑定的逻辑核所在cpu在同一个numa节点;还用于若判断单元判断没有开启超线程时,选取绑定相邻的逻辑核;若判断单元判断开启超线程时,先去绑定的逻辑核分布在同一个物理核上。

如图3所示,本发明实施例提供一种电子设备,该电子设备可以包括:处理器(processor)、通信接口(communicationsinterface)、存储器(memory)和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:s1:查询物理服务器cpu的配置;s2:根据cpu的配置选取绑定的逻辑核;s3:创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定;s4:调度线程时,将线程分配到绑定的cpu逻辑核上。

此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述方法实施例所述的方法,例如包括:s1:查询物理服务器cpu的配置;s2:根据cpu的配置选取绑定的逻辑核;s3:创建线程,并将创建的线程与选定的cpu的逻辑核进行绑定;s4:调度线程时,将线程分配到绑定的cpu逻辑核上。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1