CN110737530B - 一种提升handle标识解析系统收包能力的方法 - Google Patents
一种提升handle标识解析系统收包能力的方法 Download PDFInfo
- Publication number
- CN110737530B CN110737530B CN201910908694.1A CN201910908694A CN110737530B CN 110737530 B CN110737530 B CN 110737530B CN 201910908694 A CN201910908694 A CN 201910908694A CN 110737530 B CN110737530 B CN 110737530B
- Authority
- CN
- China
- Prior art keywords
- cpu
- analysis system
- thread
- packet receiving
- numa
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种提升HANDLE标识解析系统收包能力的方法,根据当今CPU的NUMA架构、网卡多队列技术和端口重用技术,充分利用现在多核多线程的硬件资源,通过划分线程资源和绑定CPU占用达到提升HANDLE标识解析系统的收包能力。本发明提出了将硬件网卡队列和软件接收线程绑定在CPU同一个NUMA节点上,减少资源切换的损耗,提升软件收包性能的方法。
Description
技术领域
本发明涉及一种提升HANDLE标识解析系统收包能力的方法,涉及通信技术领域。
背景技术
HANDLE标识解析系统由TCP/IP的联合发明人、有“互联网之父”之称的RobertKahn博士发明,核心系统由美国国家创新研究所(CNRI)开发。标识可以理解为用于识别不同物品、实体、物联网对象的名称标记,可以是由数字、字母、符号、文字等以一定的规则组成的字符串。标识的本质是用于识别对象的技术(包含实体对象、虚拟数字对象等),以便各类信息处理系统、资源管理系统、网络管理系统对目标对象进行相关管理和控制。
目前普遍采用的仍然是原生的HANDLE标识解析系统。原生系统的收包功能采用SOCKET收包方法,收包功能默认监听在UDP通道2641端口。当监听端口有数据包时候,收包功能的任务线程获取数据包发往后续流程处理。当监听端口没有数据包时候,收包功能的任务线程处于监听等待状态。由操作系统负责调整收包功能对CPU、内存和网络资源的分配和使用。随着工业互联网络的发展,基于HANDLE标识解析系统的查询需求不断增加,保障大量标识解析查询请求服务将是HANDLE标识解析系统稳定运行的重要指标。
原生的HANDLE标识解析系统收包能力不足,且HANDLE标识解析系统自身没有根据外界硬件和操作系统的环境,提供调优方法,来提升系统收包能力。因此,在HANDLE标识解析系统使用过程中,服务器资源和网络资源没有得到充分的利用。HANDLE标识解析系统提供的标识解析服务受限于收包能力,会导致大量用户同时查询的情况下,超过收包能力的查询请求会被丢弃,部分用户无法获得应答。于是,有必要研究一种可根据服务器资源和网络资源提升收包能力的方法。
发明内容
为了克服上述问题,本发明提出了一种提升HANDLE标识解析系统收包能力的方法,针对现有HANDLE标识解析系统,在大批量查询请求情况下接收请求报文能力不足的问题进行改进。
本发明的技术方案是一种提升HANDLE标识解析系统收包能力的方法,所述方法包括以下步骤:
步骤一,首先在HANDLE标识解析系统中,使用端口扩展重用特性,针对HANDLE标识解析系统通讯通道的监听端口进行扩展;
步骤二,然后关闭LINUX操作系统的自动分配中断功能,在HANDLE标识解析系统中增加网卡队列绑定功能;
步骤三,根据服务器CPU的NUMA节点分布,分配网卡中断和收包线程绑定在同一个NUMA节点的CPU线程上。
进一步的,所述步骤一具体为:
步骤1.1,在HANDLE标识解析系统中开启SO_REUSEPORT支持;
步骤1.2,HANDLE标识解析系统中开启多个收包线程RECEIVE THREAD,每个线程绑定一个SOCKET,所有SOCKET全部监听在HANDLE服务的2641端口。
进一步的,所述步骤二具体为:
步骤2.1,关闭LINUX操作系统的irqbalance服务;
步骤2.2,将网卡队列绑定到指定的CPU线程。
进一步的,所述步骤三具体为:
步骤3.1,根据服务器CPU的NUMA架构节点划分找出NUMA节点的CPU线程号;
步骤3.2,根据步骤一和步骤二,将网卡队列和HANDLE标识解析系统收包线程均匀绑定在同一个NUMA节点上。
与现有技术相比,本发明具有以下优点:
本发明提出了在HANDLE标识解析系统中提升接收查询请求能力的方法。其特征在于,根据当今CPU的NUMA架构、网卡多队列技术和端口重用技术,充分利用现在多核多线程的硬件资源,通过划分线程资源和绑定CPU占用达到提升HANDLE标识解析系统的收包能力。
附图说明
图1为本发明方法步骤一对应的实现方式图;
图2为本发明方法步骤二对应的实现方式图;
图3为本发明方法步骤三对应的实现方式图。
具体实施方式
下面将结合本发明实施例的附图,对本发明中实施例的技术方案进行描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对现有HANDLE标识解析系统,在大批量查询请求情况下接收请求报文能力不足的问题进行改进。
实施例1
首先在HANDLE标识解析系统中,使用端口扩展重用特性,针对HANDLE标识解析系统通讯通道的监听端口进行扩展。达到可以开启多个SOCKET同时监听在一个端口号上。HANDLE标识解析系统设置多个收包任务线程,每个收包任务线程处理一个SOCKET数据的方法,同时进行收包工作,收包线程之间没有对监听端口的资源竞争而浪费的资源损耗。
具体实现方式如图1所示:
1.HANDLE标识解析系统代码中开启SO_REUSEPORT支持。
2.HANDLE标识解析系统代码中使用pthread_create方法开启多个收包线程(RECEIVE THREAD)。
3.HANDLE标识解析系统代码中每个收包线程使用bind方法绑定一个SOCKET,所有SOCKET全部监听在HANDLE服务的2641端口。
然后关闭LINUX操作系统的自动分配中断功能,不允许操作系统在多个CPU线程之间切换分发网卡中断。在HANDLE标识解析系统中增加网卡队列绑定功能,根据配置将网卡队列绑定到指定的CPU线程。达到一个网卡队列的中断永远由固定的一个CPU线程处理,减少资源切换和CPU使用冲突导致的性能损耗。
具体实现方式如图2所示:
1.HANDLE标识解析系统代码中关闭LINUX操作系统的irqbalance服务。
2.HANDLE标识解析系统代码中修改LINUX操作系统的/proc/irq/{number}/smp_affinity队列亲和性文件,将网卡队列绑定到指定的CPU线程。
如今NUMA(Non-Uniform Memory Access)架构的CPU会对CPU线程和内存资源进行划分。首先CPU多个线程被分配为多个NUMA节点。每一个NUMA节点分配一个内存块。对于某个CPU线程,自己归属的NUMA节点对应分配的内存块称为近端内存,非自己归属的其他NUMA节点对应分配的内存块称为远端内存。CPU线程访问近端内存的速度快于远端内存。
因此在HANDLE标识解析系统中,根据服务器CPU的NUMA节点分布,分配网卡中断和收包线程绑定在同一个NUMA节点的CPU线程上,避免NUMA架构CPU造成的远端内存读写速度较慢的问题。
具体实现方式如图3所示:
1.根据服务器CPU的NUMA架构节点划分找出NUMA节点的CPU线程号。本服务器共有16个CPU线程(CPU0至CPU15)。并划分为两个NUMA节点,NUMA节点0包含了CPU0至CPU7,NUMA节点1包含了CPU8至CPU15。
2.将NUMA节点0中的CPU线程提供给操作系统和其他工作任务使用。
3.将NUMA节点1中的CPU线程提供给网卡队列和HANDLE标识解析系统收包工作任务使用。
根据图1和图2的实现方法将网卡队列和HANDLE标识解析系统收包线程均匀绑定在NUMA节点1上。
根据上面描述,使用本方法的HANDLE标识解析系统架构改变为:扩展HANDLE标识解析系统接收查询请求包功能为多线程收包,将服务器上一个NUMA节点的CPU与网卡收包队列和HANDLE标识解析系统所有收包线程绑定,其他NUMA节点为操作系统和其他进程以及HANDLE标识解析系统其他线程绑定。这样确保了与HANDLE标识解析系统接收查询请求的事件全部由同一个NUMA节点的CPU处理,内存资源全部由此NUMA节点的近端内存提供。避免了跨NUMA节点的CPU资源切换和远端内存的读写造成的资源损耗和较大时延。因此,使用本方法之后,HANDLE标识解析系统接收查询请求的能力获得较大提升。
本发明提出了在HANDLE标识解析系统中提升接收查询请求能力的方法。其特征在于,根据当今CPU的NUMA架构、网卡多队列技术和端口重用技术,充分利用现在多核多线程的硬件资源,通过划分线程资源和绑定CPU占用达到提升HANDLE标识解析系统的收包能力。
本发明提出了将硬件网卡队列和软件接收线程绑定在CPU同一个NUMA节点上,减少资源切换的损耗,提升软件收包性能的方法。
本发明创造所述的应用方式可根据实际情况进行调整,并不是用来限制发明创造。以上对本发明所提供的技术方案进行了详细介绍;本实施例的说明只是用于帮助理解本发明的方法。本发明所述的应用方式可根据实际情况进行调整,并不是用来限制本发明。
Claims (4)
1.一种提升HANDLE标识解析系统收包能力的方法,其特征在于,所述方法包括以下步骤:
步骤一,首先在HANDLE标识解析系统中,使用端口扩展重用特性,针对HANDLE标识解析系统通讯通道的监听端口进行扩展;
步骤二,然后关闭LINUX操作系统的自动分配中断功能,在HANDLE标识解析系统中增加网卡队列绑定功能;
步骤三,基于NUMA架构CPU对内存资源进行划分,每一个CPU线程所归属的NUMA节点分配一个内存块称为近端内存,其他NUMA节点对应分配的内存块称为远端内存;根据服务器CPU的NUMA节点分布,分配网卡中断和收包线程绑定在同一个NUMA节点的CPU线程上。
2.根据权利要求1所述的一种提升HANDLE标识解析系统收包能力的方法,其特征在于,所述步骤一具体为:
步骤1.1,在HANDLE标识解析系统中开启SO_REUSEPORT支持;
步骤1.2,HANDLE标识解析系统中开启多个收包线程RECEIVE THREAD,每个线程绑定一个SOCKET,所有SOCKET全部监听在HANDLE服务的2641端口。
3.根据权利要求1所述的一种提升HANDLE标识解析系统收包能力的方法,其特征在于,所述步骤二具体为:
步骤2.1,关闭LINUX操作系统的irqbalance服务;
步骤2.2,将网卡队列绑定到指定的CPU线程。
4.根据权利要求1所述的一种提升HANDLE标识解析系统收包能力的方法,其特征在于,所述步骤三具体为:
步骤3.1,根据服务器CPU的NUMA架构节点划分找出NUMA节点的CPU线程号;本服务器共有16个CPU线程,划分为两个NUMA节点,NUMA节点0包含了前8个CPU线程,NUMA节点1包含后8个CPU线程;
步骤3.2,将NUMA节点0中的CPU线程用于提供给操作系统和其他工作任务使用;
步骤3.3,将NUMA节点1中的CPU线程用于提供给网卡队列和HANDLE标识解析系统收包工作任务使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908694.1A CN110737530B (zh) | 2019-09-25 | 2019-09-25 | 一种提升handle标识解析系统收包能力的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908694.1A CN110737530B (zh) | 2019-09-25 | 2019-09-25 | 一种提升handle标识解析系统收包能力的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737530A CN110737530A (zh) | 2020-01-31 |
CN110737530B true CN110737530B (zh) | 2023-06-16 |
Family
ID=69269543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910908694.1A Active CN110737530B (zh) | 2019-09-25 | 2019-09-25 | 一种提升handle标识解析系统收包能力的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737530B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667318A (zh) * | 2020-12-31 | 2021-04-16 | 京信网络系统股份有限公司 | 逻辑核的绑定方法、装置、设备及存储介质 |
CN113176950B (zh) * | 2021-04-09 | 2023-10-27 | 杭州迪普科技股份有限公司 | 报文处理方法、装置、设备及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491145A (zh) * | 2013-09-09 | 2014-01-01 | 中国科学院计算机网络信息中心 | 一种物联网异构标识解析方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117270A (zh) * | 2018-08-01 | 2019-01-01 | 湖北微源卓越科技有限公司 | 提高网络数据包处理效率的方法 |
-
2019
- 2019-09-25 CN CN201910908694.1A patent/CN110737530B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491145A (zh) * | 2013-09-09 | 2014-01-01 | 中国科学院计算机网络信息中心 | 一种物联网异构标识解析方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110737530A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5606719A (en) | Temporary state preservation for a distributed file service | |
CN113485822A (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
CN111431757A (zh) | 虚拟网络的流量采集方法及装置 | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
US20160269479A1 (en) | Cloud virtual server scheduling method and apparatus | |
CN110737530B (zh) | 一种提升handle标识解析系统收包能力的方法 | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
US20140068165A1 (en) | Splitting a real-time thread between the user and kernel space | |
CN115686875A (zh) | 用于在多个进程之间传输数据的方法、设备和程序产品 | |
US11947534B2 (en) | Connection pools for parallel processing applications accessing distributed databases | |
CN110868323B (zh) | 一种带宽控制方法、装置、设备及介质 | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
CN115858184A (zh) | 一种rdma内存管理方法、装置、设备及介质 | |
CN115412502B (zh) | 一种网络端口扩展和报文快速均衡处理方法 | |
US20220269411A1 (en) | Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks | |
CN115794317A (zh) | 一种基于虚拟机的处理方法、装置、设备及介质 | |
CN112422457B (zh) | 报文处理方法、装置和计算机存储介质 | |
CN112822299B (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
CN111131078B (zh) | 报文散列方法、装置、fpga模组及处理器模组 | |
CN111245794B (zh) | 数据传输方法和装置 | |
US10678455B2 (en) | System and method for increased efficiency thin provisioning with respect to garbage collection | |
CN113535370A (zh) | 一种实现负载均衡的多rdma网卡虚拟化的方法、设备 | |
CN111669355A (zh) | 一种批量处理nginx网络隔离空间的方法及nginx服务器 | |
CN114584625B (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 |