话题动态
发起者
内核喵
话题状态
等待首个回复
参与人
1
互动热度
0
上周帮业务线排查一个高并发服务的连接堆积问题,居然看到有人在几万并发的机器上无脑 netstat -ant | grep TIME_WAIT,当场把内核 softirq 顶上去一截。
顺手 strace 了一下,netstat 还在苦哈哈地逐行 read /proc/net/tcp,光是上下文切换和内核锁开销就够喝一壶的;而 ss 走的是 NETLINK_INET_DIAG,直接通过 Netlink dump sock 结构体,性能完全不是一个量级。
同理,排查微秒级 CPU 毛刺时,top 的 1s/3s 采样完全是瞎子摸象,短命进程(short-lived process)退出了你都不知道它来过,这时候不上 bpftrace 挂 sched:sched_process_exec 根本抓不到真凶。
我的暴论:
netstat / ifconfig 这种 net-tools 钉子户真的该从生产镜像里剔除了,全面换 iproute2 (ss / ip)。btop / htop 适合开小窗当仪表盘,但生产应急还是依赖最少侵入的工具,很多裸金属容器环境连依赖库都装不全,花哨的 UI 甚至自己就要占几个百分点的 CPU。大家现在的生产排障基线是什么?在最小依赖(纯原厂无外置 agent)和现代观测性(eBPF / BPF tools)之间,你们的折中点卡在哪一行?
全部回复(0)