CN102098215B - 一种多应用收包的优先级管理方法 - Google Patents

一种多应用收包的优先级管理方法 Download PDF

Info

Publication number
CN102098215B
CN102098215B CN201010598519.6A CN201010598519A CN102098215B CN 102098215 B CN102098215 B CN 102098215B CN 201010598519 A CN201010598519 A CN 201010598519A CN 102098215 B CN102098215 B CN 102098215B
Authority
CN
China
Prior art keywords
application
message
software
hardware
pci
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
CN201010598519.6A
Other languages
English (en)
Other versions
CN102098215A (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.)
Dawning Network Technology Co ltd
Original Assignee
Dawning Information Industry 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 Dawning Information Industry Co Ltd filed Critical Dawning Information Industry Co Ltd
Priority to CN201010598519.6A priority Critical patent/CN102098215B/zh
Publication of CN102098215A publication Critical patent/CN102098215A/zh
Application granted granted Critical
Publication of CN102098215B publication Critical patent/CN102098215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种多应用收包的优先级管理方法。硬件网卡的PCI控制器向主机注册PCI空间,驱动软件申请报文缓冲区,构造驱动信息结构,驱动软件定时计算CPU负载,并记录到驱动信息结构中,接口库把报文缓冲区、PCI空间寄存器、驱动信息数据结构映射到每个应用的进程空间,并配置应用优先级,硬件收到报文后把报文放入缓冲区,通知应用软件收包,应用软件收到报文后根据自己的优先级和当前cpu负载情况,决定是否处理该报文。本发明根据当前CPU负载情况,动态丢弃报文,实现多应用发包的优先级管理。

Description

