PFQ,适用于多核处理器系统中的网络监控框架

2023-10-27

PFQ 是一个支持多语言的网络框架,主要用于 Linux 操作系统下进行高效的包捕获和传输,适用于多核处理器系统中的网络监控框架。

PFQ 专门为多核处理器而优化,包括对多个硬件队列的网络设备优化,支持任意网络设备驱动,并提供一个脚本用来加速和优化对设备数据的获取。

该框架可用来开发高性能的应用,使用 C、C++11 和 Haskell 。此外 PFQ 还包含一个纯函数语言 PFQ/lang 。

PFQ/lang 灵感来自于 Haskell 可以用来创建运行在内核空间中网络设备驱动之上的小应用程序,例如用来创建高效的桥接程序、端口镜像、简单防火墙和网络均衡器等等。

特性

  • 完全无锁和非堵塞架构

  • 预先分配 Socket 缓冲池

  • 兼容绝大多数网络设备驱动

  • Rx and Tx 10-Gbit line-rate (14,8Mpps), 基于 Intel ixgbe vanilla 驱动

  • 透明的支持核心线程,用于异步包交换

  • 通过 socket 组并发监控多线程应用

  • 通过随机化哈希和固定分类进行 Per-group 包管理

  • Per-group Berkeley 和 VLAN 过滤器.

  • 内核中用于包处理的函数化引擎: PFQ/lang v4.x.

  • 为 C、C++11-14 和 Haskell 语言提供用户空间库

  • PFQ/lang as eDLS for C++11-14 and Haskell language.

  • 加速的 pcap 库用于包捕获和传输

  • pfqd, 用来配置和并行化多实例传统应用的守护进程.

  • pfq-omatic, 用来动态加速 vanilla 驱动的脚本

  • I/O user<->kernel 共享内存 基于 HugePages

PFQ 的性能高度依赖于所运行的硬件环境。在至强处理器、Intel 82599 10G 控制器上,PFQ 每秒可处理约 1480 万的数据包(2 或者 3 核心线程),详细配置请看 Intel processors.

项目地址: https://github.com/pfq/PFQ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PFQ,适用于多核处理器系统中的网络监控框架 的相关文章

  • 如何从 C 程序中获取 NIC 详细信息?

    我想要获取连接到我的计算机的所有 NIC 的以下详细信息 1 接口名称 例如eth0 2 接口编号 如Windows http answers yahoo com question index qid 20080517041705AAOmJ
  • Raspberry 交叉编译 - 执行程序以“分段错误”结束

    我有一个自己编写的程序 我想从我的 x86 机器上为 Raspberry Pi 构建它 我正在使用 eclipse 生成的 makefile 并且无法更改此内容 我已经阅读了 CC for raspi 的教程 Hackaday 链接 htt
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • C:如果文件描述符被删除,阻塞读取应该返回

    我正在以阻塞的方式从设备 文件描述符中读取 可能会发生这样的情况 在不同的线程中 设备被关闭并且文件描述符被删除 不幸的是 读取没有返回或注意到并且一直阻塞 作为一种解决方法 我可以使用 select 作为超时来执行 while 循环 如果
  • 如何将后台作业的输出分配给 bash 变量?

    我想在 bash 中运行后台作业并将其结果分配给一个变量 我不喜欢使用临时文件 并且希望同时运行多个类似的后台任务 root root var echo hello world root root echo var hello world
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那
  • pprof 和 ps 之间的内存使用差异

    我一直在尝试分析用 cobra 构建的 cli 工具的堆使用情况 这pprof工具显示如下 Flat Flat Sum Cum Cum Name Inlined 1 58GB 49 98 49 98 1 58GB 49 98 os Read
  • C - 为什么我无法映射较小(256UL 或更小)的内存?

    请告诉我 为什么我的简单应用程序无法映射较小的内存 而且 为什么有这样一个特定的边界 257UL define MAP SIZE 256UL or below fail define MAP SIZE 257UL ok include
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际
  • 从 php/linux 获取 pdf 的布局模式(横向或纵向)

    给定一个 PDF 如何使用 PHP lib 或 Linux 命令行工具获取 PDF 的布局模式 或相对宽度 高度 Using http www tecnick com public code cp dpage php aiocp dp tc
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 使用 gcc 理解共享库

    我试图理解 C 中共享库的以下行为 机器一 cat one c include
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 如何回忆上一个 bash 命令的参数?

    Bash 有没有办法回忆上一个命令的参数 我通常这样做vi file c其次是gcc file c Bash 有没有办法回忆上一个命令的参数 您可以使用 or 调用上一个命令的最后一个参数 Also Alt can be used to r

