[发明专利]线程创建方法、业务请求处理方法及相关设备有效
申请号: | 201310733930.3 | 申请日: | 2013-12-26 |
公开(公告)号: | CN104750543B | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 沈晴霓;李才;郭明宇;张甜;陈克平;蔡毅 | 申请(专利权)人: | 杭州华为数字技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 暂无信息 | 说明书: | 暂无信息 |
摘要: | 本发明公开了一种线程创建方法、业务请求处理方法及相关设备,包括:获取服务器的多队列网卡的网卡队列数;并创建与网卡队列数相等数量的进程;并在每个进程中创建一个监听线程和多个工作线程;以及将创建的每个监听线程分别与不同的网卡队列绑定。采用本发明实施例提供的方案,使得进程和线程创建更合理,且提高了服务器对并发的业务请求的处理效率。 1 | ||
搜索关键词: | 网卡 线程创建 队列 业务请求处理 监听线程 服务器 创建 处理效率 工作线程 业务请求 进程 多队列 绑定 相等 并发 | ||
获取所述服务器的所述多队列网卡的网卡队列数;
创建与所述网卡队列数相等数量的进程;
在每个进程中创建一个监听线程和多个工作线程;
将创建的每个监听线程分别与不同的网卡队列绑定。
2.如权利要求1所述的方法,其特征在于,所述服务器具有多硬件核处理器;将创建的每个监听线程分别与不同的网卡队列绑定,包括:
将创建的每个监听线程分别与所述多硬件核处理器中的不同的目标硬件核绑定,将所述多队列网卡中的每个网卡队列分别与所述目标硬件核中不同的硬件核绑定,从而实现创建的每个监听线程分别与不同的网卡队列绑定;其中,所述目标硬件核为所述多硬件核处理器中用于绑定所述监听线程和所述网卡队列的所有硬件核,所述网卡队列的数量等于所述目标硬件核的数量。
3.如权利要求2所述的方法,其特征在于,还包括:将每个进程中创建的工作线程绑定一个硬件核。
4.如权利要求3所述的方法,其特征在于,不同进程中创建的工作线程绑定的硬件核不同。5.如权利要求2‑4任一所述的方法,其特征在于,还包括:当所述服务器的多硬件核处理器的硬件核增加时,针对每个增加的硬件核,在一个进程中创建新的工作线程;
将创建的新的工作线程与新增加的该硬件核绑定。
6.如权利要求1‑4任一所述的方法,其特征在于,还包括:当所述服务器的多队列网卡的网卡队列增加时,针对每个增加的网卡队列创建新进程;
在创建的新进程中创建一个监听线程和多个工作线程;
将在新进程中创建的监听线程与新增加的该网卡队列绑定。
7.如权利要求1‑4任一所述的方法,其特征在于,还包括:当一个进程中创建的工作线程中处于空闲状态的工作线程的数量小于第一预设数量阈值时,在该进程中创建新的工作线程;和/或
当一个进程中创建的工作线程中处于空闲状态的工作线程的数量大于第二预设数量阈值时,在该进程中撤销处于空闲状态的工作线程,且撤销后该进程中创建的工作线程中处于空闲状态的工作线程的数量不大于第二预设数量阈值。
8.一种业务请求处理方法,应用于服务器的多队列网卡,所述多队列网卡的网卡队列中存储来自客户端的业务请求,其特征在于,所述服务器上创建有与所述多队列网卡的网卡队列数相等数量的进程,且每个进程中创建有一个监听线程和多个工作线程,且创建的每个监听线程分别与不同的网卡队列绑定,所述方法包括:所述多队列网卡从自身的网卡队列中获取来自客户端的业务请求;
向与该网卡队列绑定的监听线程发送所述业务请求;
接收与该监听线程属于同一进程的工作线程对所述业务请求进行业务处理后发送的业务处理结果;
向所述客户端返回所述业务处理结果。
9.如权利要求8所述的方法,其特征在于,在从自身的网卡队列中获取来自客户端的业务请求之前,还包括:接收已创建的各监听线程分别发送的业务请求获取消息,所述业务请求获取消息中携带监听线程绑定的网卡队列的队列标识;
确定发送所述业务请求获取消息的监听线程,与所述业务请求获取消息中携带的所述队列标识对应的网卡队列相绑定。
10.如权利要求8所述的方法,其特征在于,所述服务器具有多硬件核处理器,创建的每个监听线程分别与所述多硬件核处理器中的不同的目标硬件核绑定,且所述多队列网卡中的每个网卡队列分别与所述目标硬件核中不同的硬件核绑定,从而实现创建的每个监听线程分别与不同的网卡队列绑定;其中,所述目标硬件核为所述多硬件核处理器中用于绑定所述监听线程和所述网卡队列的所有硬件核,所述网卡队列的数量等于所述目标硬件核的数量;向与该网卡队列绑定的监听线程发送所述业务请求,包括:
向与该网卡队列绑定的目标硬件核上运行的监听线程发送所述业务请求。
11.如权利要求10所述的方法,其特征在于,每个进程中创建的工作线程绑定一个硬件核。12.如权利要求11所述的方法,其特征在于,不同进程中创建的工作线程绑定的硬件核不同。13.一种业务请求处理方法,应用于服务器上创建的监听线程,所述服务器具有多队列网卡,所述多队列网卡的网卡队列中存储来自客户端的业务请求,其特征在于,所述服务器上创建有与所述多队列网卡的网卡队列数相等数量的进程,且每个进程中创建有一个监听线程和多个工作线程,且创建的每个监听线程分别与不同的网卡队列绑定,所述方法包括:监听线程接收所述服务器的多队列网卡发送的从与该监听线程绑定的网卡队列中获取的来自客户端的业务请求;
向与该监听线程属于同一进程的处于空闲状态的工作线程发送所述业务请求,用于指示该工作线程对所述业务请求进行业务处理,并将得到的业务处理结果发送给所述多队列网卡。
14.如权利要求13所述的方法,其特征在于,在接收所述服务器的多队列网卡发送的从与该监听线程绑定的网卡队列中获取的来自客户端的业务请求之前,还包括:向所述多队列网卡发送业务请求获取消息,所述业务请求获取消息中携带该监听线程绑定的网卡队列的队列标识,用于所述多队列网卡确定该监听线程与所述队列标识对应的网卡队列相绑定。
15.如权利要求13所述的方法,其特征在于,所述服务器具有多硬件核处理器,创建的每个监听线程分别与所述多硬件核处理器中的不同的目标硬件核绑定,且所述多队列网卡中的每个网卡队列分别与所述目标硬件核中不同的硬件核绑定,从而实现创建的每个监听线程分别与不同的网卡队列绑定;其中,所述目标硬件核为所述多硬件核处理器中用于绑定所述监听线程和所述网卡队列的所有硬件核,所述网卡队列的数量等于所述目标硬件核的数量;监听线程接收所述服务器的多队列网卡发送的从与该监听线程绑定的网卡队列中获取的来自客户端的业务请求,包括:
监听线程接收所述服务器的多队列网卡发送的从与运行该监听线程的目标硬件核绑定的网卡队列中获取的来自客户端的业务请求。
16.如权利要求15所述的方法,其特征在于,每个进程中创建的工作线程绑定一个硬件核。17.如权利要求16所述的方法,其特征在于,不同进程中创建的工作线程绑定的硬件核不同。18.如权利要求13‑17任一所述的方法,其特征在于,还包括:当该监听线程所属进程中创建的工作线程中处于空闲状态的工作线程的数量小于第一预设数量阈值时,在该
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华为数字技术有限公司,未经杭州华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310733930.3/,转载请声明来源钻瓜专利网。