一种多应用收包的优先级管理方法
技术领域
本发明涉及网络数据处理领域,具体涉及一种多应用收包的优先级管理方法。
背景技术
在网络数据分析系统中,往往在一个硬件平台上运行多个应用,也就是说需要多个应用软件从同一个网卡接收报文。然而,在有些系统中,多个应用是有优先级的,当系统CPU计算资源紧张时,低优先级的应用需要主动丢弃一部分报文,把CPU计算资源让给高优先级的应用。
目前经常采用的技术方案为保证系统性能,应用不能在每次收包时都去计算当前的CPU资源占用情况,所以一般处理方法是给不同优先级应用一个预设的报文采样比例,比如,配置某低优先级应用的采样比例是十分之一,则该应用每收到10个包,从中只处理1个包,剩下的9个包丢弃。
在某些网络上,网络流量随时间波动很大,应用的负载和CPU的资源占用也波动很大,应用在固定配置的采样比例下,在高流量的时间段内,处理流量可能很大,造成CPU过载,在低流量的时间段内,处理流量可能很少,造成CPU空闲计算资源的浪费。
发明内容
本发明的目的是提供一种多应用发包的优先级管理方法,实现可充分利用CPU资源的多应用收包的优先级管理。
一种多应用收包的优先级管理方法,采用软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件,步骤如下:
A、硬件网卡的PCI控制器向主机注册PCI空间;
B、驱动软件申请一片物理地址连续的内存,作为接收报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和所有应用软件的读指针为初始值0;
C、驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU占用情况,写入驱动信息数据结构中;
D、硬件每次从网络接收到一个报文后,把报文传输到软件的报文缓冲区中,并根据报文长度,修改PCI空间的写指针;
E、接口库中的API接口被一个应用调用时,首先把内核空间的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后根据该应用是第几个应用,把PCI空间的第几个软件读指针寄存器作为该应用的读指针寄存器使用;接口库打开设备时,还把驱动信息结构映射出来,从中可以看到当前的CPU负载情况;
F、应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值;
G、应用软件循环收包,每次收包都要查看接口库中映射出的PCI空间寄存器,判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,则读取出来,并移动读指针;如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询;
H、每个应用在使用接口库返回的报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,则主动丢包。
本发明的一种优选技术方案在于:所述PCI空括包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
本发明不使用固定的采样比,而是根据当前CPU负载情况,动态丢弃报文,避免CPU资源的浪费。
附图说明
图1是本发明的结构图
具体实施方式
本发明是一个软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件。
驱动软件负责分配接收报文使用的缓冲区,需要在内核中申请一整片物理地址连续的内存,作为接收报文的缓冲区。
驱动软件还申请一块内存区域,保存驱动信息数据结构,其中包括当前的cpu负载。并使用定时器函数,每隔一个时间片(比如1秒)计算一下当前cpu的负载情况,写入驱动信息的数据结构中。
硬件网卡负责从网络接收报文,并把报文传输到主机内存的报文缓冲区中,通过写pci空间的寄存器,通知软件有新报文到达。pci空间寄存器主要有:报文缓冲区地址、长度、软件从缓冲区读报文的读指针、硬件向缓冲区写报文的写指针,其中读指针有多个,每个应用有自己的读指针。
接口库软件在每个应用调用接收报文的API接口时,把报文缓冲区和pci空间映射到该应用的用户空间,并设置每个应用的优先级信息,每个应用轮询pci空间中该应用的缓冲区读写指针信息,查看是否有新的报文到达,并根据优先级决定收取还是丢弃报文。
该发明的实现方法和过程如下:
(1)硬件网卡的pci控制器向主机注册pci空间,其中定义接收报文相关的寄存器地址,包括报文缓冲区地址、长度、软件从缓冲区读报文的读指针、硬件向缓冲区写报文的写指针,根据预设的最大应用软件个数,配置多个读指针寄存器。
(2)驱动软件申请报文缓冲区。
驱动软件申请一片物理地址连续的内存,作为接收报文的缓冲区,把缓冲区的物理地址和长度写入pci空间的对应寄存器,并设置硬件的写指针和所有应用软件的读指针为初始值0。
(3)驱动软件定时计算cpu负载
驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前cpu负载,驱动使用一个定时器函数,每隔一个时间片计算一下cpu专用情况,写入驱动信息数据结构中。
(4)硬件接收报文。
硬件每次从网络接收到一个报文后,把报文传输到软件的报文缓冲区中,并根据报文长度,修改pci空间的写指针。
(5)接口库映射报文缓冲区和pci空间寄存器,和驱动信息数据结构。
接口库中的API接口被一个应用调用时,首先把内核空间的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后根据该应用是第几个应用,把pci空间的第几个软件读指针寄存器作为该应用的读指针寄存器使用。
接口库打开设备时,还把驱动信息结构映射出来,从中可以看到当前的cpu负载情况。
(6)接口库配置应用优先级
应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个cpu负载情况的阈值,比如高优先级设置为80%,表示cpu负载超过80%丢包,低优先级设置为20%,表示cpu负载超过20%丢包。
(7)应用软件接收报文。
应用软件循环收包,每次收包都要查看接口库中映射出的pci空间寄存器,判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,则读取出来,并移动读指针。如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。
每个应用在使用接口库返回的报文之前,先把驱动信息结构中的当前cpu负载和该应用优先级确定的cpu负载阈值相比较,如果当前cpu负载已经超过了该应用的阈值,比如应用优先级的阈值是50%,当前驱动信息中显示的cpu负载是60%,则主动丢包。

Claims (2)

1.一种多应用收包的优先级管理方法,其特征在于:采用软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件,步骤如下:
A、硬件网卡的PCI控制器向主机注册PCI空间;
B、驱动软件申请一片物理地址连续的内存,作为接收报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和所有应用软件的读指针为初始值0:
C、驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU占用情况,写入驱动信息数据结构中;
D、硬件每次从网络接收到一个报文后,把报文传输到软件的报文缓冲区中,并根据报文长度,修改PCI空间的写指针;
E、接口库中的API接口被一个应用调用时,首先把内核空间的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后根据该应用是第几个应用,把PCI空间的第几个软件读指针寄存器作为该应用的读指针寄存器使用;接口库打开设备时,还把驱动信息结构映射出来,从中可以看到当前的CPU负载情况;
F、应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值;
G、应用软件循环收包,每次收包都要查看接口库中映射出的PCI空间寄存器,判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,则读取出来,并移动读指针;如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询;
H、每个应用在使用接口库返回的报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,则主动丢包。
2.如权利要求1所述一种多应用收包的优先级管理方法,其特征在于:所述PCI空间包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
CN201010598519.6A 2010-12-17 2010-12-17 一种多应用收包的优先级管理方法 Active CN102098215B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010598519.6A CN102098215B (zh) 2010-12-17 2010-12-17 一种多应用收包的优先级管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010598519.6A CN102098215B (zh) 2010-12-17 2010-12-17 一种多应用收包的优先级管理方法

