Ntop性能提升方案
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性能提升方案相关推荐
- ntop linux,Linux下开源监控软件Ntop的性能提升方案
摘要:Ntop是一款Linux下常见的开源监控软件,它可以监测的数据包括:网络流量.使用协议.系统负载.端口情况.数据包发送时间等.正常情况下它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信 ...
- 图像分类性能提升方案
文章目录 数据 EDA(探索性数据分析) 图像预处理 1.mixup 2.马赛克,cutmix 模型 第一步.开发一个baseline 第二步.开发一个足够大可以过拟合的模型 第三步.训练过程的优化 ...
- 我是如何将一个老系统的kafka消费者服务的性能提升近百倍的
大家好,又见面了~ kafka作为一种高吞吐量的分布式发布订阅消息系统,在业务系统中被广泛的使用. 如果问你,如何提高kafka队列中的消息消费速度呢? 答案很简单,topic多分几个分片,然后使用消 ...
- 转换实体类_yue-library 2.3.0发布,替换Db JavaBean转换方案,性能提升约300%+
yue-library简介 yue-library是一个基于SpringBoot封装的增强库 内置丰富的JDK工具 自动装配了一系列的基础Bean与环境配置项 快速构建SpringCloud项目,让微 ...
- 滴滴青桔单车跨端技术方案和业务技术架构,及框架设计和性能提升实践
导读:经过将近两年的发展,小程序已经深入用户的日常生活,小程序应用数量超过了百万量级,覆盖众多细分行业,日活用户达到两个亿.青桔单车是日活相对较高的小程序,这也要求我们对小程序的性能.稳定性及安全有较 ...
- Google 最新的性能优化方案,LCP 提升30%!
大家好,我是 ConardLi. 网页的性能,大部分情况下是影响用户使用体验的第一要素,特别是对于很多电商.金融网站,可能几秒的性能提升就意味着更大的转化率和收益. 所以优化网页的性能,一直是前端工程 ...
- Web的现状:网页性能提升指南
互联网发展非常迅速,所以我们创造了Web平台.通常 我们会忽视连通性等问题,但用户们却不会视而不见 .一瞥万维网的现状,可以发现我们并没有用同情心.变通意识去构建它,更不要说性能了. 所以,今天的We ...
- 深度干货!如何将深度学习训练性能提升数倍?
作者 | 车漾,阿里云高级技术专家 顾荣,南京大学副研究员 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 近些年,以深度学习为代表的人工智能技术 ...
- 初探性能优化--2个月到4小时的性能提升!
作者:闪客sun | 博客园 https://www.cnblogs.com/flashsun 一直不知道性能优化都要做些什么,从哪方面思考,直到最近接手了一个公司的小项目,可谓麻雀虽小五脏俱全. ...
最新文章
- java I/O之装饰者模式
- c语言已知斜率 求倾角,倾斜解的问题
- 盘古分词-关键字搜索没有结果(关键字由未收录词组成)
- boost::multiprecision模块实现MPC后端对多精度复数的使用的测试程序
- Mp3tag(MP3文件信息修改器) V2.79a 多语绿色版
- Ajax — 大事件项目(第三天)
- Android之ActionBar常用设计和使用总结
- C++面试宝典 基本语言(三)
- Maven 系列 3:如何在 Eclipse 中集成配置 Maven(以 apache-maven-3.6.2、eclipse-jee-2019-09-R-win32-x86_64 为例)
- CenterOS的安装配置(配图解)
- oracle:case when then else end
- 零基础学python要多久-零基础学Python要多久
- 让apache支持ssl
- jed后缀是什么文件?什么作用呢?
- 变分法与最优控制matlab,1987_11变分法与最优控制_10654423.pdf
- 要如何实现pdf图片提取?可以试试这些方法
- shell 脚本实例--持续更新
- 阿里成立“平头哥”半导体公司,明年推神经网络芯片
- wireshark分析无线wifi包
- 多线程编译与运行linux,Linux系统下多线程程序编译makefile文件