她新建了一个临时讨论组。
组名:“故障排查_临时”。成员:周哲、吴建国、还有她自己。
没有邀请其他人。
讨论组创建成功。路容在输入框里打字,手指在机械键盘上敲出清脆的咔嗒声。房间里只有这个声音,和窗外隐约传来的汽车引擎轰鸣。
【若溪】@周哲@吴建国两位老师好,我是数据分析部的若溪。我这边看到一些异常模式,想请两位帮忙确认一下。
消息发送出去。
几秒钟后,周哲的头像旁边出现“正在输入”的提示。
【周哲】什么模式?
路容切回远程支持系统,打开另一个命令行窗口。她输入一串命令,屏幕上的字符像流水一样滚动。她的眼睛快速扫过每一行输出,大脑像一台精密的处理器,过滤无关信息,提取关键数据。
故障表现很奇特。
数据库连接没有真正断开,而是被某种机制“挂起”了。查询请求进入等待队列,但队列的处理线程被占用,不是被其他任务占用,而是被……空循环占用了。
就像有一个人站在门口,不进去,也不离开,就堵在那里。
路容的手指再次敲击键盘。
【若溪】请两位看一下日志服务器的varlogmysqlslow_queries。log,时间范围00:50到01:10。注意第34行到第47行。
她发送消息,然后等待。
房间里很安静。她能听见冰箱压缩机启动的嗡嗡声,能听见楼上邻居冲马桶的水流声,能听见自己吞咽口水时喉咙的轻微响动。三种声音在黑暗里交织,像一首不协调的交响乐。
临时讨论组里,吴建国回复了。
【吴建国】看了。锁等待时间异常,但锁持有者显示为“system”,不是具体进程。
【周哲】我也看到了。这不对劲。system进程不会主动持有用户表锁。
路容的嘴角微微上扬,一个几乎看不见的弧度。她继续打字。
【若溪】请再执行:showprocesslist;然后过滤state为“Usersleep”的连接。
这次,周哲的回复快了一些。
【周哲】有七个连接处于Usersleep状态,sleep时间都超过300秒。连接来自……内部IP,10。0。5。x段。
10。0。5。x段。
路容的瞳孔收缩了一下。
那是测试服务器的IP段。按理说,测试服务器不应该在生产环境持有数据库连接,更不应该让连接处于休眠状态超过五分钟。
除非有人故意这么做。
她切回命令行,输入另一串指令。屏幕上的输出快速滚动,白色的字符在黑色背景上像一群受惊的飞鸟。路容的眼睛盯着屏幕,手指在键盘上悬停,像钢琴家等待下一个和弦。
找到了。
七个休眠连接,全部来自同一台测试服务器——test-05。而test-05服务器的管理员权限,上周刚刚变更过。
新的管理员是:王总监。
路容的呼吸停了一拍。
她靠在椅背上,闭上眼睛。脑海里快速闪过几个画面——王总监在会议室里冰冷的眼神,工位调整时那抹得意的微笑,还有今天下午,她经过王总监办公室时,听见里面传来的压低声音的电话:
“……必须给她点颜色看看……李总那边我会解释……”
当时路容没有多想。现在,这些碎片拼凑在一起,形成了一个模糊但危险的图案。
王总监在测试服务器上做了手脚,制造了这场“故障”。目的是什么?给她一个下马威?测试她的技术能力?还是……更深的算计?
路容睁开眼睛,眼底一片清明。
不管目的是什么,现在必须解决故障。而且,必须用“若溪”这个身份该有的方式解决——不能太突出,不能太老练,但也不能毫无作为。
她重新开始打字。