linux fedora 14(内核2.6.35.6) PF_RING+libpcap 极速捕获千兆网数据包,不丢包
前面讲到了libpcap 捕获数据包,尤其在千兆网的条件下,大量的丢包,网上搜索好久,大概都是PF_PACKET +MMAP,NAPI,PF_RING之类的方法,我对PF_RING+libpcap进行实验,发现千兆网条件下,捕获数据包的性能很好,几乎不丢包, 实验环境搭配流程如下:
1)下载PF_RING:svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/
2)下载完后,在PF_RING/kernel下面make编译pf_ring,生成pf_ring.ko
3)insmod pf_ring.ko thansparent_mode =1
4)cd 进入lib目录下,修改MakeFile,将安装目录指向usr/,如果不修改,就会指向/usr/local
5)在lib目录下,make,然后make install
6)cd 进入libpcap-1.1.1-ring目录下,修改源码,将pf_ring的内核ring缓冲区设为2M,默认0.5M,然后修改MakeFile, 将安装目录指向usr/,默认指向usr/local。接着编译make,然后make install;
7)这样,就将libpfring.so ,pfring_e1000e_dna.h,pfring.h,libpfring.a拷贝到了usr/include或usr/lib下,同时用 libpcap-1.1.1-ring的库文件替换了原来的libpcap库文件;
8)环境搭建完了,应用记得在应用程序的头文件中加入#define HAVE_PF_RING ;
9)大功告成,你会发现性能有极大的提高,提高了60%以上。但是cpu占用率也会相应的提高,cpu占用率采用在终端采用top查看。
以上摘自:http://blog.csdn.net/smilestone_322/article/details/6281395
linux fedora 14(内核2.6.35.6) PF_RING+libpcap 极速捕获千兆网数据包,不丢包的更多相关文章
- libpcap丢包原理分析及Fedora 9 内核2.6.25.14下安装PF-RING的详细过程
看到网上有人讲解fedora 9下安装PF-RING的过程,都是几年前的了,比较老了,我安装PF-RING就是为了使用libpcap库,libpcap的原理是通过socket 将数据包从网卡 捕获数据 ...
- 性能测试四十六:Linux 从网卡模拟延时和丢包的实现
Linux 中模拟延时和丢包的实现 使用ifconfig命令查看网卡 Linux 中使用 tc 进行流量管理.具体命令的使用参考 tc 的 man 手册,这里简单记录一下使用 tc 模拟延时和丢包的命 ...
- Linux桌面新彩虹-Fedora 14 炫酷应用新体验
Linux桌面新彩虹 --Fedora 14 炫酷应用新体验 650) this.width=650;" hspace="12" align="left&quo ...
- 一个linux 4.9,4.14内核的bbr带宽估计偏低问题
linux 4.9内核,bbr的带宽估计问题. 一个正常的bbr流量图: 对应的ttl图形: 一个异常的bbr流量图: 可以看出,异常的bbr流量图,出现了一个很低的带宽,且稳定在这个带宽10s左右, ...
- Linux系统启动那些事—基于Linux 3.10内核【转】
转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地 ...
- 非常好!!!Linux源代码阅读——内核引导【转】
Linux源代码阅读——内核引导 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 目录 Linux 引导过程综述 BI ...
- Linux 2.6内核中新的锁机制--RCU
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/ 一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁 ...
- Linux网络编程&内核学习
c语言: 基础篇 1.<写给大家看的C语言书(第2版)> 原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: ...
- 在Debian Wheezy 7.3.0上编译安装3.12.14内核
最近需要对Linux的一个内核模块进行调整实验,故决定先在虚拟机中完成编译调试工作,最后再在真实的系统上进行测试.为了防止遗忘,把过程记录于此. 1. 准备系统环境 首先从官网下载最新版的Virtua ...
随机推荐
- 友情链接&部分题目的密码
YPL: https://www.cnblogs.com/Sdchr/ ZWL: https://www.cnblogs.com/acha XJ: https://blog.csdn.net/boyx ...
- .NET反编译
http://www.cnblogs.com/powertoolsteam/archive/2011/01/05/1926066.html
- JS面向对象之作用域
作用域 词法作用域 作用域 域表示的就是范围,即作用范围 就是一个名字在什么地方能使用,在什么地方不能使用 块级作用域 块级别的作用范围 // 在 c , java 等编程语言中,下面的语法报错 { ...
- 【spring data jpa】jpa中使用in查询或删除 在@Query中怎么写 ,报错:org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'goodsConfigUid' cannot be found on null 怎么处理
示例代码如下: @Modifying @Transactional @Query("delete from GoodsBindConfigMapping gbc " + " ...
- ORACLE查看并修改最大连接数的具体步骤
第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter processes ...
- libCurl 简单使用
curl easy 的使用步骤 curl_easy_init() curl_easy_setopt() curl_easy_perform() curl_easy_cleanup() ------- ...
- javascript快速入门8--值,类型与类型转换
原始值和引用值 在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值. 原始值(primitive value)是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量 ...
- Android -- 多媒体播放之MediaPlayer使用内部实现简析
Android -- MediaPlayer内部实现简析 在之前的博客中,已经介绍了使用MediaPlayer时要注意的内容.如今,这里就通过一个MediaPlayer代码实例,来进一步分析Media ...
- paste,两个文件相同行拼接在一起的shell命令
今天又学到一个命令,果然厉害 参考这里 http://blog.csdn.net/anders_zhuo/article/details/8461641
- 【Android高级】应用开发必需要掌握的框架<Volley>
开发久了,就会发现掌握一个好的应用框架是多么的重要,尽管是别人的东西,你或许不能全然搞懂当中的原理,但你知道怎样利用其到自己的开发中,这样不仅能节省大量的时间.并且别人沉淀下来的精华效果一定比他的厉害 ...