首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

F-Stack与Seastar对比

本文是将知乎网友的提问 《如何评价腾讯开源的基于 DPDK 和 BSD 协议栈的网络框架 f-stack?》,将回答讨论内容和我们的一些想法进行了整理。...与Seastar的对比 相同 F-Stack和Seastar都是基本完整的网络编程框架,包含了DPDK网络I/O模块、用户态协议栈、异步编程接口等整个系统共用户接入使用。...F-Stack使用纯C开发(部分第三方组件使用了C++,F-Stack进行了封装),容易上手;Seastar使用了C++14,Future-Promise, Shared-nothing,message-passing...F-Stack的协议栈移植自FreeBSD 11.0,功能完善但也冗余(去除了部分模块未编译进F-Stack),调试分析工具完善,运行稳定;Seastar按照RFC协议自研协议栈,更精简,但外网运行不稳定...A:目前版本的F-Stack单核性能比内核协议栈高20-50%左右,多核优势更明显,后续会持续进行优化。

3.1K90

F-Stack发送零拷贝介绍

本文主要介绍F-Stack发包方向上当前的零拷贝处理方案、效果和应用场景的选择,发包方向上的数据拷贝目前主要为两个阶段,一是协议栈数据拷贝到DPDK的rte_mbuf中,二是应用层调用socket发送接口时会将数据从应用层拷贝到...协议栈到DPDK 该过程的零拷贝实现由 @jinhao2 提交的Pull Request #364 合并到F-Stack主线中,相关实现细节可以参考相关代码,这里仅对实现方案进行简要介绍。...使用方式及注意事项 使用方式 该功能默认并未开启,需要通过在lib/Makefile中打开编译选项FF_USE_PAGE_ARRAY,并重新编译F-Stack lib 库和应用程序后才能生效。...使用方式及注意事项 使用方式 该功能默认并未开启,需要通过在lib/Makefile中打开编译选项FF_ZC_SEND,并重新编译F-Stack lib 库和应用程序后才能生效。

68030
您找到你想要的搜索结果了吗?
是的
没有找到

F-Stack KNI 配置注意事项

image.png] KNI介绍 KNI(Kernel NIC Interface)内核网卡接口,是DPDK中用于与内核通信的模块,在主要的业务流程中可能并不需要,但在部分场景下,如服务器所有网卡都被F-Stack...KNI配置 因为开启KNI将对收到所有的数据包按转发策略进行检查,会对性能造成一定的影响,所以在F-Stack中默认配置关闭了KNI选项,如有需要可以在控制文件config.ini中修改配置开启KNI并设置转发规则...当method参数设置为reject时,默认素有的数据包都通过KNI转发至系统内核,只将tcp_port/udp_port参数指定的端口号的数据包交由F-Stack处理。...IP地址、掩码、MAC地址、路由表等信息才能正常完成F-Stack和内核间的数据交互。...【注意】 如果系统中没有额外的管理网卡,配置虚拟网卡地址的操作需通过执行脚本等方式与F-Stack应用程序一同启动,示例如下。 .

4.1K20

F-Stack vlan 的支持与使用

限于 Vlan 测试环境的缺失, F-Stack 项目初期未对 Vlan 进行完全的支持,仅支持配置是否进行 Vlan 的硬件卸载,当交换机配置了服务器返回的包无需打 Vlan tag...本文将简单介绍 F-Stack 支持 Vlan 所做的修改,如何使用以及相关注意事项。...F-Stack 如何支持 Vlan  以下所列为 F-Stack 支持 Vlan 所进行的修改,具体改动细节可查看 github 相关 commits。...F-Stack 框架支持 在 ff_veth.c中增加胶水函数ff_mbuf_set_vlan_info用于将在开启vlan_strip选项时将 DPDK mbuf 中的 vlan tci 信息传递给...工具支持 原有 ifconfig等工具已经支持 Vlan 配置,无需修改 F-Stack 如何使用 Vlan       下面给出 F-Stack 和 KNI 分别配置 Vlan 的命令参考,供参考并根据自己的网络情况实际进行配置

2K50

F-Stack Q&A 第三期

Q2:在Windows上解压F-Stack后传到linux上进行编译,编译失败?...A3:如果不需要使用这个网卡管理服务器,启动F-Stack的应用就可以了,然后 F-Stack里的 dpdk 会启动网卡并接收处理包的;如果还需要这个网卡管理服务器,还需要在配置文件中开启kni功能,启动...F-Stack后,还需要在系统上启动虚拟网卡.具体过程可以参照github的文档:https://github.com/F-Stack/f-stack/blob/master/doc/Launch_F-Stack_on_AWS_EC2..._in_one_minute.md Q4:F-Stack是否有移植ipfw的计划?...F-Stack的开源会持续进行下去,但是特性和功能的开发肯定优先内部项目的需求,F-Stack欢迎所有人的参与,无论是建议还是贡献代码。 Q9:请问一下发送端零拷贝怎么实现呢?

3.8K100

F-Stack发送零拷贝介绍

本文主要介绍F-Stack发包方向上当前的零拷贝处理方案、效果和应用场景的选择,发包方向上的数据拷贝目前主要为两个阶段,一是协议栈数据拷贝到DPDK的rte_mbuf中,二是应用层调用socket发送接口时会将数据从应用层拷贝到...协议栈到DPDK 该过程的零拷贝实现由 @jinhao2 提交的Pull Request #364 合并到F-Stack主线中,相关实现细节可以参考相关代码,这里仅对实现方案进行简要介绍。...使用方式及注意事项 使用方式 该功能默认并未开启,需要通过在lib/Makefile中打开编译选项FF_USE_PAGE_ARRAY,并重新编译F-Stack lib 库和应用程序后才能生效。...使用方式及注意事项 使用方式 该功能默认并未开启,需要通过在lib/Makefile中打开编译选项FF_ZC_SEND,并重新编译F-Stack lib 库和应用程序后才能生效。

1.1K30

F-Stack KNI配置注意事项

F-Stack接管用于业务(或服务器本身只有单网卡),其他如SSH登录管理等数据等就必须开启KNI来与内核进行数据交互。...当method参数设置为reject时,默认素有的数据包都通过KNI转发至系统内核,只将tcp_port/udp_port参数指定的端口号的数据包交由F-Stack处理。...IP地址、掩码、MAC地址、路由表等信息才能正常完成F-Stack和内核间的数据交互。...【注意】 如果系统中没有额外的管理网卡,配置虚拟网卡地址的操作需通过执行脚本等方式与F-Stack应用程序一同启动,示例如下。 ....KNI创建的虚拟网卡和F-Stack中的用户态协议栈公用同一个网卡收发数据,所以KNI虚拟网卡的网络配置要跟FreeBSD协议的配置相同。 2.

1.9K80

F-Stack参加 DPDK中国技术峰会2017

F-Stack在峰会进行了《F-Stack, a full user space network service on DPDK》的主题分享,介绍了F-Stack的由来、技术架构和实现,以及在腾讯云COS...腾讯云在业务在快速发展中面临大量的L7接入服务,亟需提升接入层性能以节省服务器资源和应对DDoS攻击,所以开发了基于DPDK、FreeBSD协议栈的网络开发套件F-Stack,并提供了协程和类POSIX...接着介绍了F-Stack总体架构和各个模块所做的一些工作,如为什么选择FreeBSD协议栈、FreeBSD协议栈移植到linux用户态所做的工作、类POSIX接口和协程接口的实现、网络工具的移植等。...F-Stack PPT下载地址: https://dpdksummit.com/Archive/pdf/2017Asia/DPDK-China2017-Wang-FStack.pdf F-Stack 视频资料地址

1.5K90

F-Stack 之 kqueue 封装为 epoll 介绍

F-Stack是一个全用户态的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,适用于各种需要网络接入的业务,用户只需要关注业务逻辑,简单的接入F-Stack即可实现高性能的网络服务器...F-Stack中使用的FreeBSD协议栈的高性能异步事件通知的API是kqueue,而Linux系统上则是我们熟悉的epoll,大量的Linux网络server都是基于epoll事件通知机制,为降低已有服务器接入...F-Stack的修改难度,F-Stack协议栈实现了把kqueue封装为epoll接口,提供的API如下:: int ff_epoll_create(int size): 创建epoll fd,底层实际调用....events); } } } } 实际运行结果: [1496324816398_3590_1496324816718.png] 更多具体信息请访问F-Stack

