转向模式驱动——用buf管理云原生系统的API

前言 最近在对既有系统向云原生改造,为了平衡服务间的独立性、互通性,在参考了Medium和OREILLY的资料后,decoupling服务时决定仅允许服务间通过gRPC调用、不暴露中间件和数据库,因此,...

<span title='2024-01-08 21:33:11 +0800 CST'>2024-01-08</span>

在无BTF的内核中使用fd寻找关联的socket结构

上一篇文章讲了eBPF Tracepoint和Kprobe,这一篇文章我们来看一下如何应对无BTF的老版本内核,以及如何只使用fd寻找关联的socket结构。 这篇文章的大背景,是需要关联fd、socke...

<span title='2023-08-22 20:50:11 +0800 CST'>2023-08-22</span>

使用eBPF Tracepoint和Kprobe跟踪内核活动

简介 eBPF老生常谈了,这里就不多介绍了,我们直接来看看Tracepoint和Kprobe。 Kprobe是Linux内核中的一个功能,可以实现无感知、动态切入任何内核活动中,并且收集调试和性能信息,一...

<span title='2023-08-21 19:14:08 +0800 CST'>2023-08-21</span>

自制高性能白盒交换机——缝合OVS-DPDK和Go语言

我有一台小主机,来自Lenovo的M73t,CPU型号为i3-4130T,内存为DDR3仅有8GB。这篇文章,我们就一起来看看,如何用这一台已经过时的、仅有两个物理核心的机器,做一台高性能的白盒交换机...

<span title='2023-03-25 22:41:21 +0800 CST'>2023-03-25</span>

DPU如何加速云原生容器网络?

当今时代下,高性能网络的需求日益增加,在图形渲染被独立成GPU、神经网络计算被独立成NPU后,网络数据的加速也被提上日程,将网络数据处理转移到DPU上,成为了业内共识。 这篇文章,趁着我手里刚好有几张D...

<span title='2023-03-11 20:58:56 +0800 CST'>2023-03-11</span>

在ARM平台的Linux上运行JetBrains远程开发

前言 相信大多数围绕Linux开发的开发者们会很喜欢这篇文章,当然如果你用VSCode就是另外一回事了(逃 大多数情况下,我不会选择Linux系统作为我主力使用的桌面操作系统,毕竟它稳定是真的稳定,但是桌...

<span title='2022-11-26 21:33:23 +0800 CST'>2022-11-26</span>

基于eBPF的Continuous Profiler如何解析符号表?

最近看了两个项目pyroscope1和parca2,这两个都是开源的可观测项目。pyroscope实现了基于eBPF的无侵入观测能力,鉴于parca实现得不是非常优雅(至少我用着觉得非常难受),本文就...

<span title='2022-11-08 22:11:23 +0800 CST'>2022-11-08</span>

稳定又好用——RouterOS+OpenWRT旁路由家庭网络

大家好,最近想了想决定在博客开辟“网络方案”的板块,结合博主我所熟悉的MikroTik、H3C、华为等商用设备以及基于Linux的网络系统(如常规发行版Linux、VyOS、OpenWRT),为大家推...

<span title='2022-09-10 11:47:23 +0800 CST'>2022-09-10</span>

原生gRPC与RESTful HTTP API并包——gRPC-Gateway实践

众所周知,Google的gRPC体系可谓是相当好用,在有protoc这样的工具加持下,原本要维护调用侧和服务侧两部分代码,现在写完proto文件直接交给protoc编译一下即可,可谓是减少了不少工作量...

<span title='2022-06-28 20:47:23 +0800 CST'>2022-06-28</span>

网络系统基准测试——DPDK Pktgen使用记录

我们自己的数据面系统如何打流测试呢?如果使用Linux协议栈上的测试工具往往是测不出来真正的数据的,而且受制于协议栈,我们最终也无法得到真实的收发情况,因此这时候我们要请出基于DPDK开发的一个打流测...

<span title='2022-05-20 00:15:23 +0800 CST'>2022-05-20</span>