Publications (2)

Publication Number Publication Date
CN102098215A CN102098215A (zh) 2011-06-15
CN102098215B true CN102098215B (zh) 2014-03-12

Family

ID=44131087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010598519.6A Active CN102098215B (zh) 2010-12-17 2010-12-17 一种多应用收包的优先级管理方法

Country Status (1)

Country Link
CN (1) CN102098215B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404223B (zh) * 2011-11-28 2015-03-25 曙光信息产业(北京)有限公司 一种多应用收包细粒度优先级控制系统和方法
CN102420751A (zh) * 2011-11-28 2012-04-18 曙光信息产业(北京)有限公司 一种报文采样系统的负载判断系统和方法
CN102497430B (zh) * 2011-12-13 2014-12-03 曙光信息产业(北京)有限公司 一种分流设备实现系统和方法
CN105744504A (zh) * 2016-03-31 2016-07-06 中国联合网络通信集团有限公司 终端与卡应用的通信方法和终端
CN116233036B (zh) * 2023-03-14 2023-08-25 上海耀芯电子科技有限公司 一种dma传输控制方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725732A (zh) * 2005-06-08 2006-01-25 杭州华为三康技术有限公司 一种报文限速方法
US7206282B1 (en) * 2001-05-29 2007-04-17 F5 Networks, Inc. Method and apparatus to balance flow loads in a multipurpose networking device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801129B2 (en) * 2006-04-27 2010-09-21 Alcatel-Lucent Usa Inc. Method and apparatus for SIP message prioritization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206282B1 (en) * 2001-05-29 2007-04-17 F5 Networks, Inc. Method and apparatus to balance flow loads in a multipurpose networking device
CN1725732A (zh) * 2005-06-08 2006-01-25 杭州华为三康技术有限公司 一种报文限速方法

Also Published As

Publication number Publication date
CN102098215A (zh) 2011-06-15

Similar Documents

Publication Publication Date Title
EP2647163B1 (en) A method and system for improved multi-cell support on a single modem board
CN102006241B (zh) 一种多个应用共享一个缓冲区的报文接收方法
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
EP2633404B1 (en) Lock-less buffer management scheme for telecommunication network applications
JP5925846B2 (ja) 待ち時間低減パケット処理を備えたソケット管理
US20200059402A1 (en) Improving performance of multi-processor computer systems
CN102098215B (zh) 一种多应用收包的优先级管理方法
CN106104485A (zh) 针对多进程应用的动态资源管理
US20110161965A1 (en) Job allocation method and apparatus for a multi-core processor
US20220066699A1 (en) Data read/write method and apparatus, and exchange chip and storage medium
CN102055671B (zh) 一种多应用发包的优先级管理方法
CN113127170A (zh) 用于在联系人中心系统中配对的方法、系统和制品
CN108304272B (zh) 一种数据io请求的处理方法及装置
KR20180089273A (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
US20130227164A1 (en) Method and system for distributed layer seven traffic shaping and scheduling
US11671382B2 (en) Technologies for coordinating access to data packets in a memory
US20110153825A1 (en) Server resource allocation
CN114020529A (zh) 一种流表数据的备份方法、装置、网络设备和存储介质
CN102170401B (zh) 一种数据的处理方法和设备
CN108173909A (zh) 数据同步方法、移动终端及计算机可读存储介质
CN109905486B (zh) 一种应用程序识别展示方法和装置
WO2017070869A1 (zh) 一种内存配置方法、装置及系统
CN107911317B (zh) 一种报文调度方法及装置
CN107273082B (zh) 图像的显示方法、装置、终端及存储介质
CN110868364A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221215

Address after: 430040 NO.666, Wuhuan Avenue, linkonggang economic and Technological Development Zone, Wuhan City, Hubei Province (10)

Patentee after: Dawning Network Technology Co.,Ltd.

Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street.

Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd.