MikroTik RB450Gx4测试性能:一核有难三核围观

前言 在上一篇文章中,我准备使用 MikroTik RB450Gx4 做出口网关,这样 CRS326 做一个弱三层的角色,用交换芯片抗东西向流量,南北向的给这台 RB450Gx4,直接用 CPU 跑。 新买的 RB450Gx4 到货了,投入使用前拿来测一下,看看和官方的数据差多少,摸个底。 ...

2024-05-21

看MikroTik暴打H3C,顺便对比选型网络方案

背景 机房有一台H3C的路由器,它同时负责接入和三层路由。今年偶然在传文件的时候发现速度奇慢,排查发现瓶颈在这台路由器,三层转发大包(SSH传文件)只有90Mbps左右了,转发率就不用算了吧,然后看路由器的control-plane和data-plane的负载都被打满了,应该是没走成交换芯片(快速路径),全部走CPU(慢速路径)处理去了。更重要的是,这台机器并没有使用ACL、VRF这种比较难offload的功能,如今掉速这么严重,不知道是触发了哪门子bug,再加上系统全部是黑盒,在没有购买官方支持的情况下,基本没有解决这种问题的可能了。 ...

2024-05-13

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

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

2023-03-25

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

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

2022-05-20

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

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

2021-11-07

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

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

2021-08-25