2024年7月21日

配置etcd自动压缩

摘要: 压缩碎片->清理空间 # 压缩回收历史版本,回收从0到指定版本号的非key最新版本的历史版本数据 etcdctl compact 版本号 # 清理占用的系统存储空间 etcdctl defrag 自动压缩策略的2种模式 压缩策略 参数配置 适用场景 按时间周期性压缩 --auto-compactio 阅读全文

posted @ 2024-07-21 17:38 王景迁 阅读(8) 评论(0) 推荐(0) 编辑

2024年7月20日

dpvs 调整tcp mss

摘要: 修改tcp options中mss值 src/ipvs/ip_vs_proto_tcp.c 因为tcp头部options中不同kind顺序是随机的,所以需要遍历找到kind值是mss 2和length值是4,再修改后面的mss value。 static void tcp_out_adjust_ms 阅读全文

posted @ 2024-07-20 17:44 王景迁 阅读(1) 评论(0) 推荐(0) 编辑

2024年7月16日

eBPF bpf_redirect函数

摘要: 函数定义 https://www.man7.org/linux/man-pages/man7/bpf-helpers.7.html bpf_redirect不指定flag时,默认走egress,veth egress(in)和虚拟机网口egress(out)方向不同。 网卡响应报文 网卡要响应报文, 阅读全文

posted @ 2024-07-16 09:26 王景迁 阅读(3) 评论(0) 推荐(0) 编辑

Linux arp请求

摘要: arp请求根据路由来确定下一跳。 目的ip与源ip不同网段,走网关,arp请求目的地址是网关地址,下一跳mac是网关mac。ping 192.168.1.11 目的ip与源ip同网段,不走网关,arp请求目的地址是原来的目的地址,下一跳mac是原来目的地址mac。ping 192.168.11.10 阅读全文

posted @ 2024-07-16 08:59 王景迁 阅读(2) 评论(0) 推荐(0) 编辑

2024年7月11日

eBPF 容器持久化map到宿主机上

摘要: 问题现象 k8s上启动pod后,使用主机网络的容器,加载eBPF程序到网口上,持久化map只能保存在容器文件系统/sys/fs/bpf中。容器复位后,新容器与原来eBPF程序使用的不是同一个map。 问题分析 新容器使用新的文件系统,无法找回原来的/sys/fs/bpf挂载点,需要持久化到宿主机上。 阅读全文

posted @ 2024-07-11 09:28 王景迁 阅读(3) 评论(0) 推荐(0) 编辑

eBPF 用户态和内核态基于ringbuf交互

摘要: 相比于perf_event_array,ringbuf优势在于1. 读取数据是有序的,即提交顺序和消费顺序保持一致。2. 避免数据复制,即提交数据到map和传递到用户态都不需要拷贝。 内核态 ringbuf/ringbuf.c #include "../headers/vmlinux.h" #inc 阅读全文

posted @ 2024-07-11 08:59 王景迁 阅读(6) 评论(0) 推荐(0) 编辑

2024年7月5日

go解析命令行的3种方式

摘要: 方式1:只用参数值 package main import ( "fmt" "os" ) func main() { // os.Args是[]string for k, v := range os.Args { fmt.Printf("args[%d]=[%s]\n", k, v) } } 方式2 阅读全文

posted @ 2024-07-05 07:15 王景迁 阅读(4) 评论(0) 推荐(0) 编辑

2024年7月4日

eBPF bpftool

摘要: bpftool是eBPF的命令行工具,prog和map是最常用的2种方式。 prog # 查看系统中所有的BPF Prog bpftool prog list # 查看tracelog bpftool prog tracelog map # 查看系统中所有的BPF Map bpftool map l 阅读全文

posted @ 2024-07-04 08:37 王景迁 阅读(9) 评论(0) 推荐(0) 编辑

2024年7月2日

go Error方法优先级高于String方法

摘要: package main import "fmt" type Test string func (t Test) String() string { return "test string" } func (t Test) Error() string { return "test error" } 阅读全文

posted @ 2024-07-02 08:16 王景迁 阅读(2) 评论(0) 推荐(0) 编辑

2024年6月29日

Linux veth口名字不能超过15个字符

摘要: ip link add name aaaaaaaaaaaaaaa type veth peer name bbbbbbbbbbbbbbb ip link add name aaaaaaaaaaaaaaaa type veth peer name bbbbbbbbbbbbbbbb veth口名字15个 阅读全文

posted @ 2024-06-29 17:50 王景迁 阅读(2) 评论(0) 推荐(0) 编辑

导航