首页
学习
活动
专区
工具
TVP
发布

F-Stack的专栏

专栏作者
30
文章
119443
阅读量
132
订阅数
F-Stack LD_PRELOAD 测试版介绍
跳票许久许久的LD_PRELOAD功能模块(后续以 libff_syscall.so 代替)在 F-Stack dev 分支的 adapter/sysctall 目录下已经提交,支持 hook 系统内核 socket 相关接口的代码,降低已有应用迁移到 F-Stack 的门槛。下面将分进行具体介绍, 主要包括libff_syscall.so 相关的架构涉及其中的一些思考,支持的几种模式以及如何使用等内容。 总体结论: 原有应用程序的接入门槛比原本的 F-Stack 有所降低,大部分情况下可以不修改原有的用户
F-Stack
2023-05-04
6490
ff_ipfw策略路由使用示例2则
       以下是 ff_ipfw 工具在实际使用 F-Stack 应用中的 2 则配置策略路由的示例,分别为透明代理应答包和多 vlan vip 应答包的场景,可以供使用者参考。 透明代理策略路由设置        因为透明代理的源 IP 是实际客户的 IP,在实际服务接受处理完响应包返回时会返回给实际的客户 IP,所以需要配置将回包发到 Nginx 进行处理,这里的上游服务分别为本机和其他服务器上。 路由配置        F-Stack(FreeBSD) 上游回包的策略路由设置参考 # upst
F-Stack
2022-11-14
6390
F-Stack 1.22 & 1.21.2(LTS) 发布
F-Stack 1.22 & 1.21.2(LTS) 版本已发布,其中1.22的最重要变化有以下两个:1. FreeBSD 升级至 FreeBSD-releng-13.0, 已经可以支持 BBR, 在特定场景下性能比 cubic 可以提高 10 倍以上。 2. DPDK 升级至 20.11, 编译方式相比 19.11 去除了常规 make 编译方式,使用上会有较大变化。 具体变更内容如下所示。 2022.09 F-Stack v1.22 1. FreeBSD Upgrade to FreeBSD-rel
F-Stack
2022-09-06
7702
F-Stack发送零拷贝介绍
数据包在服务器的处理分接收和发送两个方向,收包方向因为我们自己本身的业务场景涉及收包数据很少,后续另行介绍。 本文主要介绍F-Stack发包方向上当前的零拷贝处理方案、效果和应用场景的选择,发包方向上的数据拷贝目前主要为两个阶段,一是协议栈数据拷贝到DPDK的rte_mbuf中,二是应用层调用socket发送接口时会将数据从应用层拷贝到FreeBSD协议栈,下面将分别进行介绍。 协议栈到DPDK 该过程的零拷贝实现由 @jinhao2 提交的Pull Request #364 合并到F-Stack主线中,相
F-Stack
2022-04-18
1.1K0
F-Stack常用配置参数介绍
目前F-Stack的配置文件中包含有以下8个部分,下面将分别进行简单的介绍: [dpdk]、[pcap]、[portN]、[vdevN]、[bondN]、[kni]、[freebsd.boot]、[freebsd.sysctl] [DPDK] 设置运行DPDK的相关参数,如果是DPDK也有的参数,则含义和使用方法同DPDK参数。 lcore_mask 16进制位掩码,用于设置进程运行在哪些CPU核心上。如fc表示使用CPU第2-7个核,不使用第0和1核。 建议优先使用物理核,数据尽量不要跨NUMA节点交互,
F-Stack
2022-04-11
3.9K2
F-Stack 已支持 FreeBSD 13.0 正式版
    FreeBSD 13.0 正式版在 4 月份发布,正式支持了 BBR,我们在 7 月底开始进行 FreeBSD 13.0 的升级工作,用了2个周的空闲时间进行了 lib 库的基本移植,但是后续个人大量精力投入了 F-Stack 父项目-腾讯云 DNSPod 权威 DNS 以及年中工作考核上,导致后续移植升级没有进展,最近半个月才抽出时间完成了对 FreeBSD 13 的基本调试和测试,目前代码已经已经提交到 github 上的 dev 分支。     目前相关代码还未完成全部调试和测试,还存在一些
