CN105938438B - 一种数据报文处理方法及装置 - Google Patents

一种数据报文处理方法及装置 Download PDF

Info

Publication number
CN105938438B
CN105938438B CN201510827135.XA CN201510827135A CN105938438B CN 105938438 B CN105938438 B CN 105938438B CN 201510827135 A CN201510827135 A CN 201510827135A CN 105938438 B CN105938438 B CN 105938438B
Authority
CN
China
Prior art keywords
data message
processing
unprocessed
unprocessed data
processed
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
Application number
CN201510827135.XA
Other languages
English (en)
Other versions
CN105938438A (zh
Inventor
李喻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201510827135.XA priority Critical patent/CN105938438B/zh
Publication of CN105938438A publication Critical patent/CN105938438A/zh
Application granted granted Critical
Publication of CN105938438B publication Critical patent/CN105938438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种数据报文处理方法及装置,该方法包括:执行如下数据报文处理操作:判断是否存在未处理数据报文;当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回执行数据报文处理操作;当不存在所述未处理数据报文时,返回执行数据报文处理操作。本申请通过循环处理数据报文,不进行上下文切换,提高网络设备的处理性能。

Description

一种数据报文处理方法及装置
技术领域
本申请涉及网络通信技术领域,尤其涉及一种数据报文处理方法及装置。
背景技术
网络设备在逻辑上分为管理平面、控制平面以及数据平面。在采用多核处理器的网络设备中,各平面对应进程分别运行在独立的处理核上。为了进一步提高数据平面的处理速度,通常在每一个数据核上只运行一个数据线程,以降低上下文切换对处理性能的影响。但是,数据核中还存在一个操作系统分配的空闲线程,该空闲线程的存在仍会导致上下文切换,影响网络设备的处理性能。
发明内容
有鉴于此,本申请提供一种数据报文处理方法及装置。
具体地,本申请是通过如下技术方案实现的:
本申请提供一种数据报文处理方法,该方法包括:
执行如下数据报文处理操作:判断是否存在未处理数据报文;当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回执行数据报文处理操作;当不存在所述未处理数据报文时,返回执行数据报文处理操作。
本申请还提供一种数据报文处理装置,该装置包括:
判断单元,用于判断是否存在未处理数据报文;
处理单元,用于当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回判断单元;当不存在所述未处理数据报文时,返回判断单元。
由以上描述可以看出,本申请通过循环处理数据报文,不进行上下文切换,提高网络设备的吞吐量和运行效率。
附图说明
图1是本申请一示例性实施例示出的一种数据报文处理方法流程图;
图2是本申请一示例性实施例示出的一种数据报文处理装置所在设备的基础硬件结构示意图;
图3是本申请一示例性实施例示出的一种数据报文处理装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
网络设备在逻辑上可分为管理平面、控制平面以及数据平面。其中,管理平面负责网络设备的配置管理;控制平面负责网络协议的运行以及为数据平面提供数据处理和转发所需的各种网络信息和转发表项;数据平面负责数据报文的处理和转发。
网络设备普遍采用多核处理器处理网络数据,各平面进程分别运行在不同的处理核上。为了进一步提高数据平面的处理速度,现有技术方案在每一个处理核上只运行一个数据线程,以降低上下文切换对处理性能的影响。但是,处理核中还存在一个操作系统分配的空闲线程,该空闲线程的存在仍会导致线程的上下文切换,影响网络设备的处理性能。
针对上述问题,本申请实施例提出一种数据报文处理方法,该方法中的数据线程循环处理数据报文,不进行上下文切换,从而提高网络设备的处理性能。
参见图1,为本申请数据报文处理方法的一个实施例流程图,该实施例对数据报文处理过程进行描述。
步骤101,判断是否存在未处理数据报文。
步骤102,当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回步骤101。
步骤103,当不存在所述未处理数据报文时,返回步骤101。
从步骤101至步骤103可以看出,本申请实施例的数据线程(步骤101~步骤103)处于循环处理状态,即有未处理的数据报文时,处理数据报文(例如,转发数据报文),并在处理完后,返回判断是否还有未处理的数据报文;没有未处理的数据报文时,循环等待,直到有新的数据报文出现再处理数据报文。
数据线程在上述处理过程中,不会检测操作系统分配的时间片(对于分时操作系统,每一个线程都有自己的时间片)是否用完,不会主动让出处理核给空闲线程(用于填充处理核的运行周期,不处理实际业务);同时,操作系统也不会主动控制处理核的线程切换,因此,本申请实施例中不存在上下文切换的问题,从而提高了网络设备的处理性能。
虽然本申请实施例不进行上下文切换,但是操作系统中存在一些需要依赖上下文切换而运行的机制,例如,操作系统中的RCU(Read-Copy Update,读-拷贝修改)锁,需要在所有处理核完成一次上下文切换后执行特定处理。因此,本申请实施例采取伪上下文切换,具体过程如下:
获取预设的执行次数阈值。本申请实施例预先设置执行次数阈值,该执行次数阈值为数据线程(步骤101~步骤103)循环执行次数的上限。
统计执行数据报文处理操作的次数,即每执行一次数据报文处理操作(数据线程)次数加一。当统计的执行次数大于或等于预设的执行次数阈值时,更新处理核的切换状态,也就是说,数据线程并不真正让出处理核,只是更新处理核的切换状态,以保证操作系统其它机制的正常运行。在切换状态更新后,将执行次数清零,以便重新统计,周期性更新切换状态。
此外,由于本申请实施例中的数据线程始终处于循环状态,操作系统无法感知处理核是否健康运行,也就无法在处理核故障(例如,死锁)时,通过看门狗线程重启系统以恢复业务处理。对此,本申请实施例在每一次执行数据报文处理操作时,统计活动计数,并在接收到看门狗线程的读取命令时,将统计的活动计数发送给看门狗线程,以使看门狗线程根据活动计数判断当前处理核是否健康运行。活动计数变化,说明处理核运行正常,没有出现死锁等故障。
由上述描述可以看出,本申请通过循环处理数据报文,不进行上下文切换,从而提高网络设备的处理性能。
与前述数据报文处理方法的实施例相对应,本申请还提供了数据报文处理装置的实施例。
本申请数据报文处理装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图2所示,为本申请数据报文处理装置所在设备的一种硬件结构图,除了图2所示的处理器、网络接口、以及存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图3,为本申请一个实施例中的数据报文处理装置的结构示意图。该数据报文处理装置包括判断单元301和处理单元302,其中:
判断单元301,用于判断是否存在未处理数据报文;
处理单元302,用于当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回判断单元301;当不存在所述未处理数据报文时,返回判断单元301。
进一步地,所述装置还包括:
更新单元,用于获取预设的执行次数阈值;统计执行数据报文处理操作的次数;当统计的执行次数大于或等于预设的执行次数阈值时,更新处理核的切换状态。
进一步地,所述装置还包括:
健康单元,用于在每一次执行数据报文处理操作时,统计活动计数;接收看门狗线程的读取命令;根据所述读取命令将所述活动计数发送给所述看门狗线程,以使所述看门狗线程根据所述活动计数判断当前处理核是否健康运行。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (4)

1.一种数据报文处理方法,其特征在于,该方法包括:
执行如下数据报文处理操作:判断是否存在未处理数据报文;当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回执行数据报文处理操作,以等待新的待处理数据报文;当不存在所述未处理数据报文时,返回执行数据报文处理操作,以等待新的待处理数据报文;
获取预设的执行次数阈值;
统计执行数据报文处理操作的次数;
当统计的执行次数大于或等于预设的执行次数阈值时,更新处理核的切换状态。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在每一次执行数据报文处理操作时,统计活动计数;
接收看门狗线程的读取命令;
根据所述读取命令将所述活动计数发送给所述看门狗线程,以使所述看门狗线程根据所述活动计数判断当前处理核是否健康运行。
3.一种数据报文处理装置,其特征在于,该装置包括:
判断单元,用于判断是否存在未处理数据报文;
处理单元,用于当存在所述未处理数据报文时,处理所述未处理数据报文,并在处理完后,返回判断单元,以等待新的待处理数据报文;当不存在所述未处理数据报文时,返回判断单元,以等待新的待处理数据报文;
更新单元,用于获取预设的执行次数阈值;统计执行数据报文处理操作的次数;当统计的执行次数大于或等于预设的执行次数阈值时,更新处理核的切换状态。
4.如权利要求3所述的装置,其特征在于,所述装置还包括:
健康单元,用于在每一次执行数据报文处理操作时,统计活动计数;接收看门狗线程的读取命令;根据所述读取命令将所述活动计数发送给所述看门狗线程,以使所述看门狗线程根据所述活动计数判断当前处理核是否健康运行。
CN201510827135.XA 2015-11-24 2015-11-24 一种数据报文处理方法及装置 Active CN105938438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510827135.XA CN105938438B (zh) 2015-11-24 2015-11-24 一种数据报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510827135.XA CN105938438B (zh) 2015-11-24 2015-11-24 一种数据报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN105938438A CN105938438A (zh) 2016-09-14
CN105938438B true CN105938438B (zh) 2022-07-01

Family

ID=57153058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510827135.XA Active CN105938438B (zh) 2015-11-24 2015-11-24 一种数据报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN105938438B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107341066B (zh) * 2016-11-30 2020-07-07 杭州迪普科技股份有限公司 一种线程空转频率基准值的获取方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640421B1 (en) * 2006-07-28 2009-12-29 Nvidia Corporation Method and system for determining context switch state
CN102073547A (zh) * 2010-12-17 2011-05-25 国家计算机网络与信息安全管理中心 一种多路服务器多缓冲区并行收包的性能优化方法
CN104205042A (zh) * 2012-03-30 2014-12-10 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299470B2 (en) * 2001-09-13 2007-11-20 International Business Machines Corporation Method and system for regulating communication traffic using a limiter thread
CN101031092A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 一种语音报文的处理方法和报文处理器
CN101175033B (zh) * 2007-11-27 2010-06-16 中兴通讯股份有限公司 报文保序方法及其装置
US8861434B2 (en) * 2010-11-29 2014-10-14 Alcatel Lucent Method and system for improved multi-cell support on a single modem board
CN102546617A (zh) * 2011-12-29 2012-07-04 汉柏科技有限公司 多核多线程系统中IPSec转发的方法
CN102970118B (zh) * 2012-12-04 2015-06-17 福建星网锐捷网络有限公司 一种tcp ack报文处理方法、装置及无线网络设备
CN104679596A (zh) * 2013-12-02 2015-06-03 航天信息股份有限公司 一种提高服务器端并发性能的消息处理方法及其系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640421B1 (en) * 2006-07-28 2009-12-29 Nvidia Corporation Method and system for determining context switch state
CN102073547A (zh) * 2010-12-17 2011-05-25 国家计算机网络与信息安全管理中心 一种多路服务器多缓冲区并行收包的性能优化方法
CN104205042A (zh) * 2012-03-30 2014-12-10 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制

Also Published As

Publication number Publication date
CN105938438A (zh) 2016-09-14

Similar Documents

Publication Publication Date Title
US10270644B1 (en) Framework for intelligent automated operations for network, service and customer experience management
CN107451012B (zh) 一种数据备份方法及流计算系统
US10268504B2 (en) Interrupt information processing method, virtual machine monitor, and interrupt controller
KR101619078B1 (ko) 원격통신 네트워크들 내에서 셀 복구를 위한 방법 및 시스템
EP3142011A1 (en) Anomaly recovery method for virtual machine in distributed environment
EP3231135A1 (en) Alarm correlation in network function virtualization environment
CN106502814B (zh) 一种记录pcie设备错误信息的方法及装置
CN104021069A (zh) 基于分布式虚拟机系统的软件性能测试的管理方法和系统
WO2017215441A1 (zh) 一种分布式系统中单板配置自恢复方法及装置
US20160234108A1 (en) Selective data collection using a management system
US9830263B1 (en) Cache consistency
CN109828945B (zh) 一种业务报文处理方法及系统
US20120233245A1 (en) Voip communication system and method for registering client devices with same
US11928529B2 (en) High-throughput BPF map manipulations with uprobes
CN111046007B (zh) 管理存储系统的方法、装置和计算机程序产品
CN105938438B (zh) 一种数据报文处理方法及装置
US10282245B1 (en) Root cause detection and monitoring for storage systems
US11537391B2 (en) Software change analysis and automated remediation
US10642713B1 (en) Object-based monitoring and remediation system
CN111694645B (zh) 分布式任务调度系统中任务处理方法及相关装置
US10223189B1 (en) Root cause detection and monitoring for storage systems
CN110941503A (zh) 故障处理方法、装置及电子设备
US10474955B1 (en) Network device management
US9509780B2 (en) Information processing system and control method of information processing system
CN109361620B (zh) 一种数据发送的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant after: Hangzhou Dipu Polytron Technologies Inc

Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant before: Hangzhou Dipu Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant