当前位置: 首页 > news >正文

虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器

本文是一份全面的指南,解释了如何使用nProbe Cento构建一个高效的100 Gbit NetFlow传感器。旨在帮助大家充分利用NetFlow技术,以监控和分析高速网络流量。

当需要监控分布式网络,了解流经上行链路或关键网段的网络流量时,NetFlow等技术通常是最佳选择。

nProbe Pro/Enterprise和nProbe Cento是软件探针,可用于构建多功能传感器,以多种不同格式输出流量信息,包括NetFlow v5/v9/IPFIX、Kafka、Elasticsearch、ClickHouse、MySQL、CSV文件等。nProbe Pro/Enterprise专为低/中速率(1/10 Gbps)而设计,而 nProbe Cento则专为高速运行而设计(如今我们认为 100 Gbit 已是高速链路)。

通过将nProbe Cento与 ntopng相结合,可以为100 Gbit分布式网络构建一个完全成熟的网络监控解决方案,提供全面的可视性。

想要高速使用nProbe Cento的用户经常向我们提出的一个问题是:"我需要什么样的硬件才能处理100 Gbps的全速率?我们希望通过这篇文章提供一些硬件选择指南。

一、网络适配器

在高速运行n2disk时,必须使用像Napatech或Silicom/Fiberblaze这样能在分段模式下运行的FPGA适配器才能获得最佳转储性能,而nProbe Cento则不需要昂贵的适配器。

100 Gbit探头可以使用低于1千美元的ASIC适配器。这里必须支持的是对称RSS。RSS用于通过多个数据流将流量负载分散到多个CPU内核上,将物理接口分割成多个逻辑接口,根据数据包头计算的哈希函数分配流量。使用RSS进行扩展,并结合PF_RING ZC(零拷贝)驱动程序提供最大捕获性能,可确保在处理流量时在100 Gbit全速下不丢失数据包。

因此,建议在100 Gbit时与nProbe Cento结合使用的适配器包括

  1. NVIDIA/Mellanox ConnectX 5/6
  2. Intel E810

二、CPU

各种CPU有不同的频率、内核数量、缓存大小、缓存级别、指令集等。不过,根据我们的经验来讲,现代CPU(例如Xeon Gold 6346 3 Ghz或AMD EPYC 9124)的每个CPU内核通常能够处理超过10 Mpps(每秒百万数据包)。考虑到互联网数据包的平均大小,10 Gbit链路通常有13 Mpps。最坏的情况下,10 Gbit链路的数据包速度也可达14.88 Mpps。

这意味着,在最坏的情况下,要处理100 Gbps的速度,我们需要一个至少有16个内核、主频为3 Ghz的CPU。对于频率较高且高速缓存较大的CPU来说,较少的内核也足够了。

例如,如果我们要构建基于英特尔的系统,我们可以使用Xeon Gold 6326或6346或更高版本。如果要构建基于AMD的系统,我们可以使用AMD EPYC 9124或更高版本。

三、内存

实现最佳性能的内存配置主要取决于CPU本身:

  1. 模块数量:应与CPU支持的内存通道数量相匹配(请查看CPU的规格说明)
    • Intel Xeon Gold目前支持8个内存通道
    • AMD EPYC的大多数型号支持12个内存通道
  2. 速度:选择CPU支持的较高速度(请查看CPU规格说明)
  3. 容量:考虑到每个模块的最小容量(816GB),通常选择较小的可用容量即可(8x 8GB = 64GB)。

四、存储

许多朋友担心存储问题,但是其实在运行nProbe Cento时,存储空间其实并不重要,因为当使用NetFlow、ZMQ、Kafka或CSV以外的其他导出格式(实际上是写入本地磁盘)将数据导出到外部收集器时,并不会占用磁盘空间。这意味着一个小型磁盘,或一个RAID1双磁盘阵列(如果需要对系统磁盘进行数据恢复)就已足够。

五、软件配置

nProbe Cento的配置非常简单。向命令行(或配置文件)提供的实际选项可能会因工作模式和导出格式的不同而有所变化,但在捕获方面却非常简单。大家需要注意两个主要选项:接口配置(i)和CPU亲和性(processingcores)。

1、如果使用的是英特尔适配器,并且配置了带RSS的ZC驱动程序,那么只需指定RSS接口即可,如下所示:

cento -i zc:eth1@0 -i zc:eth1@1 -i zc:eth1@2 -i zc:eth1@3 ...

2、我们还可以使用快捷方式来实现这一功能,尤其是在运行16个以上RSS流时非常方便:

cento -i zc:eth1@[0-15]

3、如果你使用的瑟吉欧NVIDIA/Mellanox适配器,则可以使用类似的语法:

cento -i mlx:mlx5_0@[0-15]

此时,我们只需添加CPU亲和配置,以确保nProbe Cento通过为每个内核绑定一个线程来使用所有可用内核(提供最大的可扩展性和整体性能)。

cento -i mlx:mlx5_0@[0-15] --processing-cores 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

现在,你只需添加控制导出格式的选项。

相关文章:

虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器

本文是一份全面的指南,解释了如何使用nProbe Cento构建一个高效的100 Gbit NetFlow传感器。旨在帮助大家充分利用NetFlow技术,以监控和分析高速网络流量。 当需要监控分布式网络,了解流经上行链路或关键网段的网络流量时,NetFlow…...

Web前端入门 - HTML JavaScript Vue

ps:刚开始学习web前端开发,有什么不正确、不标准的内容,欢迎大家指出~ Web简介 90年代初期,Web1.0,静态页面,不和服务器交互,网页三剑客指Dreamweaver、Fireworks、Flash2000年代中期&#xf…...

(Sping Xml方式整合第三方框架)学习Spring的第十天

Spring整合mybatis 1 . 导入Mybatis整合Spring的相关坐标 <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.13.RELEASE</version></dependency><dependency><…...

单片机驱动多个ds18b20

目录 1设计内容 2ds18b20介绍 2.1传感器引脚及原理图 2.2寄存器配置 3程序实现 3.1配置初始化 3.2配置寄存器 3.3ROM读取 3.4温度读取 1设计内容 通过51单片机&#xff0c;读取总线上挂载的多个ds18b20的温度信息。 如下图&#xff0c;成功读取到3路温度数据。 2ds18…...

GitLab16.8配置webhooks、Jenkins2.4配置GitLab插件实现持续集成、配置宝塔面板实现持续部署(其三)

看本篇文章的前提是已经部署完GItlab和Jenkins服务器&#xff0c;已经可以手动构建成功&#xff0c;并且经过了很多次实践&#xff0c;对这两款软件基本熟悉。 建议大家按以下顺序看 前端自动化&#xff08;其一&#xff09;部署gitlab 前端自动化&#xff08;其二&#xff0…...

鸿蒙会取代Android吗?听风就是雨

现在说取代还谈不上&#xff0c;毕竟这需要时间。安卓作为全球第一的手机操作系统&#xff0c;短时间内还无法取代。持平iOS甚至超过iOS有很大可能&#xff0c;最终会呈现“三足鼎立”有望超过安卓基数。 作为全新的鸿蒙操作系统&#xff0c;其现在已经是全栈自研底座。按照鸿…...

检测CUDA 是否能访问GPU时回应速度慢【笔记】

SUPWEMICRO 418G-Q20X12 维护记录&#xff1a; 两台设备均已安装CUDA与Pytorch&#xff0c;在检测CUDA 是否能访问GPU&#xff0c;执行torch.cuda.is_available()命令时&#xff0c;一台设备速度秒回应True&#xff0c;但另外一台设备回应速度慢&#xff08;1分钟左右&#xff…...

大模型运行成本对比:GPT-3.5/4 vs. 开源托管

在过去的几个月里&#xff0c;生成式人工智能领域出现了许多令人兴奋的新进展。 ChatGPT 于 2022 年底发布&#xff0c;席卷了人工智能世界。 作为回应&#xff0c;各行业开始研究大型语言模型以及如何将其纳入其业务中。 然而&#xff0c;在医疗保健、金融和法律行业等敏感应用…...

fastadmin后台自定义按钮和弹窗

工具栏自定义按钮-ajax请求 前端代码 1.在对应模块的模板文件index.html添加自定义按钮&#xff0c;注意按钮要添加id以绑定点击事件 <div class"panel panel-default panel-intro">{:build_heading()}<div class"panel-body"><div id&qu…...

《高性能MySQL》

文章目录 一、创建1. 磁盘1.1 页、扇区、寻道、寻址、硬盘性能 2. 行结构row_format2.1 Compact紧凑2.1.1 行溢出2.1.2 作用2.1.3 内容1-额外信息1、变长字段长度2、NULL值列表3、记录头信息 2.1.4 内容2-真实数据4、表中列的值5、transaction_id6、roll_point7、row_id 2.2 dy…...

postman用法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、postman怎么使用json输出 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0…...

MySQL之数据库DQL

文章目录 数据查询DQL基本查询运算符算数运算符比较运算符逻辑运算符位运算符 排序查询聚合查询分组查询分页查询INSERT INTO SELECT语句SELECT INTO FROM语句 数据查询DQL 数据库管理系统一个重要功能就是数据查询&#xff0c;数据查询不应只是简单返回数据库中存储的数据&am…...

《区块链简易速速上手小册》第9章:区块链的法律与监管(2024 最新版)

文章目录 9.1 法律框架和挑战9.1.1 基础知识9.1.2 主要案例&#xff1a;加密货币的监管9.1.3 拓展案例 1&#xff1a;跨国数据隐私和合规性9.1.4 拓展案例 2&#xff1a;智能合约的法律挑战 9.2 区块链的合规性问题9.2.1 基础知识9.2.2 主要案例&#xff1a;加密货币交易所的合…...

Spring Boot 中操作 Bean 的生命周期

1.InitializingBean和DisposableBean InitializingBean接口提供了afterPropertiesSet方法&#xff0c;用于在bean的属性设置好之后调用&#xff1b; DisposableBean接口提供了destroy方法&#xff0c;用于在bean销毁之后调用&#xff1b; public class TestComponent implem…...

Linux ---- Shell编程三剑客之AWK

一、awk处理文本工具 1、awk概述 awk 是一种处理文本文件的语言&#xff0c;是一个强大的文本分析工具。AWK是专门为文本处理设计的编程语言&#xff0c;也是行处理软件&#xff0c;通常用于扫描、过滤、统计汇总工作。用来处理列。数据可以来自标准输入也可以是管道或文件。…...

Netty入门使用

为什么会有Netty? NIO 的类库和 API 繁杂&#xff0c;使用起来比较麻烦&#xff0c;需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。开发工作量和难度都非常大&#xff0c;例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异…...

go并发编程-runtime、Channel与Goroutine

1. runtime包 1.1.1. runtime.Gosched() 让出CPU时间片&#xff0c;重新等待安排任务(大概意思就是本来计划的好好的周末出去烧烤&#xff0c;但是你妈让你去相亲,两种情况第一就是你相亲速度非常快&#xff0c;见面就黄不耽误你继续烧烤&#xff0c;第二种情况就是你相亲速度…...

HTTP概述

HTTP概述 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于传输超文本的应用层协议。它是在客户端和服务器之间进行通信的基础&#xff0c;常用于 Web 应用中。在 Java 后端开发中&#xff0c;HTTP 扮演着重要的角色。以下是Java 后端视角下的 HTTP 概述&a…...

ubuntu20配置mysql8

首先更新软件包索引运行 sudo apt update命令。然后运行 sudo apt install mysql-server安装MySQL服务器。 安装完成后&#xff0c;MySQL服务将作为systemd服务自动启动。你可以运行 sudo systemctl status mysql命令验证MySQL服务器是否正在运行。 连接MySQL 当MySQL安装…...

CPU-Cache结构查看

参考【Ubuntu 查看 CPU 缓存】 本文主要介绍cpu的cache查看&#xff0c;以供读者能够理解该技术的定义、原理、应用。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;计算机杂记 &#x1f380;CSDN主页 发狂的小花…...

Wireshark网络协议分析 - Wireshark速览

