连接数 92%,我先没动会话。
不是沉得住气,是算过代价:清会话看起来最快,但可能把跑批打断;重启节点更重;调小非核心应用的连接池,是那晚代价较小的动作。文中的时间、数字和处理过程,是示例环境下的脱敏教学设定。
我知道这句话听起来像“不作为”。但值班时,“不动”也是一个决定,而且是更难解释的那个。你得知道自己为什么不动,准备观察到什么时候,什么条件下改主意。
某个周二凌晨一点多,手机在枕头边震。监控上,一个库的连接数使用率到了 92%。
群里有人问:“小满,多久能好?”
我坐在键盘前,十分钟没动。脑子里有三个动作:清空闲会话、调小应用连接池、重启一个节点。每个都像有用,每个都有代价。
师父回了一句:“先确认影响面,别急着动。”
动手有反馈,不动没有。你坐在那里看监控,群里看不到进度,很容易被理解成拖。
我那十分钟也心虚。手放在键盘上,又收回来。怕的不是连接数,是第二天业务说“昨天的数没出来”。也怕别人觉得我不处理。
后来我给自己定了一个说法:不动可以,但要说出在等什么、等到什么时候。说不出来,就不是观察,是躲。

维度 | 直觉动作 | 那晚动作 |
|---|---|---|
先做什么 | 先把连接数降下来 | 先确认业务影响面 |
对会话 | 批量清空闲会话 | 先看会话在干什么 |
对跑批 | 没算窗口够不够 | 确认窗口还剩四十分钟 |
选的动作 | 清会话或重启 | 调小两个非核心应用连接池 |
结果 | 可能中断跑批 | 一点四十左右跑批结束,连接数自己降 |
这张表不是标准答案,只是把“手快”和“先看”的差别摆出来。
表里最容易被忽略的是“对跑批”那一行。连接数高的时候,人眼里只有连接数;但跑批窗口是有限的,断了不一定补得回来。这个代价不在监控上,得自己去问。
前两个回答“能不能等”,后两个回答“动了以后谁承担”。
我查了会话状态。有一部分连接来自跑批任务,里面有几个 idle in transaction。说人话:事务开着,但当前没有语句在跑。它占着连接,却不能当普通空闲连接直接清掉。
跑批主进程还在往前走,不是彻底卡死;业务查询也还在进来,只是变慢了。连接数高,但 CPU 没有打满,磁盘也没有持续高 IO,超时集中在少数几个查询上。
系统是紧,但还没到非动手不可的程度。
这里有个容易混的地方:连接数高,可能是业务真的多,也可能是连接被占着不用,还可能是上限偏小。三种情况动作不一样。先分清是哪一种,再谈清不清会话。
我没有清会话,先把两个非核心应用的连接池临时调小,给跑批让路。然后把连接数、业务超时、跑批进度放在一个屏幕上盯着。
这个动作不漂亮,也不像“故障处理”。它只是把资源往更重要的地方挪了一点。
我没有把它当成“解决办法”,只当成“把时间买回来”。跑批结束前,我要的是不再恶化,不是立刻恢复到平时。这个区别,让我没那么急着做更大的动作。
一点四十左右,跑批结束,连接数自己降下来。业务没有大面积超时,群里也安静了。
如果我当时手快,批量清掉会话,跑批会中断。那个窗口只剩四十分钟,重跑不一定来得及。第二天业务看到的,不是“连接数降了”,是“昨天的数没出来”。
我一开始不敢回。怕说少了显得不负责,说多了又做不到。
后来我学会这样说:
“现在连接数 92%,跑批还在窗口里,我先不动会话;给我二十分钟观察,二十分钟后如果还降不下来,我再做限流。”
这句话说清了三件事:现在什么情况、我准备做什么、什么时候再同步。
给时间点也有讲究。不要给“马上”,也不要给一个自己做不到的承诺。二十分钟是我当时敢给的范围:够看一轮监控,也够群里的人安排别的事。
值班时,问题难不难是一回事;所有人都不知道你在等什么,是另一回事。

这三行后来变成了我的值班卡,放在交接本开头。
事后我还补了三件事:告警分级写清楚,连接数到 90% 先看是不是在跑批窗口,95% 以上而且业务已经超时再升级;每个月挑一个不重要的环境,把“怎么退”练一遍;值班卡上加上“关键联系人”和“三个最小动作”。
值班卡上我还加了一行“这一班最不确定什么”,交班时让下一个人知道哪里还没确认。
如果你第一次独立值班,只做一件,我会先写“我现在不确定什么”。
是影响面不确定,还是回滚不确定,还是没人可问。写下来,逐项去确认,比在键盘前反复点开又关掉强。
确认不了的那一项,就是你要守的地方:要么找人问,要么先不动。
那十分钟里,我一直在想“我是不是显得很没用”,而不是“我现在该确认什么”。这件事后来我没完全改掉,只是现在会先把它写下来,再决定动不动。
我到现在也没完全想通:为什么值班的人总想立刻做点什么。
可能是群里那句“多久能好”太急,可能是我们总觉得不动手就不算处理。但有些时候,最好的动作,是先看清楚,再动最小的那一下。
你第一次独立值班,卡在哪一步?是不知道该问谁,还是不敢停?评论区说说。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。