Ntop性能提升方案

简介:

Ntop性能提升方案

 

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

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

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

wKioL1dx3oLi9vn-AACz6VCccoo707.jpg-wh_50

对于内核必须熟悉的可以用下面的方法,首先给内核源码打补丁(以下内容需要读者具备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

wKiom1dx3pLRi_goAACs-x8Hy_g225.jpg-wh_50

 

wKioL1dx3qPhbsY2AABwo0i45oU138.jpg-wh_50

这里按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/includeusr/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

 

wKiom1dx3rTAYXNiAADSPgP9f8s683.jpg-wh_50

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

 


 


 本文转自 李晨光 51CTO博客,原文链接:http://blog.51cto.com/chenguang/1793524,如需转载请自行联系原作者


相关文章
|
16天前
|
监控 NoSQL 测试技术
解密Redis性能:如何通过性能测试提升系统稳定性和效率
解密Redis性能:如何通过性能测试提升系统稳定性和效率
|
8月前
|
存储 数据采集 缓存
【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)
【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)
225 0
|
5月前
|
算法 数据库 异构计算
Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!
Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!
Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!
|
Ubuntu 前端开发 测试技术
Nginx-性能优化-ab压力测试工具
Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用。
744 0
Nginx-性能优化-ab压力测试工具
|
SQL 关系型数据库 MySQL
性能提高20倍!MySQL排序引起的性能问题及解决方案
负责公司的用户收藏服务,收到调用方反馈有read time out的情况,进行排查发现是某用户收藏数量太多引起的(有业务设计上的问题,正常应只保留有限时间的收藏或者限制用户收藏的数量),一般用户收藏数是不超过100的,查询耗时是几毫秒,该用户收藏数2W+,查询耗时接近200毫秒。
2150 0
|
网络协议 NoSQL Linux
性能提升 57% ,SMC-R 透明加速 TCP 实战解析
TCP 协议作为当前使用最为广泛的网络协议,场景遍布移动通信、数据中心等。对于数据中心场景,通过弹性 RDMA 实现高性能网络协议 SMC-R,透明替换应用 TCP 协议,实现应用网络透明加速。
247 0
性能提升 57% ,SMC-R 透明加速 TCP 实战解析
|
存储 运维 Kubernetes
如何是codis存储成本降低90%?使用Pika替代codis-server试试!
本文为大家分享个推如何完美结合Pika和Codis,最终节省90%大数据存储成本的实战经验。
203 0
如何是codis存储成本降低90%?使用Pika替代codis-server试试!
Memcached服务级调优
1 Memcached服务端调优思路解析 1. 1 stats命令讲解 核心参数 3 stats其他命令简介 ...
865 0