分类目录归档:云原生
在无BTF的内核中使用fd寻找关联的socket结构
上一篇文章讲了eBPF Tracepoint和Kprobe,这一篇文章我们来看一下如何应对无BTF的老版本内核,以及如何只使用fd寻找关联的socket结构。
这篇文章的大背景,是需要关联fd、socket结构体指针,以便能够在hook系统调用时,通过fd找到对应的五元组信息。但是问题就在于,尝试了众多方法来关联上述的数据,甚至hook了十几个内核函数,希望包围socket的全生命周期,但是最终都出现了意料之外的结果,非常棘手。
继续阅读使用eBPF Tracepoint和Kprobe跟踪内核活动
DPU如何加速云原生容器网络?
当今时代下,高性能网络的需求日益增加,在图形渲染被独立成GPU、神经网络计算被独立成NPU后,网络数据的加速也被提上日程,将网络数据处理转移到DPU上,成为了业内共识。
这篇文章,趁着我手里刚好有几张DPU,我们就一起来看一下,DPU如何像GPU、NPU一样,帮助加速云原生容器网络。
继续阅读基于eBPF的Continuous Profiler如何解析符号表
原生gRPC与RESTful HTTP API并包——gRPC-Gateway实践
Kubernetes与KubeSphere上车指南
2022年了,开发需要各种应用时,不用再像以前那样挨个手工安装一整天了,直接上K8S就好啦~
这次,博主我上了一套3节点的集群,其中包含1个Master、2个Worker,前端选择了开源的KubeSphere,网络组件选择了性能好、又能起BGP的Cilium。由于本次部署是作为日常开发环境,操作上少了一些合规的考虑,仅供尝鲜和入门使用,生产环境部署需再细致研究。
继续阅读使用Linux内核的ftrace跟踪eBPF问题
好久没写文章了,最近忙于各种事情,再加上过年放假学习,计划文章队列排的老长了。在此,新年第一篇文章,就先祝一下大家新年快乐哈~
eBPF香是香,但是竟然还有内核不支持?博主最近遇到了这么个情况,eBPF程序死活无法加载,始终报出Invalid argument的错误,为了解决这个问题,博主我花了好多天时间排查,跟踪了Linux内核的调用链,最后发现,问题竟然是…(实在想不到好的开头了)
继续阅读重构——让XDP为轻量SDN数据面再加速
上一篇文章我们一块来看了eBPF XDP的性能之路和场景,文中对于Ring也进行了简单的描述,但是真正当我重构起来那个包时,这么多的Ring究竟在内存中的哪个位置?哪些数据之间又是重叠的?本篇文章,我们就来顺腾摸瓜,看看这玩意更低层级是什么样子的。
继续阅读解读eBPF XDP性能之路:它如何向着DPDK看齐?它在实际中又能带来多大效益?
相信使用过Linux的AF_PACKET类型socket的朋友都知道,性能不是特别好,而且似乎引入了一个新的问题——用户态程序要处理所有来的报文(可能也能绑定socket,博主我没有尝试过),这应该是相当拉胯了。使用eBPF XDP处理完美解决所有问题,还附带了UMEM共享内存,省掉了不少CPU时钟,不仅能解决云原生场景下的一些性能和潜在问题,还能顺带做个SD-WAN,能不香吗?(手动狗头
继续阅读