刚转运维那会儿有个挺明显的习惯,到现在偶尔还会犯:服务一出问题,第一反应就是是不是代码又写崩了。可能跟之前做测试有关系,那时候基本所有问题最后都能落到代码上,久了就会下意识这么想。
但干久一点之后发现,有些问题你把代码翻几遍其实没什么用。
之前遇到过一个事还挺典型的。有个服务发完版之后开始偶尔超时,不是一直挂,就是那种隔一阵来一下的,很烦。当时第一反应肯定是代码问题,刚发版嘛,然后就很自然去看改动、怀疑某段逻辑,甚至都准备回滚了。结果回滚完还是会偶尔出现,当时就有点懵。
更离谱的是日志也没啥明显异常,就那种你感觉不对,但又说不上哪不对。那段时间其实来回看代码好几遍,也没什么新发现,有点钻牛角尖了。
后面也是没办法了,才开始往别的方向看,去看机器、连接数、一些运行时状态。最后才发现是连接数在某些时间段被打满了,新请求卡在建连上,看起来就像接口超时。这种东西你要是一开始就死盯代码,其实很难想到。
后来类似的情况也遇到过几次,慢慢就有点感觉了:有些问题不是“写的时候就错了”,而是“跑着跑着出问题”。比如配置稍微有点偏、资源顶到边上、网络偶尔抖一下,或者 k8s 调度有点歪,单看都还行,但叠在一起就开始出事。
现在再看问题会稍微控制一下自己,别一上来就扎进代码里,不然很容易越看越觉得就是代码问题,然后一路跑偏(虽然有时候最后还真是代码
)。
这两年也试过用 AI 帮忙看日志,有时候确实能帮你收敛一下范围,但也有那种越看越不对劲的情况,尤其这种不是单一原因的问题,它给的结论有时候挺自信的,但不一定对,所以现在基本当参考用。
也没啥总结,就是最近又遇到一个类似的,有点感慨。有人也遇到过这种吗,一开始死盯代码,最后发现完全不是那回事的那种。
2 个帖子 - 2 位参与者