在我的博客阅读本文 文章目录 1. 版本与平台2. 快速上手2.1. 选择网络接口进行捕获&#xff08;Capture&#xff09;2.2. 以Ping命令为例进行抓包分析2.3. 设置合适的过滤表达式2.4. 数据包详情2.5. TCP/IP 四层模型 3. 参考资料 1. 版本与平台 Wireshark是一个开源的网络数据…...

查看进程创建的所有线程

ps 在ps命令中&#xff0c;“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。 ps -T -p <pid>top op命令可以实时显示各个线程情况。要在top输出中开启线程查看&#xff0c;请调用top命令的“-H”选项&#xff0c;该选项会列出所有Linux…...

汽车软件开发模式的5个特点

汽车软件开发属于较为复杂的系统工程&#xff0c;经常让来自不同知识背景的工程师在观点交锋时出现分歧。在解决复杂性和对齐讨论基准时&#xff0c;可以通过勾勒出讨论对象最关键的几个特征来树立典型概念。本文旨在通过5个典型特点的抽取&#xff0c;来勾勒出汽车软件开发模式…...

双屏联动系统在展厅设计中的互动类型与效果

随着各项多媒体技术的快速发展&#xff0c;让展厅中的各类展项得到技术升级&#xff0c;其中作为电子设备中最基础的显示技术&#xff0c;不仅优化了内容的展示质量&#xff0c;还实现了更具互动性的创新技术&#xff0c;如双屏联动系统就是当前展厅设计中最常见的技术类型之一…...

STM32F407移植OpenHarmony笔记5

继上一篇笔记&#xff0c;搭建好STM32的编译框架&#xff0c;编译出来的OHOS_Image.bin并不能跑不起来。 今天要在bsp里面添加一些代码&#xff0c;让程序能跑起来。 先从裸机点亮LED灯开始&#xff0c;准备以下3个文件:startup和system文件可以用OHOS官方代码。 /device/boar…...

点击其他区域隐藏弹出框效果

一般下拉框或者选择框&#xff0c;持久展示时会给用户显示的隐藏方式&#xff0c;如点击事件后。也可以添加隐式的隐藏方式&#xff0c;如点击弹出框之外的区域。 CSS方法-focus伪类 当触发的元素是可以focus&#xff0c;以输入框为例。 可以将弹出框出现的时机设置在input:…...

Python一些可能用的到的函数系列123 ATimer2-时间偏移

说明 之前确定了时间轴&#xff08;千年历&#xff09;&#xff0c;以及时间的转换方法。其中时间轴的数据将会存储在集群&#xff0c;以及通过RedisOrMongo保存部分常用的数据。 本次讨论时间偏移的度量问题。 内容 1 两种形式 我们提到时间时&#xff0c;通常会有两种方…...

企业微信主体变更 怎么操作?

企业微信变更主体有什么作用&#xff1f;当我们的企业因为各种原因需要注销或已经注销&#xff0c;或者运营变更等情况&#xff0c;企业微信无法继续使用原主体继续使用时&#xff0c;可以申请企业主体变更&#xff0c;变更为新的主体。企业微信变更主体的条件有哪些&#xff1…...

《区块链简易速速上手小册》第8章:区块链的技术挑战(2024 最新版)

文章目录 8.1 可扩展性问题8.1.1 基础知识8.1.2 主要案例&#xff1a;比特币的可扩展性挑战8.1.3 拓展案例 1&#xff1a;以太坊的可扩展性改进8.1.4 拓展案例 2&#xff1a;侧链和分层解决方案 8.2 安全性与隐私8.2.1 基础知识8.2.2 主要案例&#xff1a;比特币交易的安全性8.…...

基于STM32的云上OneNET智慧大棚(包含程序设计报告)

目录 概要 作品介绍 设计原理 设计作品结构 软件部分 概要 为了解决传统农业生产效率低下&#xff0c;消耗大量的人力物力&#xff0c;不能精确的对农作物实现监控的问题&#xff0c;从而最大限度的提高农业生产力&#xff0c;实现优质、高产、低耗、环保的可持续发展物联…...