PFQ 特性<a href="http://www.pfq.io/#performance"></a> 介绍
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 Berkeley 和 VLAN 过滤器.
-
为 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 特性<a href="http://www.pfq.io/#performance"></a> 官网
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。