网络监控框架 PFQ
2015-01-12 16:54
162 查看
原文 http://www.oschina.net/p/pfq
github地址 https://github.com/pfq/PFQ
官网 http://www.pfq.io/
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
github地址 https://github.com/pfq/PFQ
官网 http://www.pfq.io/
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.
相关文章推荐
- PFQ,适用于多核处理器系统中的网络监控框架
- 创建电信网络实时监控图――电信网管中的Java客户端系列(四)
- 网络蚂蚁--会话命令--全过程监控--详录
- [摘]ASP.NET Atlas是Microsoft开发的下一代网络应用程序框架.....
- I-NMMS:网络管理监控系统介绍
- Hook Win32 API 的应用研究之一:网络监控
- 校园网络流量监控和流量分析
- 用c#监控网络流量
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- 基于AVI的网络视频监控存储系统的实现方法
- NetSaint随时监控网络
- TCP网络程序的基本框架
- 一个使用监听器模式实现的J2ME网络编程框架,包括一个简单的登录功能实现(含源代码)
- 网络协议及网络软件框架设计
- Linux 2.4.x 网络安全框架
- 共创软件联盟上的网络游戏框架GameHigh[dudu]
- [非原创]网络数据传输监控类库代码(VB6)
- 基于GPRS网络的热网远程监控系统
- ESFramework网络通信框架历史博客集锦
- 下一代网络(NGN)的框架结构(图)