标签归档:Linux

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

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

继续阅读

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编程调试过程,当开发环境和终端设备能够解耦开的时候,工程随行就成为了可能,开发效率再度+++++到底是什么东西能有这么香?我们来看看~

继续阅读

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

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

继续阅读

NAT VPS丢包与TCP

博主小时候(大概好像是初三的时候吧),那时候Soft Layer还没有退出HK,随便开台20块钱的机器,流量就有1个T,速度还贼快。近些年来,随着墙逐渐加高,直连线路基本已经无法使用,于是衍生出来各种共享的中转、专线服务,博主趁机也开了一个月付仅要80块钱流量有足足1.5T带宽竟然有250Mbps的NAT VPS,用来实现博主自己的混合云互通(是的不出国),就是没想到NAT VPS竟然能这么感人……

继续阅读

PowerDNS集群系统落地实践

其实这已经是PowerDNS集群系统第二次落地了。第一次是在私有的混合云上部署,设计时采用了云上为主、边缘为辅的结构,结合BGP AnyCast+ECMP和PowerDNS官方推荐的架构解决了DNS的高可用、就近查询和负载均衡的问题,上线后一个季度运行正常,还算是挺稳定的。本次,PowerDNS的集群架构将在学校条件装备处落地,为全校提供统一的DNS服务,替换掉老的勉强能用的DNS系统。

继续阅读

云上搬砖——Code Server落地实践

如今2020年了,甚至都可以说2021年了,在行业一直推行“上云”的这一背景下,越来越多的企业服务开始从私有云转移到了公有云上。在企业纷纷上云提高自身效率的同时,我也一直在想有什么办法来提高个人的开发效率呢?写个代码一直都强调高内聚低耦合,我们的生产力工具和开发系统本来也就要进行解耦,以避免掉太多对终端设备的依赖,来应对突发状况下或者一些特殊的环境依赖需要。今天,无意中发现了一个新的东西——Code Server,即一个VS Code的网页端,也是一个开源软件,借助Code Server,终于有了一个完全托管于云上、无需再过多依赖本地终端的环境。

继续阅读