线程管理方法、电子设备及存储介质技术

技术编号:34323704 阅读:19 留言:0更新日期:2022-07-31 00:42
本申请提供应用于NVMe

【技术实现步骤摘要】
线程管理方法、电子设备及存储介质


[0001]本专利技术涉及计算机领域,特别涉及一种应用于NVMe

oF设备的线程管理方法、电子设备及存储介质。

技术介绍

[0002]当前NVMe

oF(NVMe overFabric)技术快速发展,很多主机对接存储设备的协议采用NVMe

oF。主机也越来越向CPU密集型发展,随着CPU核心数量的增加,主机拥有的CPU核心也越来越庞大,远远超过了NVMe

oF设备的处理能力。
[0003]现有的线程调度方法没有针对特定的NVMe

oF targe(目标设备)的,因此,在主机对接多个NVMe

oF target设备时,难以全部发挥主机多核心的优势,以提高系统的整体性能。
[0004]因此,亟需一种应用于NVMe

oF设备的线程管理方法,提高利用主机的CPU核心的处理能力的效率并提高NVMe

oF设备的整体使用性能,以解决上述技术问题。

技术实现思路

[0005]为了解决现有技术的不足,本专利技术的主要目的在于提供一种应用于NVMe

oF设备的线程管理方法、电子设备及存储介质,以解决现有技术的上述技术问题。
[0006]为了达到上述目的,第一方面本专利技术提供了一种线程管理方法,所述方法包括:
[0007]操作系统根据分区配置创建分区;
[0008]操作系统发起设备连接请求后,选择合适的分区,在所述分区内对每个核心创建物理线程及用户线程,其中,一个所述物理线程调用至少一个所述用户线程;
[0009]所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列;
[0010]所述操作系统通过所述物理线程调度用户线程,为分区内每个物理线程分配对应的队列,以便主机通过队列与NVMe

oF设备进行交互。
[0011]在一些实施例中,所述分区至少包括第一记录模块、调度机以及物理线程;
[0012]其中,所述第一记录模块用于记录分区占用的核心集合、已占用分区的设备个数以及分区的统计信息;
[0013]所述调度机用于调度所述物理线程以及所述用户线程。
[0014]在一些实施例中,所述分区至少包括第一记录模块、调度机以及物理线程;
[0015]其中,所述第一记录模块用于记录分区占用的核心集合、已占用分区的设备个数以及分区的统计信息;
[0016]所述调度机用于调度所述物理线程以及所述用户线程。
[0017]在一些实施例中,所述队列创建请求包括管理队列创建请求以及交互队列创建请求,所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列方法,包括:
[0018]所述用户线程基于管理队列创建请求,创建管理队列;
[0019]通过所述管理队列查询NVMe

oF设备支持的最大交互队列数和队列最大深度;
[0020]查询完成后,所述用户线程基于交互队列创建请求,创建交互队列。
[0021]在一些实施例中,所述为分区内每个物理线程分配对应的队列,包括:
[0022]所述管理队列对应分配至分区内的第一个所述物理线程;
[0023]所述交互队列对应分配至分区内的所有所述物理线程。
[0024]在一些实施例中,所述物理线程至少包括第二记录模块、用户线程、轮询器;
[0025]其中,所述第二记录模块用于记录所述物理线程绑定的核心以及所述物理线程的统计信息;
[0026]所述轮询器用于轮询所述用户线程中的事件并在轮询到事件时调用对应的所述用户线程。
[0027]在一些实施例中,所述用户线程至少包括接收的请求、用户线程的标识、用户线程的状态信息、通信通道;
[0028]其中,所述通信通道用于与所述用户线程通信。
[0029]在一些实施例中,所述物理线程通过epoll机制轮询所述用户线程中的事件。
[0030]第二方面,本申请还提供了一种电子设备,所述电子设备包括:
[0031]一个或多个处理器;
[0032]以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
[0033]操作系统根据分区配置创建分区;
[0034]操作系统发起设备连接请求后,选择合适的分区,在所述分区内对每个核心创建物理线程及用户线程,其中,一个所述物理线程调用至少一个所述用户线程;
[0035]所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列;
[0036]所述操作系统通过所述物理线程调度用户线程,为分区内每个物理线程分配对应的队列,以便主机通过队列与NVMe

oF设备进行交互。
[0037]第三方面,本申请还提供了一种计算机可读存储介质,所述存储介质存储计算机程序,所述计算机程序使得计算机执行如下操作:
[0038]操作系统根据分区配置创建分区;
[0039]操作系统发起设备连接请求后,选择合适的分区,在所述分区内对每个核心创建物理线程及用户线程,其中,一个所述物理线程调用至少一个所述用户线程;
[0040]所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列;
[0041]所述操作系统通过所述物理线程调度用户线程,为分区内每个物理线程分配对应的队列,以便主机通过队列与NVMe

oF设备进行交互。
[0042]本申请实现的有益效果为:
[0043]本申请提供了一种应用于NVMe

oF设备的线程管理方法,包括操作系统根据分区配置创建分区;操作系统发起设备连接请求后,选择合适的分区,在所述分区内对每个核心创建物理线程及用户线程,其中,一个所述物理线程调用至少一个所述用户线程;所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列;所述操作系统通过所述物理线程调度用户线程,为分区内每个物理线程分配对应的队列,以便主机通过队列与NVMe

oF设备进行交互。通过将计算机系统内的CPU核心进行分区,再对每一个核心绑定一个物理线程,通过物理线程调度用户线程,并通过用户线程创建队列,实现为分区内的每一个核心
分配一个对应的与NVMe

oF设备的交互队列;能够充分发挥主机多CPU,多核心的优势,将NVMe

oF设备的线程均衡的分布到主机的所有核心中,最大效率的利用主机的CPU核心的处理能力,提高NVMe

oF设备的整体使用性能。
附图说明
[0044]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于NVMe

oF设备的线程管理方法,其特征在于,所述方法包括:操作系统根据分区配置创建分区;操作系统发起设备连接请求后,选择合适的分区,在所述分区内对每个核心创建物理线程及用户线程,其中,一个所述物理线程调用至少一个所述用户线程;所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列;所述操作系统通过所述物理线程调度用户线程,为分区内每个核心分配对应的所述队列,以便主机通过所述队列与NVMe

oF设备进行交互。2.根据权利要求1所述的方法,其特征在于,所述分区至少包括第一记录模块、调度机以及物理线程;其中,所述第一记录模块用于记录分区占用的核心集合、已占用分区的设备个数以及分区的统计信息;所述调度机用于调度所述物理线程以及所述用户线程。3.根据权利要求2所述的方法,其特征在于,所述操作系统发起设备连接请求后,选择合适的分区,还包括:将所述分区添加至分区链路表上;所述操作系统根据所述已占用分区的设备个数对所述分区进行排列并维护;操作系统发起设备连接请求后,选择已占用分区的设备个数最小的分区。4.根据权利要求1所述的方法,其特征在于,所述队列创建请求包括管理队列创建请求以及交互队列创建请求,所述用户线程基于所述操作系统发起的队列创建请求,创建对应的队列方法,包括:所述用户线程基于管理队列创建请求,创建管理队列;通过所述管理队列查询NVMe

oF设备支持的最...

【专利技术属性】
技术研发人员:黄正
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1