美文网首页
本科毕业设计摘要

本科毕业设计摘要

作者: shaarawy18 | 来源:发表于2016-10-24 16:41 被阅读0次

    高速采集驱动库的机制及性能研究

    Research on Mechanism and Performance of High - speed packet capture Driver Library

    1.研究业内实时报文采集的不同机制;

    2.设计实验,实测不同用例下不同驱动库的性能;

    3.根据研究结果提高现有采集软件性能。

    实验:

    1、发包程序

    pf_ring:zsend

    dpdk: pktgen-dpdk (1.8版本不能运行)

    2、性能分析

    vtune

    perf

    3、性能测试

    单线程run to completion 对比(pf_ring 和 DPDK性能进行对比,基于不同报文长度)

    单Rx双worker的pipeline模型线程分布  NUMA (利用最小长度报文进行测试)

    改变网卡队列长度对收包速率的影响(微小影响)

    单Rx的pipeline模型worker数量变化

    单Rx的pipeline模型线程栈分布

    双Rx双Worker的pipeline模型线程分布

    双接收队列时,网卡RSS结果均衡程度影响速率(有影响)

    多线程run to completion 对比  NUMA

    DPDK多生产者多消费者(mpmc)的可扩展性分析

    xDR线程分布

    4、理论基础

    Linux内核处理报文的过程(结合内核代码)(附带了解 IRQ、软中断、RPS)

    RPS技术:

    RPS(Receive Packet Steering)多核CPU单队列网卡条件下,在软件层面模拟实现硬件网卡的多队列。

    在网卡驱动函数里对每一条流依据四元组(SIP,SPORT,DIP,DPORT)做Hash,再根据Hash标志将软中断的负载均衡到各个CPU

    RFS(Receive Flow Steering)确保应用程序处理的CPU和软中断处理的CPU是同一个,可以充分利用CPU的Cache

    Linux报文采集:

    Linux报文采集通常采用TCP/IP协议栈的嵌套字实现。嵌套字主要有三种类型

    流式嵌套字、数据报嵌套字、原始嵌套字

    tcpdump设置钩子函数复制报文,libpcap直接使用原始嵌套字方式。以上两种都是基于内核协议栈,报文获取来自于内核协议栈的复制

    PF_Ring:

    高速数据包采集库,提供两个层次的库供用户使用。一个层次对传统报文处理方法做了改进,基本处理依然依赖内核态的中断。第二个层次是对报文处理方法进行大量的改进,性能提升显著,不过还未开源。

    NUMA相关理论

    报文处理中的负载均衡的了解(RSS、RPS、pipeline处理模型)

    5、笔记

    testpmd

    启动testpmd程序 ./app/testpmd -c 0xf -n 4 -- -i

    程序启动后你可以执行help命令查看帮助信息;

    start  启动数据转发;

    stop   停止并统计数据转发结果

    程序启动后默认是io转发模式,

    set  fwd  io|mac|rxonly|txonly|csum  设置其他转发模式,如    set  fwd  mac   设置为mac转发模式;

    6、阶段任务

    #### **任务描述**

    - 1. 了解DPDK,学习DPDK官网文档、电信的DPDK资料、intel ppt

    - 2. 在服务器83.11上安装DPDK

    - 3. 运行tcpreplay

    - 4. 运行l2fwd,l3fwd实验一下报文在设备之间的传输

    #### **输出:**

    - 每天在issue上记录一下当天完成的内容。

    #### **时间:**

    - 10月12日前学习DPDK文档

    - 10月14日前安装DPDK,运行DPDK的testpmd和tcpreplay,同时继续学习DPDK文档

    - 10月15日前安装运行l2fwd和l3fwd例程,同时继续学习DPDK文档

    #### **任务描述**

    - 1. 使用zsend及其命令行配置

    - 2. 使用pktgen-dpdk及其配置脚本

    - 3. 学习vtune文档并实验

    - 4. 使用perf及其命令行配置

    #### **输出:**

    - 每天在issue上记录一下当天完成的内容。

    #### **时间:**

    10月28日前

    相关文章

      网友评论

          本文标题:本科毕业设计摘要

          本文链接:https://www.haomeiwen.com/subject/njuluttx.html