3.4K10

千万并发连接下,如何保障网络性能?

一、F-Stack介绍及技术特点 F-Stack是一个全用户态的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,用户只需要关注业务逻辑,简单的接入F-Stack即可实现高性能的网络服务器...那对于F-Stack都有哪些技术特点呢?接下来将继续介绍。...微线程框架使用了同为腾讯开源的MSEC中的一部分micro_thread,需要特别注意的是微线程模块的开源协议是GPL-2.0,并不是F-Stack主要的必须核心模块,对F-Stack主体开源协议并无影响...(八)F-Stack发展历史 目前对外开源的F-Stack已经是3.0版本,1.0版本是12-13年DNSPod的权威DNS选用DPDK来提升性能时候,是一个简易的用户态TCP协议栈用来支持TCP DNS...三、F-Stack实践案例 F-Stack自从开源后获得了全球大量研究机构、高校、公司的肯定,用于进行技术研究工作或线上商业化项目,那在这里会给大家仅列举F-Stack用户实际现网业务的实践案例。

69430

千万并发连接下,如何保障网络性能

F-Stack介绍及技术特点 F-Stack是一个全用户态的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,用户只需要关注业务逻辑,简单的接入F-Stack即可实现高性能的网络服务器...那对于F-Stack都有哪些技术特点呢?接下来将继续介绍。...FreeBSD 协议栈 F-Stack对于选用FreeBSD协议栈进行用户态移植,背后其实是有过很多的思考和尝试的,此处仅列觉几个FreeBSD协议栈的优点,更多信息可以通过后面的 F-Stack 背景故事进行了解...F-Stack 发展历史 目前对外开源的 F-Stack已经是3.0版本,1.0版本是12-13年 DNSPod的权威 DNS 选用 DPDK 来提升性能时候,是一个简易的用户态 TCP 协议栈用来支持...F-Stack实践案例 F-Stack 自从开源后获得了全球大量研究机构、高校、公司的肯定,用于进行技术研究工作或线上商业化项目,那在这里会给大家仅列举 F-Stack 用户实际现网业务的实践案例。

1K20

F-Stack Q&A 第二期

Q1:请问再视频领域,媒体服务器,使用F-Stack是否合适? A1:F-Stack在纯推流的模式上是支持且合适的,如果有转码服务等计算密集型服务,需要等我们支持中断+轮询模式之后更合适。...Q2:请问,安装F-Stack对网卡有没有要求?...Q7:现在F-Stack的宿主程序是独占网卡吗? A1:F-Stack启动后就会接管并独占网卡,但可以通过KNI与内核通信。...Q8:如果在F-Stack的IP层要支持IPSec,有什么建议吗? A8:F-Stack使用的FreeBSD协议栈包含IPSec模块,但当前尚未编译进F-Stack,后续将会支持。...Q11:请问一下,F-Stack 的文档中好像没有提到 UDP 的 QPS,实际应用中 DNS SERVER 使用 F-Stack 能达到多大的 QPS 呢,测试配置任何?

2.9K100

HTTP 服务使用 F-Stack 在不同业务场景下的性能表现

F-Stack 提供了一个低门槛、高性能、完整协议栈能力的网络服务器解决方案,F-Stack 使用 Intel DPDK 开发套件提高网络收发包性能,移植 FreeBSD 协议栈至用户态,提供了 Posix...名词解释 F-StackF-Stack是一个全用户态的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,适用于各种需要网络接入的业务,用户只需要关注业务逻辑,简单的接入F-Stack...在接入 F-Stack 之后,性能可以达到百万 TPS,F-Stack 使用了多进程的架构,每个进程有单独的协议栈,无资源共享和竞争,虽然单进程协议栈提升并不明显(约20%-50%),但是整体系统性能有了质的提升...下图为 F-Stack 上进行短连接的 HTTP TPS 测试数据。...但是 F-Stack 此时依然有其实用价值,因为 F-Stack 除了多进程对共享资源的优化外,全用户态的协议栈同时也对锁竞争、内存拷贝、中断处理、上下文切换等进行了优化,能够消耗更少的资源达到相同的性能表现

3.8K20
领券