[发明专利]一种多应用发包的优先级管理方法有效
| 申请号: | 201010597757.5 | 申请日: | 2010-12-17 |
| 公开(公告)号: | CN102055671A | 公开(公告)日: | 2011-05-11 |
| 发明(设计)人: | 刘朝辉;刘灿;李锋伟;万伟;刘兴彬 | 申请(专利权)人: | 天津曙光计算机产业有限公司 |
| 主分类号: | H04L12/56 | 分类号: | H04L12/56 |
| 代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
| 地址: | 300384 天津市西青区华*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 应用 发包 优先级 管理 方法 | ||
技术领域
本发明涉及网络数据处理领域,具体涉及一种多应用发包的优先级管理方法。
背景技术
在网络数据分析系统中,往往在一个硬件平台上运行多个应用,也就是说需要多个应用软件从同一个网卡向外发送报文。然而,在有些系统中,多个应用是有优先级的,当系统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)驱动软件申请报文缓冲区
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津曙光计算机产业有限公司,未经天津曙光计算机产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010597757.5/2.html,转载请声明来源钻瓜专利网。