F-Stack
2021-10-08
1K1
如何优雅的调试段错误
摘要:当程序运行出现段错误时,目标文件没有调试符号,也没配置产生 core dump,如何定位到出错的文件和函数,并尽可能提供更详细的一些信息,如参数,代码等。 第一板斧 准备一段测试代码 018.c #include <stdio.h> int main(int argc, char *argv[]) {    FILE *fp = NULL;    fprintf(fp, "%s\n", "hello");    fclose(fp);    return 0; } 编译运行 $ gcc 0
F-Stack
2020-05-18
4.3K0
F-Stack vlan 的支持与使用
       限于 Vlan 测试环境的缺失, F-Stack 项目初期未对 Vlan 进行完全的支持,仅支持配置是否进行 Vlan 的硬件卸载,当交换机配置了服务器返回的包无需打 Vlan tag 时可以正常使用,但如果交换机要求回报需要打 Vlan tag 则无法正常工作。       近期收到了网易 dragonorloong 同学关于 Vlan 的 Pull request,并且找到了 Vlan 测试环境对 Vlan 进行了完整的支持和测试,对以上问题进行了修复。本文将简单介绍 F-Stack
F-Stack
2019-09-06
2K1
F-Stack IPv6 的支持与使用
      限于某些原因 F-Stack 项目之前是未对 IPv6 进行支持的,随着 IPv6 需求的增多,近期对 IPv6 进行了支持。本文将简单介绍 F-Stack 支持 IPv6 所做的修改,如何使用以及相关注意事项。 F-Stack 如何支持 IPv6 以下所列为 F-Stack 支持 IPv6 所进行的修改,具体改动细节可查看 github 相关 commits。 F-Stack 框架支持 在 Makefile 中定义 IPv6 相关的宏INET6及需要包含编译的文件NETINET6_SRC
F-Stack
2019-08-16
5K1
F-Stack 1.20 Roadmap
    F-Stack 1.20 将于 2019Q3 发布, 同步 Roadmap。 已支持: 支持在 docker 中运行 支持客户端 bind/connect 移除发送数据包时协议栈到 DPDK mbuf 的 mcopy 该功能需在 Makefile 开启 FF_USE_PAGE_ARRAY 选项。 支持 IPv6 F-Stack 框架支持 IPv6。 ifconfig、route、netstat 工具支持 IPv6 相关配置。 支持ICMPv6(NUD和MLD), 不支持DHCPv6。 在 AW
