Ntop是一款Linux下常见的开源监控软件,它可以监测的数据包括:网络流量、使用协议、系统负载、端口情况、数据包发送时间等。正常情况下它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,不过一旦超过Ntop数据包的处理能力,Ntop随即出现性能问题,从而导致Ntop无法准确分析网络流量和各种数据,对网络管理造成影响。下文介绍了一种提高Ntop性能的方法。

通常Ntop的抓包分析功能,是通过Ntop自己完成,但它们都是通过libpcap来实现抓包,且速度不能超过100M,分析一下libpcap的流程我们明白,首先数据包通过路径为网卡硬中断→软中断→内核协议栈→系统调用→socket→->libpcap接口→用户应用程序,在这个流程中,可以看出数据的copy比较多,所以在高速率下libpcap 抓包丢包严重也不用感到奇怪了。

对于千兆的网络就需要采用PF_RING技术来接受数据包了,PF_Ring运行于Linux的内核层,体系结构图如下图所示,它采用类类似零拷贝技术,而且PF_Ring从网卡获取的数据的速度比libpcap有成倍的提高,而且在千兆环境下几乎不丢包。

对于内核必须熟悉的可以用下面的方法,首先给内核源码打补丁(以下内容需要读者具备Linux内核编译基础)。

1).zcat linux-2.6.25-1-686-smp-PF_RING.patch.gz | patch -p0

2).在/usr/src/目录下的linux-2.6.25目录中,编辑Makefile 在这个地方加上一个自定义的后缀(比如-PF_RING):

EXTRAVERSION = -PF_RING

3).make menuconfig

这里按y选上PF_RING,然后保存修改到.config退出。然后就开始编译内核

#make

#make modules  安装编译好的modules

#make install

注意:将bzImage添加到grub中,以便用新内核启动(注意,新添加的内核不是默认启动项)

(用 make install 可以免去手动复制bzImage并生成initrd的繁琐过程)

进入libpcap-1.1.1-ring目录下,修改源码,将pf_ring的内核ring缓冲区设为2M,默认0.5M,然后修改MakeFile,将安装目录指向usr/,默认指向usr/local。接着编译make,然后make install;这样,就将libpfring.so ,pfring_e1000e_dna.h,pfring.h,libpfring.a拷贝到了usr/include或usr/lib下,同时用libpcap-1.1.1-ring的库文件替换了原来的libpcap库文件;

如果大家觉得这种修改内核的方法比较复杂,下面给大家推荐一个简单的方法到www.ntop.org,下载PF_RING-5.1.0.tar.gz包,解开PF_RING 以独立模块运行就成了,没有必要打 patch 到内核后直接make就可以。

#insmod ./pf_ring.ko   加载模块

# dmesg | grep RING

[PF_RING] Welcome to PF_RING 3.9.3                              # 这一部分是PF_RING初始化时输出的

[PF_RING] Ring slots       4096

[PF_RING] Slot version     9

[PF_RING] Capture TX       Yes [RX+TX]

[PF_RING] IP Defragment    No

[PF_RING] Initialized correctly

[PF_RING] registered /proc/net/pf_ring/

[PF_RING] successfully allocated 815104 bytes at 0xd0ad4000    # 以后每次运行PF_RING程序,会输出这样的调试信息

[PF_RING] allocated 4115 slots [slot_len=198][tot_mem=815104]

[PF_RING] removed /proc/net/pf_ring/2849-eth0.0

注意,刚启动机器时,ls /proc/net/pf_ring/ 是看不到这个目录的,只有当需要PF_RING的程序第一次运行时,才会生成这个目录以及一个info文件

安装完成后在shell下输入:

#dmesg |grep PF_RING即可验证是否配置成功,参见图4。

当你看到如图4所示的输出后就预示着这次对Ntop的性能提上改造成功,这时你的Ntop系统在数据包捕获性能上就比先前有所提高,能够适应更加大流量的网络环境。

