已采纳
回答正文
回复
讨论正文
该问题的正文、回答与讨论。
10 节点(16C64G)K8s 1.28.9 + containerd 1.7.13 + cgroup v2 在线集群。订单服务 Pod 内两个容器:
delaycompress + copytruncate;出账高峰(10:00–10:40)Kafka 侧观测到某 topic 的日志条数比 main 侧 actuator 的 access log 计数稳定少 2%–7%,且缺口集中在滚动发生前后 1–2 分钟的日志。filebeat 自身 monitoring.harvesters 数正常,没有明显 non_zero 队列告警,但 input.filestream 的 readers 在高峰会短暂堆积。我怀疑是 filebeat 被 0.25 核的 limit 周期性 throttle,harvester 追不上 8–12 MB/s 的写入速度,copytruncate 窗口内没读到的部分直接丢了——但没有可复现的量化证据,只能靠条数对账倒推。
cpu.stat:nr_throttled 在高峰每分钟 +30~80 次,throttled_usec 占比 15%–35%——确认被节流,但节流时长和丢日志窗口的对应关系对不上;libbeat.registry.files 推进正常,input.filestream.readers 峰值 40+,但拿不到「每个文件当前落后多少字节/多少秒」的直接指标;社区里 CFS 节流对主容器 P99 的影响已有不少讨论(如 id=1481《CFS quota 把 P99 顶到 200ms》、id=1332《K8s Pod 里 sidecar 抢资源》),但「sidecar 自己被节流导致数据面丢日志」这个方向我还没看到系统性的量化方法,想集中请教一下。