F-Stack
2019-08-07
1.4K0
F-Stack 助力 HTTP 网络服务器性能提升
HTTP 协议因其易用性和普适性得到了大规模的普及,我们说HTTP协议是互联网的基石一点也不为过,当前提供HTTP服务的Server性能要求越来越高,如何提高 HTTP 服务器的性能变得非常重要。近年来网卡性能快速发展,给高性能HTTP服务提供了硬件支持,但是linux 内核却越来越成为高性能网络服务器的瓶颈。 HTTP 的传输层协议为 TCP ,TCP作为面向连接的协议能够提供可靠传输,但是在性能有非常大的短板,尤其在短连接网络业务服务中,受限于PCB表锁竞争等因素,系统内核大并发创建 T
F-Stack
2018-01-31
5.9K1
F-Stack KNI配置注意事项
F-Stack KNI配置注意事项 KNI介绍 KNI(Kernel NIC Interface)内核网卡接口,是DPDK中用于与内核通信的模块,在主要的业务流程中可能并不需要,但在部分场景下,如服务器所有网卡都被F-Stack接管用于业务(或服务器本身只有单网卡),其他如SSH登录管理等数据等就必须开启KNI来与内核进行数据交互。 KNI配置 因为开启KNI将对收到所有的数据包按转发策略进行检查,会对性能造成一定的影响,所以在F-Stack中默认配置关闭了KNI选项,如有需要可以在控制文件config
F-Stack
2018-01-31
1.9K1
用DPDK rte_ring实现多进程间通信
F-Stack是多进程架构,去除了进程间资源共享来达到更高的性能,但还是有部分控制信息需要在进程间同步,使用rte_ring让多个进程间的通信变得十分简单。 rte_ring在F-Stack中主要用于: 1.各个进程间ARP包的广播 2.KNI的转发 3.与工具(sysctl等)进行通信。 rte_ring是一个用CAS实现的无锁FIFO环形队列,支持多消费者/生产者同时出入队列,常用于多线程/多进程之间的通信。具体原理可以查看DPDK官方文档或者阅读源码,本文主要是介绍如何使用rte_ring来进行多进程
F-Stack
2018-01-31
3.5K0
FreeBSD下的工具(sysctl、netstat等)如何移植到F-Stack
F-Stack基于DPDK,绕过内核的协议栈,移植了FreeBSD协议栈到用户态,在大幅提高性能的同时,常规网络设置分析工具(如sysctl、netstat、ifconfig、route等)都无法直接使用。但是由于在用户态运行了FreeBSD的协议栈,我们可以移植FreeBSD下的这些工具到F-Stack。 移植的关键是这些工具要能与F-Stack进程通信,在之前的文章中,我们介绍了如何使用DPDK rte_ring来进行多进程的通信,tools/ipc目录就是基于rte_ring实现了一个简单的ipc框架
F-Stack
2018-01-31
1.4K0
F-Stack与Seastar对比
本文是将知乎网友的提问 《如何评价腾讯开源的基于 DPDK 和 BSD 协议栈的网络框架 f-stack?》,将回答讨论内容和我们的一些想法进行了整理。 项目背景 F-Stack 这个项目起始于DNSPod的授权DNS项目,当时是12年,DPDK还未开源的时候,我们就基于DPDK做了授权DNS,做完的时候正好DPDK也开源了,正式上线后10GE单网卡性能达到1100万qps,后面又实现了一个简易的TCP协议栈用于支持TCP DNS。 后来DNSPod合并进入腾讯云,腾讯云有大量业务需要高性能的接入服务,而D
F-Stack
2018-01-31
3.1K3
F-Stack之kqueue封装为epoll介绍
F-Stack是一个全用户态的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,适用于各种需要网络接入的业务,用户只需要关注业务逻辑,简单的接入F-Stack即可实现高性能的网络服务器。 F-Stack中使用的FreeBSD协议栈的高性能异步事件通知的API是kqueue,而Linux系统上则是我们熟悉的epoll,大量的Linux网络server都是基于epoll事件通知机制,为降低已有服务器接入F-Stack的修改难度,F-Stack协议栈实现了把
F-Stack
2018-01-31
2K0
全用户态网络开发套件F-Stack架构分析
F-Stack是一个全用户态(kernel bypass)的高性能的网络接入开发包,基于DPDK、FreeBSD协议栈、微线程接口等,适用于各种需要网络接入的业务,用户只需要关注业务逻辑,简单的接入F-Stack即可实现高性能的网络服务器。 本文介绍F-Stack的详细架构及如何解决内核协议栈面临的问题。 传统内核协议栈的性能瓶颈 在传统的内核协议栈中,网络包处理存在诸多瓶颈,严重影响网络包的收发性能。性能瓶颈主要包括以下几个方面 局部性失效 - 一个数据包的处理可能跨多个CPU核心、缓存失效、NUM
F-Stack
2018-01-31
3.5K7
F-Stack Q&A 第一期
Q1:F-Stack有中断模式吗,有计划支持吗?在计算密集型的应用中,轮询模式会占用更多的CPU资源? A1:F-Stack暂时只支持轮询模式,后续会支持中断+轮询模式,避免与计算密集型业务抢占CPU及节省能源。 Q2:F-Stack如何实现zerco copy? A2:目前F-Stack尚未做到完全零拷贝。在收包时使用FreeBSD的mbuf ext add可以避免拷贝。在发包时尚存在拷贝,后续会优化为无拷贝,主要的方案是自己实现内存管理,完全使用hugepage。 Q3:F-Stack的运行环境有何
F-Stack
2018-01-31
2.9K0
F-Stack参加 DPDK中国技术峰会2017
由 DPDK社区和英特尔主办的 DPDK中国技术峰会2017 于6月27日在上海举行,Intel、腾讯云、中兴、美团云、Panabit、太一星辰、UnitedStack、云杉网络等参会并进行了主题分享。 该次峰会在一天里安排了多达16个议题,但即使到晚上峰会结束时整个会场依然座无虚席,属于少见的纯干货技术峰会,未到现场参加可以通过文末链接下载PPT和观看视频回放。 F-Stack在峰会进行了《F-Stack, a full user space network service on
F-Stack
2018-01-31
1.5K0
F-Stack Q&A 第二期
Q1:请问再视频领域,媒体服务器,使用F-Stack是否合适? A1:F-Stack在纯推流的模式上是支持且合适的,如果有转码服务等计算密集型服务,需要等我们支持中断+轮询模式之后更合适。 Q2:请问,安装F-Stack对网卡有没有要求? A2:F-Stack使用了DPDK作为网络模块,网卡要求与DPDK相同,具体支持网卡列表请参考《list of supported NICs》(http://dpdk.org/doc/nics)。 Q3:基于 F-Stack 的分布式文件系统是怎么样的,效率提高的明显
F-Stack
2018-01-31
2.9K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档