Ntop性能提升方案相关推荐

  1. ntop linux,Linux下开源监控软件Ntop的性能提升方案

    摘要:Ntop是一款Linux下常见的开源监控软件,它可以监测的数据包括:网络流量.使用协议.系统负载.端口情况.数据包发送时间等.正常情况下它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信 ...

  2. 图像分类性能提升方案

    文章目录 数据 EDA(探索性数据分析) 图像预处理 1.mixup 2.马赛克,cutmix 模型 第一步.开发一个baseline 第二步.开发一个足够大可以过拟合的模型 第三步.训练过程的优化 ...

  3. 我是如何将一个老系统的kafka消费者服务的性能提升近百倍的

    大家好,又见面了~ kafka作为一种高吞吐量的分布式发布订阅消息系统,在业务系统中被广泛的使用. 如果问你,如何提高kafka队列中的消息消费速度呢? 答案很简单,topic多分几个分片,然后使用消 ...

  4. 转换实体类_yue-library 2.3.0发布,替换Db JavaBean转换方案,性能提升约300%+

    yue-library简介 yue-library是一个基于SpringBoot封装的增强库 内置丰富的JDK工具 自动装配了一系列的基础Bean与环境配置项 快速构建SpringCloud项目,让微 ...

  5. 滴滴青桔单车跨端技术方案和业务技术架构,及框架设计和性能提升实践

    导读:经过将近两年的发展,小程序已经深入用户的日常生活,小程序应用数量超过了百万量级,覆盖众多细分行业,日活用户达到两个亿.青桔单车是日活相对较高的小程序,这也要求我们对小程序的性能.稳定性及安全有较 ...

  6. Google 最新的性能优化方案,LCP 提升30%!

    大家好,我是 ConardLi. 网页的性能,大部分情况下是影响用户使用体验的第一要素,特别是对于很多电商.金融网站,可能几秒的性能提升就意味着更大的转化率和收益. 所以优化网页的性能,一直是前端工程 ...

  7. Web的现状:网页性能提升指南

    互联网发展非常迅速,所以我们创造了Web平台.通常 我们会忽视连通性等问题,但用户们却不会视而不见 .一瞥万维网的现状,可以发现我们并没有用同情心.变通意识去构建它,更不要说性能了. 所以,今天的We ...

  8. 深度干货!如何将深度学习训练性能提升数倍?

    作者 | 车漾,阿里云高级技术专家 顾荣,南京大学副研究员 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 近些年,以深度学习为代表的人工智能技术 ...

  9. 初探性能优化--2个月到4小时的性能提升!

    作者:闪客sun  |  博客园 https://www.cnblogs.com/flashsun 一直不知道性能优化都要做些什么,从哪方面思考,直到最近接手了一个公司的小项目,可谓麻雀虽小五脏俱全. ...

最新文章

  1. java I/O之装饰者模式
  2. c语言已知斜率 求倾角,倾斜解的问题
  3. 盘古分词-关键字搜索没有结果(关键字由未收录词组成)
  4. boost::multiprecision模块实现MPC后端对多精度复数的使用的测试程序
  5. Mp3tag(MP3文件信息修改器) V2.79a 多语绿色版
  6. Ajax — 大事件项目(第三天)
  7. Android之ActionBar常用设计和使用总结
  8. C++面试宝典 基本语言(三)
  9. Maven 系列 3:如何在 Eclipse 中集成配置 Maven(以 apache-maven-3.6.2、eclipse-jee-2019-09-R-win32-x86_64 为例)
  10. CenterOS的安装配置(配图解)
  11. oracle:case when then else end
  12. 零基础学python要多久-零基础学Python要多久
  13. 让apache支持ssl
  14. jed后缀是什么文件?什么作用呢?
  15. 变分法与最优控制matlab,1987_11变分法与最优控制_10654423.pdf
  16. 要如何实现pdf图片提取?可以试试这些方法
  17. shell 脚本实例--持续更新
  18. 阿里成立“平头哥”半导体公司,明年推神经网络芯片
  19. wireshark分析无线wifi包
  20. 多线程编译与运行linux,Linux系统下多线程程序编译makefile文件

热门文章

  1. Filter的生命周期
  2. JVM内存状况查看方法和分析工具
  3. 机器学习中防止过拟合的处理方法
  4. Prismatic 机器学习不一定得用大框架
  5. 【推荐】ZendStudio 5.5.1 开发调试(Debug)配置说明
  6. SWFupload 在(FF)火狐下报404错误的解决方案
  7. Django的路由系统
  8. MySQL输入密码后闪退的解决方法
  9. JPQL中使用LIKE进行模糊查询
  10. Hibernate初探