[发明专利]一种基于零拷贝的提升WEB服务器性能的方法、系统在审
申请号: | 201711153964.X | 申请日: | 2017-11-20 |
公开(公告)号: | CN108090003A | 公开(公告)日: | 2018-05-29 |
发明(设计)人: | 李绍良;黄衍博;杨燕清;黄春豪 | 申请(专利权)人: | 广东睿江云计算股份有限公司 |
主分类号: | G06F13/34 | 分类号: | G06F13/34;H04L12/861;H04L12/863 |
代理公司: | 佛山市禾才知识产权代理有限公司 44379 | 代理人: | 史亮亮 |
地址: | 528000 广东省佛山市禅城区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 零拷贝 数据包 数据通信效率 数据包存储 数据包接收 环状缓存 拷贝过程 设备轮询 通信数据 主机内部 应用层 网卡 夹块 加载 存储 捕捉 发送 | ||
1.一种基于零拷贝的提升WEB服务器性能的方法,其特征在于:在Linux内核中加载PF_RING模块,加载了PF_RING模块的网卡采用基于设备轮询的NAPI方式捕捉数据包,采用DMA的方式将数据包存储在环状缓存中,PF_RING模块通过MMAP机制直接将数据包传至应用层。
2.根据权利要求1所述一种提升WEB服务器性能的方法,其特征在于:NAPI方式采用中断机制和轮询机制相结合,当数据量低时采用中断机制接收数据,当数据量高时采用轮询机制接收数据,包括网卡采用基于设备轮询的NAPI方式捕捉数据包的过程:
步骤A:当网络设备接收数据包或者发送数据包时,触发中断处理函数执行,网卡发出中断信号,CPU接收中断信号,开启中断处理开始并处理中断请求;
步骤B:若在中断处理函数被触发期间,有数据包达到需要接收,则中断处理函数会关闭中断处理开始,将网络设备注册到轮询队列中,并关闭对该网络设备的中断响应,触发软中断处理;
步骤C:软中断处理被触发后,开始软中断处理,首先轮询网络设备,然后读取所有数据包,读取完毕后,网络设备从轮询队列中排出,并检查轮询队列是是否为空,若为空,则软中断处理结束;若不为空,则重新开始新的一轮软中断处理,直至轮询队列为空。
3.根据权利要求1所述一种基于零拷贝的提升WEB服务器性能的方法,其特征在于:所述环状缓存存在两个接口,分别是PF_RING接口a和PF_RING接口b,PF_RING接口a供网卡向其中写入数据包,PF_RING接口b为应用层提供读取数据包;包括加载了PF_RING模块的网卡将数据包传至应用层的过程:
步骤S1:网卡通过加载PF_RING模块,采用的NAPI方式捕捉数据包后,通过DMA的方式将数据包拷贝到环状缓存;
步骤S2:网卡通过MMAP的方式将数据包从环状缓存中写入PF_RING接口a;
步骤S3:PF_RING接口b将数据包通过MMAP的方式直接传至应用层。
4.根据权利要求1所述一种基于零拷贝的提升WEB服务器性能的方法,其特征在于:包括通过DMA的方式将数据包拷贝到环状缓存,并读取到内存中的过程:
步骤R1:CPU对DMA控制器进行初始化操作并将操作指令发送至I/O接口;
步骤R2:I/O接口提出DMA请求,DMA控制器对DMA请求进行优先级判断并响应请求;
步骤R3:接着判断是否将数据包加载到内存中,若是,则CPU直接将数据包读取到内存中;若不是,则将数据包读取到环状缓存中,然后CPU再将数据读取到内存中。
5.根据权利要求1所述一种基于零拷贝的提升WEB服务器性能的方法,其特征在于:
所述MMAP机制对于每段数据只进行一次物理地址映射到虚拟地址的操作,即后续访问被MMAP机制映射过的数据将不再检测地址的合法性;
MMAP机制不需要对数据进行拷贝,直接将数据地址指针传递至应用层。
6.一种基于零拷贝的提升WEB服务器性能方法的系统,其特征在于:通过NAPI的方式捕捉数据,然后通过DMA方式将捕捉的数据包拷贝到环状缓存中,最后通过MMAP机制直接将数据包传至应用层;包括采用NAPI方式捕捉数据包模块,利用中断机制和轮询机制相互结合,用于当数据量低时采用中断机制接收数据,当数据量高时采用轮询机制接收数据;
当网络设备接收数据包或者发送数据包时,触发中断处理函数执行,网卡发出中断信号,CPU接收中断信号,开启中断处理开始并处理中断请求;
若在中断处理函数被触发期间,有数据包达到需要接收,则中断处理函数会关闭中断处理开始,将网络设备注册到轮询队列中,并关闭对该网络设备的中断响应,触发软中断处理;
软中断处理被触发后,开始软中断处理,首先轮询网络设备,然后读取所有数据包,读取完毕后,网络设备从轮询队列中排出,并检查轮询队列是是否为空,若为空,则软中断处理结束;若不为空,则重新开始新的一轮软中断处理,直至轮询队列为空。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东睿江云计算股份有限公司,未经广东睿江云计算股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711153964.X/1.html,转载请声明来源钻瓜专利网。