作者归档:雪糕

重构——让XDP为轻量SDN数据面再加速

上一篇文章我们一块来看了eBPF XDP的性能之路和场景,文中对于Ring也进行了简单的描述,但是真正当我重构起来那个包时,这么多的Ring究竟在内存中的哪个位置?哪些数据之间又是重叠的?本篇文章,我们就来顺腾摸瓜,看看这玩意更低层级是什么样子的。

继续阅读

解读eBPF XDP性能之路:它如何向着DPDK看齐?它在实际中又能带来多大效益?

相信使用过Linux的AF_PACKET类型socket的朋友都知道,性能不是特别好,而且似乎引入了一个新的问题——用户态程序要处理所有来的报文(可能也能绑定socket,博主我没有尝试过),这应该是相当拉胯了。使用eBPF XDP处理完美解决所有问题,还附带了UMEM共享内存,省掉了不少CPU时钟,不仅能解决云原生场景下的一些性能和潜在问题,还能顺带做个SD-WAN,能不香吗?(手动狗头

继续阅读

非国行的Android不能使用国行的Watch4?不指望三星,自力更生完美解决

前几天博主我入手了三星的Galaxy Watch4,起初是在一家淘宝店买了港行的,无奈老板迟迟找不到货,想着有那么多年玩机的经验,搞个国行的应该也能有解决办法,就上了国行。没想到,这水,有点深。虽说最终解决了问题,但是前前后后搞了许久,要不是为了一个圆形的表盘,我就直接退货了。

继续阅读

Windows上还能跑容器跑K8S?这是不是有点不科学

众所周知,Linux下有多种类型的namespace,它们共同实现了容器这一最终形态,进而向上交付出了Kubernetes这样一个精品。那么当Kubernetes运行在Windows上时,它所依靠的技术发生了什么变化?作为一个f**k Windows的忠实用户来说,起初看到Windows还能Kubernetes,让我大跌眼镜,甚至一度觉得这很不Kubernetes,毕竟以往Windows的稳定性、系统设计等已经给我留下了深刻的、极差的印象。这篇文章,我们一块来看看Windows,到底是怎么Hold住Kubernetes的,真的能好好Hold住吗?

继续阅读

初探DPDK——环境准备与编写第一个简易的NAT程序

博主早期使用Golang+TAP/TUN实现了对数据包L2/L3级别的操作,但是很显然这么做也会有很大的问题——用户程序的数据包发出到TAP/TUN,还要再复制到用户态程序处理,然后通过用户态程序的套接字再从主网卡发出,这样一来既延长了数据路径,又带来了多次的用户态内核态间的数据拷贝,整体上造成的指令数不容小觑。DPDK则可以完全解决这个问题,本篇文章则为对DPDK的一个开端,在完成开发环境准备的同时,博主我稍微修改了l2fwd例程,使得其能够实现一个简易的NAT操作(不能用的那种),感受一下DPDK的魅力~

继续阅读

Golang代码补全和远程调试可以兼得!Projector+GoLand,真香

既可以拥有GoLand代码补全的能力,又可以在Windows上体验到原生的Linux编程调试过程,当开发环境和终端设备能够解耦开的时候,工程随行就成为了可能,开发效率再度+++++到底是什么东西能有这么香?我们来看看~

继续阅读

防止Windows 10自动更新重启系统

众所周知,Windows 10的系统更新往往会帮你自动重启电脑以完成更新,有时候挂着虚拟机在写东西呢,第二天再看,发现自动更新重启就帮我把虚拟机给关了,连挂起都不帮我挂起,一怒之下研究了一下怎么封杀这智障更新重启,确保系统更新能正常使用,但是规避掉自动重启。

继续阅读

威联通的QTS为什么会卡到起飞?附带优化方法

临近正式毕业,考虑到好多好多的数据需要留存和备份,博主我上了一台白的威联通NAS。作为一个使用群晖(黑)差不多有6年左右历史的老玩家来说,从群晖到威联通的这开始几天里,我一度怀疑这QTS的系统是不是个半成品来的,各种加载中、转圈圈、无响应,属实卡到起飞,简直被群晖的DSM按在地上摩擦。本来不想动QTS的系统,避免引起一些不必要的问题,但是这体验差劲到了极点,还是决定优化一下好了。

继续阅读

OpenWrt+FRRouting+Ifman:天下没有不能成为SD-WAN CE的路由器

出于成本考虑,博主我对OpenWrt系统进行了定制,期望任何一个OpenWrt的机器都能够成为SD-WAN的CE。这个定制里加入了FRRouting和我自己的接口管理套件Ifman,运行在一台MT7620的路由器上,就可以实现分布式网关的Symmetric/Asymmetric特性。两个MT7620的路由器和一台1C1G的虚拟机(RR),已经可以舒舒服服玩起来了~

继续阅读