随机推荐

  • “毕业1年,做Python挣了50W!”我摊牌了......

    现状揭秘 Python岗位大厂50K起 屠杀各种榜单 拿下语言排行榜的Python 薪酬真的如同网传开挂了吗 笔者在脉脉上发现了这样的一个信息 但Python真的这么火 笔者准备去全网帮你们 打探 一下 让大家了解真实的Python市场 数
  • h5+js调取相机做取景框_uni-app 2.2发布,大幅优化H5端性能体验

    背景 uni app发布以来 已经服务了几十万开发者 让我们意外 或者说惊喜的是 有大量开发者用uni app只编写H5版 并没有多端发布 可参考案例 这其实也符合uni app的初衷 uni app的定位并不是需要多端发布时才用uni a
  • Electron-日志与崩溃收集

    概述 对于任何的客户端应用 开发者都希望能够在用户上的手上记录下相关信息以便了解真实的使用情况 一般情况下 分为以下两种信息 正常日志 在不涉及隐私的情况下 让开发者了解用户使用客户端的详细情况 从这些情况中提炼的信息能够让开发者根据用户的
  • linux自动补全命令

    CentOS6 5安装Tab增强版 bash completion 可补全命令参数 因为CentOS官方源并不带有bash completion的包 所以 为了可用yum安装 增加epel的源 首先 使用wget下载epel的rpm包 使用
  • ELK-定期清除数据

    bin bash Author richard Date 2017 08 11 17 27 49 Last Modified by richard Last Modified time 2017 08 11 18 04 58 保留近 N 天
  • samba服务器经windows共享后虚拟机中文件权限nobody,nogroup

    前几天想共享文件到虚拟机的ubuntu结果新建的网络映射一会能看到共享文件夹但无打开权限一会直接连接不上 毕竟是新手只能百度试了病急乱投医N种方法仍然不能解决对于有强迫症的我弄了将近2个多小时依然没有解决于是 恼羞成怒 吧samba的程序卸
  • 带刻度尺的日期选择器

    带刻度尺的日期选择器 1 概述 2 试着使用UIPickerView实现 3 使用UICollectionView实现 1 获取一年12个月的数据 2 滚动到1月1号和12月31号的时候如何能够无缝的显示 4 模糊 渐变 写在前面的话 最近
  • NodeMcu arduino编程环境搭建(Esp8266开发环境搭建)

    物联网模块 先入手了有一个ESP8266 用到那个学习那个 后面开始Node mcu一边学习一边内容更新了 1 先下载arduino编译器 资料链接 链接 https pan baidu com s 18xPtm47pjUvObBd6Veh
  • 第十四届蓝桥杯大赛软件赛省赛(C/C++ 大学B组)

    目录 试题 A 日期统计 1 题目描述 2 解题思路 3 模板代码 试题 B 01 串的熵 1 题目描述 2 解题思路 3 模板代码 试题 C 冶炼金属 1 题目描述 2 解题思路 3 模板代码 试题 D 飞机降落 1 题目描述 2 解题思
  • No implementation found for void com.wust.testjni10.CallJava.callPrintString()

    问题描述 当你看到这篇文章的时候 说明你会jni了 并且还在调用 so 库 可问题就出在调用的时候报了这么个错 No implementation found for void com wust testjni10 CallJava cal
  • uniapp-提现功能(demo)

    页面布局 提现页面 有一个输入框 一个提现按钮 一段提现全部的文字 首先用v model 和data内的数据双向绑定 输入框逻辑分析 输入框的逻辑 为了符合日常输出 所以要对输入框加一些条件限制 因为是提现 所以对输入的字符做筛选 只允许出
  • 由于某种原因,PowerPoint 无法加载MathType..... (亲测有效)

    网上找了较多的参考解决办法 最后发现如下博主提供的方法快捷有效 https blog csdn net dss875914213 article details 85873938 问题 PPT打开时弹出由于某种原因powerpoint无法加
  • 关于python

    1 关于python Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python提供了高效的高级数据结构 还能简单有效地面向对象编程 Python语法和
  • Viva Workplace Analytics & Employee Feedback SU Viva Glint部署方案

    目录 一 Viva Workplace Analytics Employee Feedback SU Viva Glint介绍 二 Viva Glint和Viva Pulse特点和优势 1 简单易用
  • SLAM精度评定工具——EVO使用方法详解

    系统版本 Ubuntu20 04 ROS版本 Noetic EVO是用于处理 评估和比较里程计和SLAM算法的轨迹输出的工具 注意 本文的评测是在kitti数据集下进行评测 其他的数据集也支持评测 安装EVO 可以执行下面这条命令 pip
  • Pytorch 中如何对训练数据进行增强处理?

    假设我们的数据集是一个手写数字的图像数据集 其中每一张图像包含一个手写数字和对应的标签 我们可以通过随机旋转 平移 缩放和翻转等操作 对原始的图像进行变换增广 Data Augmentation 以增强模型的训练效果 举个例子 我们可以通过
  • JavaScript 实现数组中的字符串按长度排序,长度一样按字母顺序排序

    以下的newar数组里的val键值排序要求 字串按长度排序 长度一样按字母顺序排序 js实现数组中的字符串按长度排序 长度一样按字母顺序排序 function sortByLenByazAZVal array array sort a b
  • MYSQL之ON DUPLICATE KEY UPDATE使用

    创建表 DROP TABLE IF EXISTS user CREATE TABLE user id int 32 NOT NULL AUTO INCREMENT COMMENT 主键id userName varchar 32 NOT N
  • 【单片机毕业设计】【mcuclub-dz-055】基于单片机的智能手环控制系统设计

    最近设计了一个项目基于单片机的智能智能手环控制系统设计 与大家分享一下 一 基本介绍 项目名 智能手环 项目编号 mcuclub dz 055 单片机类型 STM32F103C8T6 具体功能 1 通过MAX30102测量心率 血氧 2 通
  • PFQ,适用于多核处理器系统中的网络监控框架

    PFQ 是一个支持多语言的网络框架 主要用于 Linux 操作系统下进行高效的包捕获和传输 适用于多核处理器系统中的网络监控框架 PFQ 专门为多核处理器而优化 包括对多个硬件队列的网络设备优化 支持任意网络设备驱动 并提供一个脚本用来加速