CN102055671B - 一种多应用发包的优先级管理方法 - Google Patents
一种多应用发包的优先级管理方法 Download PDFInfo
- Publication number
- CN102055671B CN102055671B CN201010597757.5A CN201010597757A CN102055671B CN 102055671 B CN102055671 B CN 102055671B CN 201010597757 A CN201010597757 A CN 201010597757A CN 102055671 B CN102055671 B CN 102055671B
- Authority
- CN
- China
- Prior art keywords
- application
- message
- software
- hardware
- read
- 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
Abstract
本发明提供了一种多应用发包的优先级管理方法。硬件网卡的PCI控制器向主机注册PCI空间,驱动软件申请报文缓冲区,构造驱动信息结构,驱动软件定时计算CPU负载,并记录到驱动信息结构中,接口库把报文缓冲区、PCI空间寄存器、驱动信息数据结构映射到每个应用的进程空间,并配置应用优先级,应用软件发包时,把自己的应用优先级和当前cpu负载比较,如果超过负载阈值,则主动丢包,否则由硬件把报文发送出去。本发明根据当前CPU负载情况,动态丢弃报文,实现多应用发包的优先级管理。
Description
技术领域
本发明涉及网络数据处理领域,具体涉及一种多应用发包的优先级管理方法。
背景技术
在网络数据分析系统中,往往在一个硬件平台上运行多个应用,也就是说需要多个应用软件从同一个网卡向外发送报文。然而,在有些系统中,多个应用是有优先级的,当系统CPU计算资源紧张时,低优先级的应用需要主动丢弃一部分报文,把CPU计算资源让给高优先级的应用。
目前经常采用的技术方案是当系统资源紧张时,一般多应用发包采取随机丢包的方式,每个应用都可能随机丢弃一些报文。
但随机丢包的方式,不能支持应用的优先级,不能保证在CPU负载高时,低优先级的应用把计算资源让给高优先级应用。
发明内容
本发明的目的是提供一种多应用发包的优先级管理方法,根据优先级和当前CPU负载情况,让应用动态主动丢包,实现多应用发包的优先级管理。
一种多应用发包的优先级管理方法,采用软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件,步骤如下:
A、硬件网卡的PCI控制器向主机注册PCI空间;
B、驱动软件为每一个应用申请一片物理地址连续的内存,作为发送报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和应用软件的读指针为初始值0;
C、驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU占用情况,写入驱动信息数据结构中;
D、接口库中的API接口被一个应用调用时,首先把内核空间的该应用的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后把驱动信息结构映射出来,查看当前的CPU负载情况;
E、应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值;
F、每个应用在发送报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,则主动丢包;如果可以发包,应用就把报文写入报文缓冲区,根据报文长度,修改PCI空间的写指针;
G、硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,需要发送,则从主机内存的报文缓冲区中读出报文,向网络发送出去,并移动读指针;如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。
本发明的一种优选技术方案在于:A步骤中所述PCI空间包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
本发明根据当前CPU负载情况,动态丢弃报文,实现多应用发包的优先级管理。
附图说明
图1是本发明的结构图
具体实施方式
本发明是一个软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件。
驱动软件负责分配发送报文使用的缓冲区,需要为每一个应用,在内核中申请一整片物理地址连续的内存,作为该应用发送报文的缓冲区。
驱动软件还申请一块内存区域,保存驱动信息数据结构,其中包括当前的CPU负载。并使用定时器函数,每隔一个时间片(比如1秒)计算一下当前CPU的负载情况,写入驱动信息的数据结构中。
硬件为每一个应用,申请一套PCI空间寄存器,主要有:报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针。硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息,查看是否有新的报文需要发送,如果有,则从主机内存的报文缓冲区中读出报文,向网络发送出去。
接口库软件在每个应用调用发送报文的API接口时,把报文缓冲区和PCI空间映射到该应用的用户空间,并设置每个应用的优先级信息。
应用软件调用接口库API发送报文时,接口库根据该应用的优先级和当前CPU负载情况,决定是否丢弃报文,如果可以发送,就把报文写入发送缓冲区,通过写PCI空间的寄存器通知硬件。
实现方法和过程如下:
(1)硬件网卡的PCI控制器向主机注册PCI空间,其中定义发送报文相关的寄存器地址,包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
(2)驱动软件申请报文缓冲区
驱动软件为每一个应用申请一片物理地址连续的内存,作为发送报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和应用软件的读指针为初始值0。
(3)驱动软件定时计算CPU负载
驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU专用情况,写入驱动信息数据结构中。
(4)接口库映射报文缓冲区、PCI空间寄存器、驱动信息数据结构
接口库中的API接口被一个应用调用时,首先把内核空间的该应用的缓冲区和硬件的PCI空间映射到该应用的用户空间,还把驱动信息结构映射处理,从中可以看到当前的CPU负载情况。
(5)接口库配置应用优先级
应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值,比如高优先级设置为80%,表示CPU负载超过80%丢包,低优先级设置为20%,表示CPU负载超过20%丢包。
(6)应用软件发包
每个应用在发送报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,比如应用优先级的阈值是50%,当前驱动信息中显示的CPU负载是60%,则主动丢包。如果可以发包,应用就把报文写入报文缓冲区,根据报文长度,修改PCI空间的写指针。
(7)硬件发包
硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,需要发送,则从主机内存的报文缓冲区中读出报文,向网络发送出去,并移动读指针。如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。
Claims (2)
1.一种多应用发包的优先级管理方法,其特征在于:采用软硬件结合的系统,包括硬件网卡、驱动软件、接口库软件,步骤如下:
A、硬件网卡的PCI控制器向主机注册PCI空间;
B、驱动软件为每一个应用申请一片物理地址连续的内存,作为发送报文的缓冲区,把缓冲区的物理地址和长度写入PCI空间的对应寄存器,并设置硬件的写指针和应用软件的读指针为初始值0;
C、驱动软件申请一块内存区域作为驱动信息数据结构,其中包含当前CPU负载,驱动使用一个定时器函数,每隔一个时间片计算一下CPU占用情况,写入驱动信息数据结构中;
D、接口库中的API接口被一个应用调用时,首先把内核空间的该应用的缓冲区和硬件的PCI空间映射到该应用的用户空间,然后把驱动信息结构映射出来,查看当前的CPU负载情况;
E、应用软件在调用接口库打开设备时,根据该应用的优先级,在接口库中预设一个CPU负载情况的阈值;
F、每个应用在发送报文之前,先把驱动信息结构中的当前CPU负载和该应用优先级确定的CPU负载阈值相比较,如果当前CPU负载已经超过了该应用的阈值,则主动丢包;如果可以发包,应用就把报文写入报文缓冲区,根据报文长度,修改PCI空间的写指针;
G、硬件网卡轮询PCI空间的每个应用的缓冲区读写指针信息判断硬件写指针是否等于软件的读指针,如果不相等,则说明读指针和写指针之间是新的报文,需要发送,则从主机内存的报文缓冲区中读出报文,向网络发送出去,并移动读指针;如果读指针追上了写指针,则说明缓冲区内报文已经全部读出,则等待一个时间片后,进行下一次轮询。
2.如权利要求1所述一种多应用发包的优先级管理方法,其特征在于:A步骤中所述PCI空间包括报文缓冲区地址、长度、硬件从缓冲区读报文的读指针、软件向缓冲区写报文的写指针,根据预设的最大应用软件个数,为每一个应用申请一套寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010597757.5A CN102055671B (zh) | 2010-12-17 | 2010-12-17 | 一种多应用发包的优先级管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010597757.5A CN102055671B (zh) | 2010-12-17 | 2010-12-17 | 一种多应用发包的优先级管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102055671A CN102055671A (zh) | 2011-05-11 |
CN102055671B true CN102055671B (zh) | 2014-05-21 |
Family
ID=43959618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010597757.5A Active CN102055671B (zh) | 2010-12-17 | 2010-12-17 | 一种多应用发包的优先级管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102055671B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436400A (zh) * | 2011-12-06 | 2012-05-02 | 曙光信息产业股份有限公司 | 零拷贝驱动的实现方法和装置 |
WO2017147851A1 (zh) * | 2016-03-03 | 2017-09-08 | 华为技术有限公司 | 一种配置装置及方法 |
CN105744504A (zh) * | 2016-03-31 | 2016-07-06 | 中国联合网络通信集团有限公司 | 终端与卡应用的通信方法和终端 |
CN114095427A (zh) * | 2017-12-29 | 2022-02-25 | 西安华为技术有限公司 | 一种处理数据报文的方法和网卡 |
CN115982090B (zh) * | 2023-03-17 | 2023-06-23 | 珠海星云智联科技有限公司 | 软硬件协同实现远端内存访问的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791092A (zh) * | 2004-12-16 | 2006-06-21 | 国际商业机器公司 | 多层数据处理系统网络中用于连接容量再指派的系统和方法 |
CN101437015A (zh) * | 2007-11-15 | 2009-05-20 | 中兴通讯股份有限公司 | 用于ip多媒体子系统的消息分级控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291416B2 (en) * | 2009-04-17 | 2012-10-16 | Citrix Systems, Inc. | Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution |
-
2010
- 2010-12-17 CN CN201010597757.5A patent/CN102055671B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791092A (zh) * | 2004-12-16 | 2006-06-21 | 国际商业机器公司 | 多层数据处理系统网络中用于连接容量再指派的系统和方法 |
CN101437015A (zh) * | 2007-11-15 | 2009-05-20 | 中兴通讯股份有限公司 | 用于ip多媒体子系统的消息分级控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102055671A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102006241B (zh) | 一种多个应用共享一个缓冲区的报文接收方法 | |
US10305813B2 (en) | Socket management with reduced latency packet processing | |
EP2647163B1 (en) | A method and system for improved multi-cell support on a single modem board | |
US10572309B2 (en) | Computer system, and method for processing multiple application programs | |
CN102055671B (zh) | 一种多应用发包的优先级管理方法 | |
JP2017514209A (ja) | マルチプロセス・アプリケーションのための動的リソース管理 | |
US20140047065A1 (en) | System, device and method for providing push service using feedback message | |
US8615624B2 (en) | Methods, apparatuses, and computer program products for enhancing memory erase functionality | |
CN102098215B (zh) | 一种多应用收包的优先级管理方法 | |
EP3465450B1 (en) | Improving throughput in openfabrics environments | |
CN114706531A (zh) | 数据处理方法、装置、芯片、设备及介质 | |
US10116773B2 (en) | Packet processing method and related device that are applied to network device | |
US10102135B2 (en) | Dynamically-adjusted host memory buffer | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
CN105988871B (zh) | 一种远端内存分配方法、装置和系统 | |
US20220321492A1 (en) | Packet buffering method, integrated circuit system, and storage medium | |
JP6480082B2 (ja) | 加入者識別モジュール(sim)アクセスプロファイル(sap)の改善 | |
CN104539450A (zh) | 网站运营活动处理系统、方法和装置 | |
US10877552B1 (en) | Dynamic power reduction through data transfer request limiting | |
US10749913B2 (en) | Techniques for multiply-connected messaging endpoints | |
CN109101188B (zh) | 一种数据处理方法和装置 | |
CN109189492A (zh) | 功能组件加载方法、装置、计算机设备及可读存储介质 | |
CN109474543B (zh) | 一种队列资源管理方法、装置及存储介质 | |
US10264013B2 (en) | Preventing a memory attack to a wireless access point | |
CN113992591A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221214 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. |